Algoritm de rețea simplex - Network simplex algorithm

În optimizarea matematică , algoritmul de rețea simplex este o specializare teoretică grafică a algoritmului simplex . Algoritmul este de obicei formulat în termeni de problemă a fluxului de cost minim . Metoda simplex de rețea funcționează foarte bine în practică, de obicei de 200 până la 300 de ori mai rapid decât metoda simplex aplicată programului liniar general de aceleași dimensiuni.

Istorie

Pentru o lungă perioadă de timp, existența unui algoritm de rețea simplex eficient și eficient a fost una dintre problemele majore deschise în teoria complexității, chiar dacă erau disponibile versiuni eficiente în practică. În 1995, Orlin a furnizat primul algoritm polinomial cu timpul de rulare unde este costul maxim al oricăror muchii. Mai târziu, Tarjan a îmbunătățit acest lucru folosind arborii dinamici în 1997. Algoritmii simplex cu rețea dublă puternic polinomiali pentru aceeași problemă, dar cu o dependență mai mare de numărul de muchii și vârfuri din grafic, sunt cunoscuți de mai mult timp.

Prezentare generală

Metoda simplex de rețea este o adaptare a algoritmului variabil delimitat primar simplex. Baza este reprezentată ca un copac cu rădăcini întins pe rețeaua subiacentă, în care variabilele sunt reprezentate prin arcuri, iar multiplicatorii simplex prin potențialele nodului. La fiecare iterație, o variabilă de intrare este selectată de o anumită strategie de stabilire a prețurilor, bazată pe multiplicatorii duali (potențiali nodali) și formează un ciclu cu arcele arborelui. Variabila de ieșire este arcul ciclului cu cel mai mic flux crescător. Înlocuirea intrării pentru ieșirea din arc și reconstrucția arborelui se numește pivot. Atunci când niciun arc non-bazic nu rămâne eligibil pentru a intra, soluția optimă a fost atinsă.

Aplicații

Algoritmul de rețea simplex poate fi utilizat pentru a rezolva multe probleme practice, inclusiv,

Referințe

linkuri externe