Contrastive Learning for Combinatorial Problems