Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Teorie systémů a operační analýza1 Celočíselné programování RNDr. Jiří Dvořák, CSc.

Podobné prezentace


Prezentace na téma: "Teorie systémů a operační analýza1 Celočíselné programování RNDr. Jiří Dvořák, CSc."— Transkript prezentace:

1 Teorie systémů a operační analýza1 Celočíselné programování RNDr. Jiří Dvořák, CSc. dvorak@uai.fme.vutbr.cz

2 TSOA: Celočíselné programování2 Úloha celočíselného programování Minimalizovat f(x 1, x 2, …, x n ) za podmínek kde Z je množina celých čísel.

3 TSOA: Celočíselné programování3 Klasifikace úloh celočíselného programování Úlohy plně (ryze) celočíselné: J = {1, 2, …, n} Podmínka celočíselnosti se vztahuje na všechny proměnné. Úlohy částečně (smíšeně) celočíselné: J  {1, 2, …, n} Některé proměnné nemusejí být celočíselné. Úlohy bivalentního (nula-jedničkového) programování: M j = {0, 1} Proměnné mohou nabývat pouze hodnot nula nebo jedna.

4 TSOA: Celočíselné programování4 Úloha celočíselného LP ve standardním tvaru kde Z je množina celých čísel.

5 TSOA: Celočíselné programování5 Příklady úloh celočíselného LP Úloha optimalizace výrobního programu, kde množství výrobků se počítá v kusech. Řezný problém (rozhodovací proměnné vyjadřují počty kusů výchozího materiálu, rozřezané podle jednotlivých řezných plánů). Přiřazovací problém (rozhodovací proměnné x ij nabývají hodnoty jedna nebo nula podle toho, zda i-tý objekt z 1. skupiny je či není přiřazen j-tému objektu ze 2. skupiny). Úloha o batohu (rozhodovací proměnné x j nabývají hodnoty jedna nebo nula podle toho, zda j-tý předmět je či není vložen do batohu).

6 TSOA: Celočíselné programování6 Přiřazovací problém Jsou dány dvě skupiny objektů, každá o n objektech. Každému objektu 1. skupiny je třeba přiřadit právě jeden objekt 2. skupiny. Přiřazení i-tého objektu 1. skupiny j-tému objektu 2. skupiny přinese zisk resp. ztrátu c ij. Je-li i-tému objektu 1. skupiny přiřazen j-tý objekt 2. skupiny, je x ij = 1, jinak x ij = 0.

7 TSOA: Celočíselné programování7 Přístupy k řešení celočíselných úloh Zanedbání podmínek celočíselnosti, použití vhodné metody LP nebo NLP a upravení výsledků na celá čísla. Při tomto způsobu hrozí nebezpečí, že se dopustíme příliš velké chyby nebo dokonce získáme nepřípustné řešení. Na druhé straně u některých úloh, jako je např. přiřazovací problém nebo dopravní problém s celočíselnými hodnotami pravých stran omezení, je při zanedbání podmínek celočíselnosti a použití simplexové metody teoreticky zaručeno získání celočíselného optimálního řešení. Použití metod celočíselného programování.

8 TSOA: Celočíselné programování8 Metody řešení celočíselných úloh Metody sečných nadrovin (např. Gomoryho metody) Metody větví a mezí Metody dynamického programování Speciální metody pro řešení problému určitého typu  (např. maďarská metoda pro řešení přiřazovacího problému) Heuristické metody  obecné heuristiky (metaheuristiky) - např. lokální hledání, genetické algoritmy, simulované žíhání, zakázané hledání  problémově specifické heuristiky

9 TSOA: Celočíselné programování9 Metoda sečných nadrovin pro lineární úlohy 1.Zanedbáme podmínky celočíselnosti. 2.Úlohu řešíme simplexovou metodou. Splňuje-li získané optimální řešení podmínky celočíselnosti, pak končíme. 3.V opačném případě do úlohy přidáme lineární omezení, které má tyto vlastnosti:  je splněno pro libovolné přípustné řešení původní celočíselné úlohy,  není splněno pro optimální neceločíselné řešení (příslušná nadrovina toto řešení „odřízne“). Vracíme se na krok 2 a pokračujeme duálně simplexovou metodou. Pozn.: V některých případech může dojít k velkému nárůstu rozměrnosti úlohy a ke zpomalení konvergence.

10 TSOA: Celočíselné programování10 Konstrukce sečné nadroviny Nechť B je optimální báze. Označme symboly  ij prvky matice B –1 A a  i prvky vektoru B –1 b. Dále budeme označovat symbolem [x] největší celé číslo menší nebo rovné hodnotě x. Nechť  k není celočíselné. K soustavě rovnic z poslední simplexové tabulky připojíme rovnici kde r kj =  kj – [  kj ], R k =  k – [  k ] a x n+1 je další nezáporná proměnná.

