celo seln programov n n.
Skip this Video
Loading SlideShow in 5 Seconds..
Celočíselné programování PowerPoint Presentation
Download Presentation
Celočíselné programování

Loading in 2 Seconds...

  share
play fullscreen
1 / 18
Download Presentation

Celočíselné programování - PowerPoint PPT Presentation

adara
142 Views
Download Presentation

Celočíselné programování

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

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

  2. Úloha celočíselného programování Minimalizovat f(x1, x2, … , xn) za podmínek kde Z je množina celých čísel. 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í: Mj = {0, 1} Proměnné mohou nabývat pouze hodnot nula nebo jedna. TSOA: Celočíselné programování

  4. Úloha celočíselného LP ve standardním tvaru kde Z je množina celých čísel. 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é xij 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é xj nabývají hodnoty jedna nebo nula podle toho, zda j-tý předmět je či není vložen do batohu). 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 cij. Je-li i-tému objektu 1. skupiny přiřazen j-tý objekt 2. skupiny, je xij = 1, jinak xij = 0. 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í. TSOA: Celočíselné programování

  8. Metody řešení celočíselných úloh • Metody sečných nadrovin (např. Gomoryho metody) • Metodyvětví a mezí • Metodydynamické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 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. TSOA: Celočíselné programování

  10. Konstrukce sečné nadroviny Nechť B je optimální báze. Označme symboly ij prvky matice B–1A a i prvky vektoruB–1b. 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 rkj = kj – [kj], Rk = k – [k] a xn+1 je další nezáporná proměnná. TSOA: Celočíselné programování

  11. Metoda větví a mezí Uvažujme úlohu 1. Položme MR = M, p = 0 (MR označuje rozkládanou množinu). 2. Větvení: Množinu MR rozložíme na r po dvou disjunktních podmnožin Mp+1 , Mp+2 , … , Mp+r , jejichž sjednocením je množina MR. 3. Omezování: Určíme horní mez h(Mk) hodnot funkce f(x) pro každou podmnožinu Mk vzniklou v posledním rozkladu. 4. Lze-li nalézt přípustné řešení xo takové, že pro všechny dosud nerozložené podmnožiny platí f(xo)  h(Mk), pak postup končí a xo je optimální řešení. V opačném případě za množinu MR zvolíme podmnožinu s největší horní mezí, položíme p = p+r a vracíme se na krok 2. 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ť xo je optimální řešení neceločíselné úlohy odpovídající rozkládané množině a nechť  je neceločíselná hodnota proměnné xk . Množinu rozdělíme na dvě podmnožiny tak, že k původním podmínkám přidáme poprvé podmínku xk  [ ] a podruhé podmínku xk  [ ] + 1, kde [ ] je celá část hodnoty . 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 aj je hmotnost j-té věci, cj je cena j-té věci, b je limit hmotnosti, xj = 1 znamená, že j-tou věc vezmeme, a xj = 0 znamená, že j-tou věc nevezmeme. 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í d1 d2 …  dn , kde dj = cj /aj . Nechť množina Mk byla získána dosazením hodnot j  {0, 1} zaprvý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 . 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 yj) a rozhodnutím v j-té etapě je určení hodnoty proměnné xj (1 znamená j-tou věc vzít a 0 znamená nevzít). Stavy procesu: y1= b, yj+1 = yj – ajxj 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 yj . TSOA: Celočíselné programování

  16. Systém funkcionálních rovnic pro úlohu o batohu Označme symbolem n – j + 1(yj)optimální hodnotu účelové funkce spojené s (n – j + 1)-etapovým procesem, začínajícím ve stavu yj . Pak platí 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 xjo(yj) se zaznamenávají do tabulek. Optimální řešení úlohy x* o batohu se pak z těchto tabulek získá takto: kde 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ů). TSOA: Celočíselné programování