Istnieje system więzów liniowych . Chciałbym znaleźć ściśle dodatni wektor x > 0, który spełnia te ograniczenia. Oznacza to, że x i > 0 jest wymagane dla każdego składnika x i z x . Jak mogę użyć solwera LP, aby znaleźć tak ściśle dodatni wektor x (lub potwierdzić, że nie istnieje x )? Nie mogę po prostu wprowadzić innego systemu ograniczeń x i > 0, ponieważ równość musi być zawsze dozwolona w LP - ale mogę używać solvera LP kilka razy, ze zmieniającymi się funkcjami celu. Myślę, że powinienem użyć metody zmiennej luzu, ale nie wiem jak.
15
W przypadku problemu z wykonalnością LP nie użyłbym standardowego simpleksu. Standardowe pierwotne (lub podwójne) algorytmy simpleksowe odwiedzą tylko wierzchołki możliwego zestawu pierwotnych (lub podwójnych) problemów.
Niech wykonalnym zestawem problemu, który faktycznie chcesz rozwiązać, będzie , i załóżmy, że zamiast tego rozwiązałeś problem ( F ε ):F={x:Ax≤b,x>0} Fε
Najbliższym przybliżeniem problemu, który chcesz rozwiązać, jest , który przyznaje nieco za dużo punktów. Problem polega na tym, że granica dodatniej ortant (tj. Zbiór B = { x : x ≥ 0 , ∃ i : x i = 0 } może stanowić część granicy możliwego zestawu F 0 . jak wykluczyć te punkty. Jednym ze sposobów jest zrobienie tego, co sugerował Aron, czyli ustawienie εF0 B={x:x≥0,∃i:xi=0} F0 ε do niewielkiej dodatniej wartości, a następnie użyj dowolnego standardowego algorytmu LP. Ta strategia jest dobra i prawdopodobnie będzie działać w wielu różnych sytuacjach. Jednak zawiedzie, jeśli jest nieosiągalny. Wiemy, że F 0 ⊂ F ⊂ F ε dla wszystkich ε > 0 (do nadużywania notacji i odwoływania się do możliwego zestawu przez odpowiadający jej problem), i możliwe jest, że nawet jeśli wybierzesz małe dodatnie wartości ε , solver LP wskaże że twoje LP jest niemożliwe.Fε F0⊂F⊂Fε ε>0 ε
Dla solver LP, chciałbym użyć dowolnego algorytmu punkt wewnętrzny do płyt, które rozpoczyna się możliwym momencie i pozostaje wykonalne, co jest kolejnym sposobem, aby wykluczyć punkty . Nie musisz przedstawiać wykonalnego algorytmu; standardowe solwery zrobią to za Ciebie. Metody takie jak skalowanie afiniczne, redukcja potencjału i metody barierowe tworzą pomocnicze LP, które znajdą możliwe rozwiązania, a iteracje tych algorytmów przemierzają wnętrze wykonalnego regionu. Musisz tylko zlokalizować jeden punkt w twoim możliwym regionie, więc dopóki problemy pomocnicze używane przez solwery LP zlokalizują wykonalny punkt dla twojego problemu, a ten wykonalny punkt jest ściśle pozytywny, powinieneś być w porządku. Jeśli rozwiązanie F ε nie powiedzie się dla małych dodatnich wartości εB Fε ε , nadal możesz być w stanie użyć tych metod do zlokalizowania ściśle pozytywnego możliwego punktu w obrębie .F0
Nie używaj simpleksu, ponieważ będzie on badał tylko wierzchołki , co jest dokładnie tym, czego chcesz uniknąć.Fε
źródło
Problemy wykonalności są nieco trudniejszą grą niż ogólne problemy liniowe, które zauważyłeś. Jeśli rozwiązujesz w przybliżeniu (używając reprezentacji zmiennoprzecinkowej układu równań i ograniczeń), uzasadnione jest wymaganie , gdzie ϵ jest bardzo małą wartością liczbową, wystarczająco dużą, aby zapewnić, że x i faktycznie mieszka w ℜ + , ale na tyle mały, że rozwiązanie na granicy nie jest brane pod uwagę.xi>=ϵ ϵ xi R+
Być może będziesz musiał dostosować , a twoje rozwiązanie zostanie zakwalifikowane do „w granicach ϵ ”, ale jest to wystarczające w wielu sytuacjach.ϵ ϵ
źródło
Odpowiedź udzielona przez eeismail należy przeczytać uważnie, patrz pp
św
Ma rozwiązania i ( 0 , 1 ), a także inne (zdegenerowane). Ogólny charakter tego pytania sugeruje, że te przypadki również muszą być traktowane.(1,0) (0,1)
Ponieważ możesz wybrać funkcję celu, możesz spróbować iteracyjnie ją zmodyfikować. Np. Zacznij od wszystkich współczynników dla wszystkich zmiennych równych jedności, sprawdź, czy uzyskasz odpowiednie rozwiązanie. Jeśli jedna zmienna ma wartość zero, zwiększ jej współczynnik i zacznij od nowa ...
Chociaż nie mogę dać matematycznego dowodu, że to działa (lub dobrze zdefiniowana procedura modyfikowania funkcji celu). Mam nadzieję, że to pomoże :)
źródło