Nové příklady na cvičení

tutchek at 2010-01-31 12:57:05

Oproti loňským letům díky lehké reorganizaci zmizelo pár příkladů řešených na cvičení a oproti tomu přibyla hromada jiných. Nemáte hinty jak na ně?

  1. cvičení
    1.Nechť máme k dispozici „černou skřínku“, která umí řešit rozhodovací verzi problému součtu podmnožiny v polynomiálním čase. Skřínka odpovídá pouze ANO-NE. Zkonstruujte algoritmus, který pro daný vstup optimalizační verze problému součtu podmnožiny najde v polynomiálním čase (vzhledem k délce binárního zápisu vstupních dat) optimální řešení.
    2.Popište jak lze pro libovolné dané n zkonstruovat graf na n vrcholech takový, že aproximační algoritmus pro vrcholové pokrytí s poměrovou chybou r=2 (prezentovaný na přednášce) na tomto grafu vrací pokrytí právě dvakrát větší než je velikost optimálního vrcholového pokrytí (tj. ukažte, že dokázaný odhad poměrové chyby je těsný).
    3.Navrhněte algoritmus, který v polynomiálním čase nalezne optimální vrcholové pokrytí pro neorientovaný graf bez cyklů (les, strom).
    4.Bottleneck TSP: vstupem je úplný ohodnocený neorientovaný graf s nezápornými váhami na hranách (stejně jako u obyčejného TSP), o kterých navíc předpokládáme, že splňují trojúhelníkovou nerovnost. Úkolem je opět najít nejkratší Hamiltonovskou kružnici ve vstupním grafu, ovšem délka kružnice není v tomto případě rovna součtu délek hran na kružnici, ale maximu z délek hran na kružnici. Nejdříve dokažte, že Bottleneck TSP je NP-těžký a poté navrhněte polynomiální aproximační algoritmus s poměrovou chybou r=3.

macbeth at 2010-01-31 13:57:37

1.)suma x<sub>i</sub> <= t, black box nam povie ano, ak existuje S<sub>i</sub>: suma x<sub>i</sub> cez prvky S<sub>i</sub> = t
ide tam o pridavanie y<sub>0</sub> = 2<sup>0</sup>, y<sub>1</sub> = 2<sup>1</sup>, ... y<sub>log_2 t</sub> = 2<sup>log_2 t</sup> (tie log s dolnou celou castou), potom nasu instanciu tvoria x<sub>j</sub>, y<sub>i</sub> a t a pytame sa, ci sa da t poskladat z y<sub>i</sub>... presne som to nepochopil, doplnte ma niekto...

2.) hviezda -- jeden vrchol v strede spojeny so vsetkymi vrcholmi usporiadanymi do kruhu okolo stredu... algoritmus vyberie nahodnu hranu a odstrani jej 2 vrcholy... pritom optimalne VP je tvorene len tym stredom... alebo nejaka modifikacia grafu tvoreneho dvojicami vrcholov spojenymi hranou, cosi ako

o    o     o    o
|    |     |    |
|    |     |    |  ...
o    o     o    o

len tam treba vymysliet co s neparnym poctom...

3.) ideme od listov, tie neofarbime, ale ofarbime ich rodicov, potom odstranim hrany veduce medzi listami a ich rodicmi aj s danymi vrcholmi a iterujem... ofarbene vrcholy by mali byt potom VP... spravnost sa da dokazat podobne ako spravnost algoritmu B na prednaske, hrany su po 2 disjunktne, vybrana nemoze byt incidentna s inou potom...

hadam ma ostatni doplnia...

Blaf at 2010-02-02 23:19:55
  1. BottleneckTSP
    prevod HK \propto BTSP skoro stejnej, jako u normalniho TSP: nehrany ohodnotim 2, hrany 1 a ptam se, jestli existuje kruznice vahy 1. Aproximacni algoritmus se zase dela pres min. kostru, vyuziju fakt, ze "G je souvisly \Rightarrow G<sup>3</sup> je hamiltonovsky" a z trojuhelnikovy nerovnosti pak plyne, ze kruznice nebude delsi, nez trojnasobek minimalni kostry.