Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Stránky: 1
Dobrý den,
Řeším v současné době problém, jak za pomoci principu dynamického programování najít ve stromu počet všech maximálních nezávislých množin vrcholů. Chtěl bych se nejdříve zeptat, jestli je vůbec možné tento problém vyřešit pomocí dynamického programování (myslím, že by to mělo jít, ale nemůžu zatím přijít na to, jak). Doteď se mi podařilo přijít na to, jak pomocí dp zjistit její velikost nebo jak zjistit velikost největší vážené, ale s tímto problémem nějak nemohu hnout.
Předem děkuji za odpověď.
Offline

Ahoj
Rád se nad tím taky zamyslím, ale pro zčátek napiš, jak přesně postupuješ při tom zjišťování maximální velikosti nezávislé množiny, ať se máme od čeho odrazit. A budou se tedy brát v potaz i nějaké váhy vrcholů?
Vojta
Offline
Takže provádím klasické DP vycházím z listů a myslím, že by mělo být možné nakombinovat výsledek z následujících čtyř čísel: s = velikost maximální nezávislé množiny obsahující aktuální kořen, s' = velikost maximální nezávislé množiny bez kořene, n = počet maximálních nezávislé množin s kořenem a n' = počet maximálních nezávislých množin bez kořene.
Přišel jsem již na to, že: 

Problém mám s odvozením vzorečku pro n, n' a pro následné zkombinování čísel, když s==s'. V případech, kdy s>s' by mělo být výsledkem n a kdy s<s' pak n'.
Váhy vrcholů v potaz neberu, jen jsem si to vyzkoušel a doufal, že mě u toho napadne, jak na původní problém.
edit:
tak už se mi podařilo zjistit, že pravděpodobně:
A když s = s' tak výsledek je n+n'
Takže mi chybí už jen to, jak zjistit n' a ověření toho, že je to opravdu, tak jak si myslim.
Offline

↑ ziky:
Ahoj
Podle mě máš pravdu. A řekl bych, že pro spočítání
se stačí zamyslet jen o trochu víc. Každá největší nez. mn. neobsahující aktuální kořen je poskládaná z:
- nějaké nejv. nez. mn. prvního podstromu
- nějaké nejv. nez. mn. druhého podstromu
...atd...
- nějaké nejv. nez. mn. posledního podstromu
a tyhle části můžu vybrat prostě jakkoliv, takže se bude zase násobit přes všechna i. Ale jaké členy v tom produktu budou? Bude to počet největších nezávislých množin v i-tém podstromě. Kolik jich je? Pokud
, tak každá největší je bez kořene a je jich
. Pokud
, každá největší je s kořenem a je jich
. A pokud
, existují největší s kořenem i největší bez kořene a je jich
.
Žádný hezká formulka, ale k naprogramování brnkačka..
Co ty na to? Za správnost neručím..
Vojta
Offline
Stránky: 1