Skutecznie rozwiązać system ścisłych nierówności liniowych ze wszystkimi współczynnikami równymi 1 bez użycia ogólnego solwera LP?

9

Według tytułu, oprócz korzystania z solwera LP ogólnego przeznaczenia, istnieje podejście do rozwiązywania układów nierówności względem zmiennych xi,,xk gdzie nierówności mają formę iIxi<jJxj? Co ze szczególnym przypadkiem nierówności, które tworzą całkowity porządek nad sumami członków zestawu potęg{xi,,xk}?

Jerry
źródło
4
@Ankur: nie ma znaczenia, czy są to liczby całkowite czy rzeczywiste. Jeśli są to ścisłe nierówności, możesz zaokrąglić je do racjonalnych, a następnie pomnożyć je przez najmniej powszechny mianownik, aby uzyskać rozwiązanie liczb całkowitych.
Peter Shor
6
Nie mam pojęcia, co możesz napisać w 30 minut (w jakim języku?). Jeśli to jest kryterium „proste”, czy w ogóle jest to pytanie w teoretycznej informatyce?
Tsuyoshi Ito,
1
Dobra uwaga Peter Shor. Jerry, cofam moje oświadczenie. Myślałem, że kombinatoryczny problem wypełnienia tych ścisłych nierówności i wypukły analityczny problem znalezienia wewnętrznego punktu stożka są jakościowo różne. Myliłem się.
Ankur
1
@Tsuyoshi: Nie musi to być trywialne, ale jestem ciekawy, czy można to zrobić z pierwszych zasad bez korzystania z całej dodatkowej mocy pełnego solvera LP, szczególnie w specjalnym przypadku, w którym mamy zamówienie wszystkich sum częściowych (zauważ w tym przypadku, że czas wielomianowy jest wykładniczy w liczbie zmiennych).
czerwiec
3
Następnie myślę, że „Czy ten problem można rozwiązać skutecznie bez użycia ogólnych algorytmów do programowania liniowego?” to dobry sposób na lepsze sformułowanie pytania.
Tsuyoshi Ito,

Odpowiedzi:

9

W przypadku pierwszego pytania bez całkowitego zamówienia odpowiedź na to pytanie jest taka, że ​​jest on zasadniczo tak trudny jak programowanie liniowe. Oto zarys dowodu.

Najpierw ustalmy zmienną x1>0, które nazywamy ϵ. Teraz wybierzmy inną zmiennąxi, które nazwiemy 1. Chcemy się tego upewnić

ϵ1.
Aby to zrobić, weź pod uwagę nierówności
x1<x2,
x1+x2<x3,
x2+x3<x4,
i tak dalej. Przy wystarczająco długim łańcuchu to nam to powieNx1<xilub ϵ<1/N, dla niektórych bardzo dużych N (N jest liczbą Fibonacciego, a zatem rośnie wykładniczo w i).

Możemy teraz wyprodukować program liniowy ze współczynnikami całkowitymi. Jeśli chcemy współczynnika 3 naxt, dodajemy nierówności

xt<xt<xt<xt+ϵ
i niech 3 . Jeśli chcesz mieć większe współczynniki, możesz je uzyskać, wyrażając współczynniki w notacji binarnej i wprowadzając nierówności, które gwarantują, że , i tak dalej. Aby uzyskać prawą stronę, robimy to samo ze zmienną . Ta technika pozwoli nam użyć programów liniowych w postaci PO, aby w przybliżeniu sprawdzić wykonalność dla dowolnych programów liniowych o współczynnikach całkowitych, co jest zadaniem tak samo trudnym jak programowanie liniowe.xt+xt+xtxtxu2xtxv2xuxi=1

Nie wiem, jak przeanalizować drugie pytanie, pytając o przypadek, w którym wszystkie podzbiory mają całkowitą kolejność.

Peter Shor
źródło