Complexité du problème d'adoption de chaton

14

Cela s'est produit alors que j'essayais de répondre à cette question sur la minimisation de la longueur de câblage . J'allais appeler cela le problème du "mariage polygame", mais Internet, donc les chatons. Yay!

Supposons que nous ayons M chatons qui doivent être adoptées par personnes, . Pour chaque chaton, et chaque personne il y a un coût . Nous aimerions minimiser le coût total de l'adoption de tous les chatons. Il existe également un ensemble de contraintes: chaque personne ne peut pas adopter plus de chatons.NM>Nijcijjuj

Sans les contraintes, le problème est facile; chaque chaton va avec la personne pour laquelle est minime. Avec les contraintes existe-t-il un algorithme efficace pour ce problème ou est-il NP-difficile?ijcij

Logique errante
la source

Réponses:

5

Il s'agit du problème de débit min-coût max.

Considérons un graphique , où A est l'ensemble des chatons, B est l'ensemble des personnes.G=(AB{s,t},E)AB

Soit la capacité des arêtes, et c : E R + le coût d'une arête. Nous nous assurons queC:ER+c:ER+

  1. Il y a un bord entre , où a iA et b jB , et C ( a i , b j ) = 1 , c ( a i , b j ) = c i , j .ai,bjaiAbjBC(ai,bj)=1c(ai,bj)=ci,j
  2. Il y a un bord entre et a iA , et C ( s , a i ) = 1 , c ( s , a i ) = 0 .saiAC(s,ai)=1c(s,ai)=0
  3. Il y a un bord entre et t , et C ( b j , t ) = u j , c ( b j , t ) = 0 .bjBtC(bj,t)=ujc(bj,t)=0

Si le débit max est , alors nous savons qu'il existe une solution. Vous pouvez construire une solution à coût min à partir du flux max à coût min.M

Chao Xu
la source
4

Il s'agit du problème d'appariement parfait du poids minimum qui est polynomial. Considérons le graphe bipartite complet , dans lequel L contient un nœud l i pour chaque chaton i , R se compose de u j copies du nœud r j pour chaque personne j , et les bords e i jE entre l i et chaque copie de r j , avec les poids c i j .(L,R,E)LliiRujrjjeijElirjcij

Nous savons que sinon, tous les chatons ne peuvent pas être affectés à des personnes.|L||R|

Depuis parfaite adéquation doit correspondre à tous les nœuds, il faut ajouter des nœuds fictifs à (pour obtenir | L | = | R | ) et les connecter avec zéro bords de poids à tous les noeuds R .L|L|=|R|R

Parham
la source
2

Il est peut-être intéressant d'observer que l'on peut réduire la partition à une variante de ce problème. Étant donné est une instance de Partition avec les éléments avec q même parmi lesquels nous devons choisir un sous-ensemble S { 1 , , q } avec | S | = q / 2 tel que i S x i = i S x i = K{x1,,xq}qS{1,,q}|S|=q/2iSxi=iSxi=K. (Notez que l'exigence de choisir exactement la moitié des éléments n'est pas la forme habituelle mais cette forme est toujours NP-difficile.) Soit chaque chaton un élément de l'ensemble; qu'il y ait deux personnes; soit les poids et c i 2 = - x i ; soit u 1 = u 2 = q / 2 . Ensuite, cette instance de Kitten Adoption a un maximum de 0 si l'instance de Partition a une solution.ci1=xici2=xiu1=u2=q/20

If the costs in Kitten Adoption are meant to always be positive then one can just add a large enough constant C to all weights to ensure they are the right sign, when the required threshold is Cq instead of 0.

I am not sure what this says about the complexity of the original problem, but given the often-seen "one of minimize/maximize is NP-hard, the other is in P" setup for combinatorial optimization problems, I would start looking for an efficient algorithm.

András Salamon
la source