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

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


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


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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.