Il y a bacs, le i ème bac contient un i balles. Les boules ont n couleurs, il y a i boules de couleur i . Soit m = ∑ n i = 1 a i .
Un échange consiste à prendre une balle dans un bac et à l'échanger avec une balle dans un autre bac. Nous voulons un nombre minimum de swaps pour que chaque bac ne contienne que des balles de la même couleur.
Je connais un cas spécial facile pour tout i . (Si a i = 2 pour tout i , alors vous pouvez même le faire en échangeant chaque balle au plus une fois.)
Edit : c'est faux car trouver est NP-difficile.
Si nous savons quelle couleur va dans quel bac, le problème est facile.
Considérons un multi-digraphe , V = { v 1 , … , v n } . Si nous savons que la couleur i va au bac b ( i ) , alors il y a k arcs parallèles ( j , b ( i ) ) dans A si le bac j contient k boules de couleur i. Chaque composante du graphique est eulérienne. Le nombre minimum d'échanges requis est , où c ( D ) est le nombre de cycles disjoints d'arc qui couvre un . On peut échanger en "suivant" un circuit eulérien. (un échange utilisant un arc d'un cycle minimal peut le changer en un cycle minimal plus petit et une boucle automatique). Une fois que le graphique entier est composé de boucles auto, nous avons effectué tous les swaps nécessaires.
Quelle est la difficulté de ce problème en général?