11 TSOA: Celočíselné programování11 Metoda větví a mezí Uvažujme úlohu 1.Položme M R = M, p = 0 (M R označuje rozkládanou množinu). 2.Větvení: Množinu M R rozložíme na r po dvou disjunktních podmnožin M p+1, M p+2, …, M p+r, jejichž sjednocením je množina M R. 3.Omezování: Určíme horní mez h(M k ) hodnot funkce f(x) pro každou podmnožinu M k vzniklou v posledním rozkladu. 4.Lze-li nalézt přípustné řešení x o takové, že pro všechny dosud nerozložené podmnožiny platí f(x o )  h(M k ), pak postup končí a x o je optimální řešení. V opačném případě za množinu M R zvolíme podmnožinu s největší horní mezí, položíme p = p+r a vracíme se na krok 2.

12 TSOA: Celočíselné programování12 Metoda větví a mezí pro maximalizační úlohu LP Omezování: Každá z podmnožin vzniklých rozkladem je charakterizována soustavou lineárních omezení a podmínek celočíselnosti. Zanedbáme podmínky celočíselnosti a vzniklou úlohu řešíme simplexovou metodou. Získaná optimální hodnota účelové funkce je horní mezí hodnot účelové funkce na příslušné podmnožině. Větvení: Nechť x o je optimální řešení neceločíselné úlohy odpovídající rozkládané množině a nechť  je neceločíselná hodnota proměnné x k. Množinu rozdělíme na dvě podmnožiny tak, že k původním podmínkám přidáme poprvé podmínku x k  [  ] a podruhé podmínku x k  [  ] + 1, kde [  ] je celá část hodnoty .

13 TSOA: Celočíselné programování13 Úloha o batohu Máme n věcí, jejichž celková hmotnost převyšuje limit hmotnosti obsahu batohu. Úkolem je naplnit batoh tak, aby byla maximalizována celková cena obsahu batohu. Matematický model: kde a j je hmotnost j-té věci, c j je cena j-té věci, b je limit hmotnosti, x j = 1 znamená, že j-tou věc vezmeme, a x j = 0 znamená, že j-tou věc nevezmeme.

14 TSOA: Celočíselné programování14 Řešení úlohy o batohu metodou větví a mezí Větvení provádíme do dvou větví dosazením hodnoty nula nebo jedna za nějakou proměnnou. Předpokládejme, že proměnné jsou očíslovány tak, že platí d 1  d 2  …  d n, kde d j = c j /a j. Nechť množina M k byla získána dosazením hodnot  j  {0, 1} za prvých p proměnných. Pak horní mez lze určit takto: kde q je takové, že kromě dosud vložených věcí se do batohu vejdou ještě věci s indexy p+1 až q–1 a z q-té věci pouze část o hmotnosti  kq.

15 TSOA: Celočíselné programování15 Formulace úlohy o batohu pomocí dynamického programování Úlohu o batohu chápeme jako n-etapový rozhodovací proces, kde stavem procesu na začátku j-té etapy je zbývající kapacita batohu (označme ji y j ) a rozhodnutím v j-té etapě je určení hodnoty proměnné x j (1 znamená j-tou věc vzít a 0 znamená nevzít). Stavy procesu: y 1 = b,y j+1 = y j – a j x j Přípustná rozhodnutí: Úloha se převede na systém n funkcionálních rovnic, přičemž j-tá rovnice určuje optimální hodnotu účelové funkce spojené s (n – j + 1)-etapovým procesem, začínajícím ve stavu y j.

16 TSOA: Celočíselné programování16 Systém funkcionálních rovnic pro úlohu o batohu Označme symbolem  n – j + 1 (y j ) optimální hodnotu účelové funkce spojené s (n – j + 1)-etapovým procesem, začínajícím ve stavu y j. Pak platí

17 TSOA: Celočíselné programování17 Řešení systému funkcionálních rovnic Systém funkcionálních rovnic se řeší pro j = n, n – 1, …, 1 a pro hodnoty stavů a získané optimální hodnoty x j o (y j ) se zaznamenávají do tabulek. Optimální řešení úlohy x* o batohu se pak z těchto tabulek získá takto: kde

18 TSOA: Celočíselné programování18 Vybrané metaheuristiky Genetický algoritmus pracuje nad populací tvořenou vektory rozhodovacích proměnných. Pomocí operátorů selekce, křížení, mutace a reprodukce se algoritmus snaží získat řešení s lepšími hodnotami účelové funkce. Simulované žíhání (simulated annealing, SA) a zakázané hledání (tabu search, TS) používají operaci zvanou pohyb pro přechod k dalšímu řešení. Tyto metody připouštějí za určitých podmínek i pohyb k řešení horšímu, než je řešení aktuální, což jim umožňuje uniknout z řešení, které je pouze lokálně optimální.  SA je založeno na analogii mezi optimalizací a simulací procesu chladnutí materiálu.  TS snižuje nebezpečí návratu k již prozkoumanému řešení tak, že každé získané řešení (resp. odpovídající pohyb) je po jistou dobu zaznamenáno v seznamu zakázaných (tabu) řešení (resp. pohybů).


Stáhnout ppt "Teorie systémů a operační analýza1 Celočíselné programování RNDr. Jiří Dvořák, CSc."

Podobné prezentace


Reklamy Google