Verze F:
1) Rozhodnete, zda mnozina je rekurzivni, sve rozhodnuti zduvodnete.
2) Ukazte, ze mnozina S z predchoziho prikladu je rekurzivne spocetna.
3) Ukazde, ze .
4) Ukazte, ze nasledujici problem je polynomialne resitelny:
Omezeny soucet podmnoziny
Instance: Mnozina n prvku A, s kazdym prvkem asociovana velikost , cislo .
Otazka: Existuje mnozina prvku , pro niz plati, ze ?
5) S pomoci nektereho problemu probiraneho na prednasce ukazte, ze nasledujici problem je NP-uplny:
Nejvetsi spolecny podgraf
Instance: Grafy a , prirozene cislo .
Otazka: Existuji mnoziny hran a , pro nez jsou grafy a izomorfni? (Izomorfni = "vypadaji stejne").
Zkouska 2010-02-04
-
- Matfyz(ák|ačka) level I
- Příspěvky: 20
- Registrován: 17. 5. 2007 14:02
- Typ studia: Informatika Mgr.
Re: Zkouska 2010-02-04
K tomu rovnou reseni:
1) Rovnou z Riceovy vety (snad se ani nemuselo ukazovat, ze to neni trivialni trida funkci).
2) ja to psal jak odukaz prevodu z K, coz bylo spatne.
3) Snadno, viz odhad, ze TS v case popise max. pasky, takze a zaroven ; slo by ukazat i presneji pres odhad poctu konfiguraci: , coz projdem nejhur v case .
4)
To jiste probehne v O(nB), jiste -> je to v O(n^3). Je to korektni -- kazdou vec pouzijeme nejvys jednou, pokud dojdem na pozadovanou vahu, vrati OK, pokud nedojdem umre.
5) Po cca. hodinovem premysleni jsem to dokazal uplnost za tri minuty prevodem z HK (+diskuse, ze je to z NP) -- chci ukazat, ze v G=(V,E) je HK <=> G1, G2 maji izomorfni podgraf. Polozim tedy G1 = G, G2 = kruznice nad |V| vrcholy. Tecka .
Opet Kucerova poznamka, kterou jiz najdete ve foru ze vcerejska. Navic pry byl dnes stejny zapoctovy test jako vcera.
1) Rovnou z Riceovy vety (snad se ani nemuselo ukazovat, ze to neni trivialni trida funkci).
2) ja to psal jak odukaz prevodu z K, coz bylo spatne.
3) Snadno, viz odhad, ze TS v case popise max. pasky, takze a zaroven ; slo by ukazat i presneji pres odhad poctu konfiguraci: , coz projdem nejhur v case .
4)
Kód: Vybrat vše
b := array [0..B] of Bool; // vyznam "uz jsme na vaze [index]"
b[0] := True;
b[zbytek] := false;
for a in A:
for i := B to 0:
if i + v(a) <= B && b[i]:
b[ i + v(a)] := true;
if b[B]:
return Nalezeno;
return Nelze
5) Po cca. hodinovem premysleni jsem to dokazal uplnost za tri minuty prevodem z HK (+diskuse, ze je to z NP) -- chci ukazat, ze v G=(V,E) je HK <=> G1, G2 maji izomorfni podgraf. Polozim tedy G1 = G, G2 = kruznice nad |V| vrcholy. Tecka .
Opet Kucerova poznamka, kterou jiz najdete ve foru ze vcerejska. Navic pry byl dnes stejny zapoctovy test jako vcera.
-
- Matfyz(ák|ačka) level I
- Příspěvky: 8
- Registrován: 13. 1. 2007 16:42
Re: Zkouska 2010-02-04
Doplním řešení úlohy č. 2:
Stačí si definici té množiny přepsat jako: .
Platí, že S je rekurzivně spočetná právě tehdy, když ex. PRP takový, že . Stačí tedy říct (nemuselo se to dokazovat), že je PRP (první se dá odvodit a to druhé plyne z definice).
Ještě k úloze č. 4:
Pokud se někomu (jako třeba mně) nechtělo vymýšlet s algoritmem, stačilo ukázat, že se dá úloha polynomiálně převést na Batoh(s, c, B) (s(a):=v(a), c(a):=v(a)) a že úloha má řešení právě tehdy, když Batoh vrátí předměty o ceně přesně B. Jelikož Batoh má složitost a jelikož , pak celá úloha má složitost .
Stačí si definici té množiny přepsat jako: .
Platí, že S je rekurzivně spočetná právě tehdy, když ex. PRP takový, že . Stačí tedy říct (nemuselo se to dokazovat), že je PRP (první se dá odvodit a to druhé plyne z definice).
Ještě k úloze č. 4:
Pokud se někomu (jako třeba mně) nechtělo vymýšlet s algoritmem, stačilo ukázat, že se dá úloha polynomiálně převést na Batoh(s, c, B) (s(a):=v(a), c(a):=v(a)) a že úloha má řešení právě tehdy, když Batoh vrátí předměty o ceně přesně B. Jelikož Batoh má složitost a jelikož , pak celá úloha má složitost .
-
- Matfyz(ák|ačka) level I
- Příspěvky: 24
- Registrován: 21. 11. 2007 14:59
- Typ studia: Informatika Mgr.
Re: Zkouska 2010-02-04
Jo, to říkal Kučera po zkoušce a stejně nevím jak. Bylo mi to jasné i na zkoušce, že tam bude něco na Rice'ovu větu a vycházelo to jedině na tohle, ale stejně - "ani obraz ani zvuk" :-/jkt píše:K tomu rovnou reseni:
1) Rovnou z Riceovy vety (snad se ani nemuselo ukazovat, ze to neni trivialni trida funkci).
Tak přesně tohle jsem napsal i já, ale nebylo to dobře, podle lemmatu 12.2 je to přesně naopak, tedyjkt píše:3) Snadno, viz odhad, ze TS v case popise max. pasky, takze a zaroven ;
To bude asi lepší přístupjkt píše:slo by ukazat i presneji pres odhad poctu konfiguraci: , coz projdem nejhur v case .
Wow, tak toto je geniálne a mňa to nenapadlo, potom som sa do toho zaplietol a už som to nedal...jkt píše: 4)
To jiste probehne v O(nB), jiste -> je to v O(n^3). Je to korektni -- kazdou vec pouzijeme nejvys jednou, pokud dojdem na pozadovanou vahu, vrati OK, pokud nedojdem umre.Kód: Vybrat vše
b := array [0..B] of Bool; // vyznam "uz jsme na vaze [index]" b[0] := True; b[zbytek] := false; for a in A: for i := B to 0: if i + v(a) <= B && b[i]: b[ i + v(a)] := true; if b[B]: return Nalezeno; return Nelze
Aké jednoduchéjkt píše: 5) Po cca. hodinovem premysleni jsem to dokazal uplnost za tri minuty prevodem z HK (+diskuse, ze je to z NP) -- chci ukazat, ze v G=(V,E) je HK <=> G1, G2 maji izomorfni podgraf. Polozim tedy G1 = G, G2 = kruznice nad |V| vrcholy. Tecka .