metode de tăiere
Esența metodelor de întrerupere este că prima problemă poate fi rezolvată fără condiția de integralitate. În cazul în care rezultă plan integral, problema este rezolvată. În caz contrar, se adaugă o nouă restricție la constrângerile problemei, cu următoarele proprietăți:
· Trebuie să fie liniară;
· Trebuie să fie găsit pentru a reduce non-întreg planul optim;
· Nu ar trebui să taie un singur plan integru.
restricție suplimentară care posedă aceste proprietăți se spune ca este cutoff.
Următoarea problemă este rezolvată cu noile restricții. După aceea, dacă este necesar, se adaugă o altă restricție, etc.
Geometric, adăugarea fiecărei constrângeri liniare corespunde efectuarea liniei (hiperplan) care taie un poligon (poliedru) face parte din ea, împreună cu coordonatele de bază non-întregi, dar nu afectează semnalul audio al punctelor zăbrele ale poliedru. Ca rezultat, noi soluții poliedru conține toate punctele întregi, se află în soluțiile inițiale poliedru și, respectiv, primite în acest poliedru cea mai bună soluție ar fi un număr întreg (fig. 6.24).
Unul dintre algoritmi de rezolvare a programării liniare întregi (6,59) ... (6.62) propusă de Gomory, bazat pe metoda simplex și utilizează o metodă destul de simplă pentru construirea corecta cut-off.
Fig. 6.18. ilustrare grafică a soluțiilor întregi
Lăsați problema de programare liniara (6.52) ... (6.55) are un optim finit și în ultima etapă pentru a rezolva metoda simplex, următoarele ecuații care exprimă variabilele de bază în ceea ce privește variabile non-core ale soluției optime
astfel încât soluția optimă a problemei (6.52) ... (6.55) este. în care de ex # 946; i - componenta non-întreg. În acest caz, se poate demonstra că inegalitatea
format pe ecuația i-lea al sistemului (6.56) are toate proprietățile de tăiere corespunzătoare.
Inegalitatea (6.57) este caracterul prezent. reprezintă partea fracționară a numărului. Numărul a este numit un număr congruentă în (desemnate) dacă și numai dacă diferența A - B - un număr întreg.
Partea întreagă a numărului A este cel mai mare întreg. care nu depășesc. Partea fracționară a numărului este definit ca diferența dintre acest număr și partea întreagă, adică . De exemplu, pentru a = 2; și = -3.
Pentru a rezolva problema de programare liniară întreg (6.52) ... (6.55) Metoda Gomory utilizează următorul algoritm:
1. Metoda simplex pentru a rezolva problema (6.52) ... (6.55), cu excepția condițiilor întregi. În cazul în care toate componentele planului optim de ansamblu, este optimă pentru problema de programare întreg (6.52) ... (6.55). Dacă prima problemă (6.52) ... (6.54) este insolubil (adică, are un optim finit sau condițiile de inconsistente), a doua problemă (6.52) ... (6.55) este de asemenea insolubil.
2. În cazul în care, printre componentele soluțiilor optime au neîntreg, apoi alege componenta cu cea mai mare parte a întregului și sistemul corespunzător de ecuații (6.56) pentru a forma o tăiere corespunzătoare (6.57).
3. Inegalitatea (6.57), prin introducerea unor variabile integer mai nenegativ pentru a converti în ecuația echivalentă
și transforma într-un sistem de constrângeri (6,53).
4. Problema extinsă rezultantă rezolvată prin metoda simplex. Dacă ați găsit cel mai bun plan va fi un număr întreg, problema de programare întreg (6.52) ... (6.55) a fost rezolvată. În caz contrar, du-te înapoi la pasul. 2 al algoritmului.
În cazul în care problema este rezolvabilă în numere întregi, apoi, după un număr finit de pași (iterații) se găsește planul optim întreg.
Dacă în procesul de soluționare a ecuației va fi (exprimă variabila de bază prin non-core), cu un neîntreg termen constant și tot restul coeficienților, ecuația corespunzătoare nu are nici o soluție în numere întregi. În acest caz, iar această sarcină nu este o soluție optimă întreg.
dezavantaj Gomory al acestei metode este cerința pentru toate variabilele întregi - ca și cheie (exprimat, de exemplu, problema utilizării resurselor pe unitate de producție) și variabile suplimentare (exprimate prin valoarea resurselor neutilizate care pot fi fracționată).
Trebuie remarcat faptul că trecerea la forma canonică în întregime întreagă problemă de programare liniară care conține restricții - inegalitate
nu, în general vorbind, problema de a complet integral în formă canonică, deoarece în constrângerile transformate (6,59)
variabile auxiliare xn + i nu sunt supuse cerinței integralității.
Cu toate acestea, în cazul în care toți coeficienții ij. bi în (6.59) - întregi, atunci starea întreg poate fi extins la xn + i. așa cum se face în rezolvarea exemplul 6.10.
problemă pe deplin întreg în forma canonică poate fi obținut, în cazul în care (6,59) aij. bi - numere raționale. Pentru a face acest lucru, se multiplica (6,59), pe multiplu comun al numitorilor coeficienților - AIJ. bi (de exemplu, du-te la coeficienți întregi în (6.59)), și numai apoi să se introducă variabile auxiliare.
Exemplul 6.20. Complet rezolva problema de programare întreg
Decizie. Aici este problema de a forma canonică prin introducerea unor variabile suplimentare non-negative. Obținem restricțiile de sistem:
Noi rezolva problema prin metoda simplex. Pentru claritate, decizia ilustrează în mod grafic (fig. 6.19).
Fig. 6.19. ilustrare grafică a soluției problemei
Fig. 6.19 0KLM - regiunea fezabilă delimitată de problema dreaptă (1), (2), (3) și axele de coordonate; L (2/3; 8) - punctul optim, dar rezolvării problemei noninteger; (4) - o soluție directă de interceptare este non-întreg; 0KNM - regiunea fezabilă problemă augmented (6.64 „) N (2, 7) - soluție punct întreg optim.
Am pas. Principalele variabile; Variabilele non-core.
Soluție de bază X3 este optimă pentru sarcina. deoarece, în ceea ce privește o funcție liniară nu sunt variabile non-core, cu coeficienți pozitivi.
Cu toate acestea soluție X3 nu satisface condiția integralității (6.55 „). Conform primei ecuații cu x1 variabilă. au primit o valoare neîntreg în soluția optimă (2/3), este o constrângere suplimentară (6,57):
Vă rugăm să rețineți că, în conformitate cu (6.56) și (6.57) ia partea fracționară a unui membru liber același semn, pe care el are în ecuație, iar partea fracționară a coeficienților de X4 variabile non-core si X5 - cu semne opuse.
Deoarece partea fracționară
ultima inegalitate poate fi scrisă ca
Prin introducerea unui x6 variabil întreg suplimentar ≥ 0, obținem inegalitatea echivalentă ecuația (6.57 „)
Ecuația (6.58) trebuie să fie incluse în sistemul de constrângeri (6,56 „) ale problemei canonice originală, apoi se repetă procesul de rezolvare a metodei problemei simplex aplicată problema extinsă. În același timp, pentru a reduce numărul de pași (iterații), se recomandă să se introducă ecuația suplimentară (6,58 „), în sistem, care rezultă în ultima etapă de rezolvare a problemei (întreg fără condiții).
IV pas. Principalele variabile; Variabilele non-core.
Deoarece expresia funcție liniară nu este principalele variabile cu coeficienți pozitivi, X5 - soluția optimă.
Deci, fmax = 25 la soluție optimă număr întreg are șase componente ale unui sens semnificativ.
Pentru interpretarea geometrică pe planul 0h1h2 (vezi. Fig. 6.19) de tăiere (6,57 „) trebuie să fie incluse în variabilele ea x4 și x5 exprimate prin variabile x1 și x2. Obținem (a se vedea ecuația restricții de 2 si 3 (6,56 „) .:
(A se vedea. Linia de tăiere (4), în Fig. 6.19).