Algorithmes à temps exponentiel exact pour les programmes 0-1 avec des données non négatives


9

Existe-t-il des algorithmes connus pour le problème suivant qui ont battu l'algorithme naïf?

Entrée: matrice et vecteurs , où toutes les entrées de sont des entiers non négatifs.b , c A , b , cAb,cA,b,c

Sortie: une solution optimale à . max { c T x : A x b , x { 0 , 1 } n }xmax{cTx:Axb,x{0,1}n}

Cette question est une version raffinée de ma question précédente Algorithmes à temps exponentiel exact pour la programmation 0-1 .

Réponses:


5

si le nombre de coefficients non nuls dans A est linéaire dans n , il existe un algorithme qui résout ce problème en moins de 2n temps.

Voici comment ça fonctionne. Nous utilisons la connexion standard entre un problème d'optimisation et son problème de décision correspondant. Pour tester s'il existe une solution où et , on va former un problème de décision: on va attacher la contrainte à la matrice , et tester s'il existe un tel que et . En particulier, nous formerons une nouvelle matrice en prenant et en ajoutant une ligne supplémentaire contenant , et nous formerons en prenantA x b c T x α c T x α A x A x b - c T x - α A A - c T b b - α x { 0 , 1 } n A x b α 2 n A n A nxAxbcTxαcTxαAxAxbcTxαAAcTbbet à côté d'une ligne supplémentaire avec . On obtient un problème de décision: existe-t-il tel que ? La réponse à ce problème de décision nous indique s'il existe une solution au problème d'optimisation d'origine de valeur ou supérieure. De plus, comme expliqué dans la réponse à votre question précédente , ce problème de décision peut être résolu en moins de temps, si le nombre de coefficients non nuls dans est linéaire dans (et donc si le nombre de non les coefficients nuls dans sont linéaires dans ). Maintenant, nous pouvons utiliser la recherche binaire surαx{0,1}nAxbα2nAnAn2 nαpour résoudre votre problème d'optimisation en moins de temps.2n

Mes remerciements à AustinBuchanan et Stefan Schneider pour avoir aidé à déboguer une version antérieure de cette réponse.


Pouvez-vous donner une réponse plus forte: comme «il y a un algorithme de temps » ou «un algorithme plus rapide que réfuterait ...»? O ( 2 n )O(2n/2)O(2n)
Austin Buchanan

@AustinBuchanan, si le nombre de dimensions de est suffisamment petit, il existe un algorithme , comme indiqué dans ma réponse à l'autre question . C'est le mieux que je sache faire; Je ne sais pas faire mieux que ça. Peut-être que d'autres pourront apporter une réponse plus forte! O ( 2 n / 2 )bO(2n/2)
DW

O ( 1 )O(2n/2) temps tient chaque fois que le nombre de contraintes est ? O(1)
Austin Buchanan

4

Si nous considérons le problème de minimisation , alors la réduction suivante montre qu'un algorithme fonctionnant dans le temps pour réfuterait le SETH. Une reformulation prouve le même résultat pour le problème visé (la version de maximisation).O ( 2 δ n / 2 ) δ < 1miny{cTy:Ayb,y{0,1}n}O(2δn/2)δ<1

Étant donné une instance de CNF-SAT avec des variables , une IP 0-1 avec deux variables pour chaque variable dans l'instance SAT. Comme d'habitude, la clause serait représentée comme . Ensuite, pour chaque variable dans l'instance SAT, ajoutez une contrainte . L'objectif est de minimiser . L'objectif de la IP sera ssi l'instance SAT est satisfaisable. { x j } n j = 1 y j , ¯ y j x j ( x 1¯ x 2x 3 ) y 1 + ¯ y 2 + yΦ=i=1mCi{xj}j=1nyj,y¯jxj(x1x¯2x3)x j y j + ¯ y j1 n j =y1+y¯2+y31xjyj+y¯j1nj=1n(yj+y¯j)n

Merci à Stefan Schneider pour la correction.

Mise à jour: dans On Problems as Hard as CNF-Sat, les auteurs supposent que SET COVER ne peut pas être résolu dans le temps , , où fait référence au nombre d'ensembles. Si vrai, cela montrerait que mon problème ne peut pas être résolu dans le temps également.δ < 1 n O ( 2 δ n )O(2δn)δ<1nO(2δn)

Mise à jour 2. Pour autant que je sache, en supposant que SETH, mon problème ne peut pas être résolu dans le temps , car il a été démontré que Hitting Set (avec un ensemble de base de taille ) ne peut pas être résolu. résolu dans le temps .n O ( 2 δ n )O(2δn)nO(2δn)


3
Puisque vous doublez le nombre de variables, je pense que cela montre seulement qu'un algorithme pour ce problème avec le runtime contredirait SETH. O(2δn/2)
Stefan Schneider

Attendez ... les auteurs de On Problems as Hard as CNF-SAT déclarent que "pour chaque , un algorithme pour frapper Set violerait SETH." Ça ne marche pas? O ( 2 ϵ n ) ϵ<1O(2ϵn)
Austin Buchanan
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.