Matematické Fórum

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

#1 02. 12. 2013 19:54

ziky
Zelenáč
Příspěvky: 8
Reputace:   
 

Počet maximálních nezávislých množin ve stromu.

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

  • (téma jako vyřešené označil(a) ziky)

#2 05. 12. 2013 08:44

vojta_vorel
Příspěvky: 70
Škola: MFF UK
Pozice: student
Reputace:   
 

Re: Počet maximálních nezávislých množin ve stromu.

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

 

#3 05. 12. 2013 13:36 — Editoval ziky (05. 12. 2013 15:59)

ziky
Zelenáč
Příspěvky: 8
Reputace:   
 

Re: Počet maximálních nezávislých množin ve stromu.

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:
$s = 1 + \sum_{i}^{n}s_i'$
$s' = \sum_{i}^{n}max(s_i, s'_i)$

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ě:
$n = \prod_i^n(n'_i)$

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

 

#4 05. 12. 2013 16:25

vojta_vorel
Příspěvky: 70
Škola: MFF UK
Pozice: student
Reputace:   
 

Re: Počet maximálních nezávislých množin ve stromu.

↑ ziky:
Ahoj
Podle mě máš pravdu. A řekl bych, že pro spočítání $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 $s'_i>s_i$, tak každá největší je bez kořene a je jich $n'_i$. Pokud $s_i>s'_i$, každá největší je s kořenem a je jich $n_i$. A pokud $s'_i=s_i$, existují největší s kořenem i největší bez kořene a je jich $n'_i+n_i$.
Žádný hezká formulka, ale k naprogramování brnkačka..

Co ty na to? Za správnost neručím..
Vojta

Offline

 

#5 05. 12. 2013 17:13

ziky
Zelenáč
Příspěvky: 8
Reputace:   
 

Re: Počet maximálních nezávislých množin ve stromu.

Zdá se mi, že je to správně. Alespoň teda zatim jsem nenašel protipříklada vysvětlení mi zní logicky.
Díky

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson