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
Ahoj potřeboval bych pomoci s tímto příkladem, byl by prosím někdo ochoten mi vysvětlit a nakopnout mě k řešení? Děkuji.
Příklad:
Vysvětlete (na vhodně zvoleném případu), jak lze problém
Název problému: Výběr aktivit
Vstup: množina konečně mnoha aktivit {1, 2, . . . , n} s pevně určenými časovými
intervaly (s1, f1), (s2, f2), . . . , (sn, fn), kde (∀i, 1 ≤ i ≤ n) : si < fi
Výstup: množina obsahující největší možný počet vzájemně kompatibilních aktivit
(tj. aktivit s vzájemně se nepřekrývajícími intervaly)
řešit hltavým (greedy) algoritmem.
Ukažte myšlenku induktivního důkazu, podle počtu aktivit n, prokazující, že uvedený přístup
skutečně vede k optimálnímu řešení.
Offline
↑ turcovsky:
Ahoj, co je "kriterium hladovosti", tj. kterou aktivitu vybere hladový algoritmus jako první?
Offline
↑ check_drummer:
Ahoj nevím co máš na mysli, v dostupných školních skriptech je uvedeno ještě toto nevím jestli ti to pomůže, možná ano:
Výběr-Aktivit(n, s, f)
předp., že poč. časy jsou již v poli s a konc. časy v poli f
dále předp. f[1] ≤ f[2] ≤ . . . f[n], kde n představuje počet aktivit
A ← {1}; j ← 1
for i ← 2 to n
do if s[i] ≥ f[j]
then A ← A ∪ {i}; j ← i
return A
V uvedeném případě je důkaz faktu, že hltavý přístup skutečně vede k opti-
málnímu řešení, celkem snadný. (Indukcí podle počtu aktivit n.)
Offline
Ahoj, důkaz je asi celkem snadný, ale nepřišel jsem na nějaký jednoduchý. Avšak pokud budeme dokazovat silnější tvrzení a sice, že navíc dokážeme, že pokud náš hladový algoritmus A vybere stejný počet aktivit jako nějaký jiný algoritmus B, pak poslední úloha vybraná algoritmem A neskončí později než poslední úloha vybraná algoritmem B, pak je důkaz dle mého o mnoho snazší.
Offline
↑ check_drummer:
mno tak jsem asi uplně blbej ale nerozumím ničemu co jsi tu řekl :-D
Offline
↑ turcovsky:
A znáš princip důkazu matematickou indukcí?
Chápeš princip toho hladového algoritmu?
Až budou odpovědi na obě otázky "ano", pak budeme pokračovat dále.
Offline
↑ check_drummer:
ano znám princip důkazu i chápu princip toho algoritmu jen mi jaksi není jasná ta indukce cose vlastně v ní dokazuje?
Offline
Napřed musíme ověřit:
1) hladový výběr nezablokuje cestu k optimálnímu řešení
2) každé optimální řešení řešení vypadá tak, že když z něj odeberu první aktivitu, tak zbytek je nějaké optimální řešení menšího problému (princip optimální podstruktury)
Indukční krok: ukázat, že algoritmus najde optimální řešení pro n aktivit, za předpokladu, že najde optimální řešení pro n-1, n-2, ..., 0 aktivit. Hladovým výběrem zmenším počet aktivit a ve zbylých aktivitách najdu optimální řešení. Díky 1) vím, že existuje optimální řešení v němž je vybrána aktivita, kterou vybral hladový výběr a díky 2) vím, že tohle optimální řešení lze složit z optimálního řešení menšího problému.
Offline
↑ turcovsky:
Já dokazuju toto tvrzení:
Označím-li "t" čas, kdy skončí poslední z aktivit vybraných hladových algoritmem a "u" je čas, kdy skončí poslední z aktivit, které jsou vybrané libovolným jiným algoritmem B, tak pokud algotimus B vybere stejný počet aktivit jako náš hladový algoritmus, pak je t<=u. Myslím, že toto zesílení celý důkaz ulehčí.
Offline
Stránky: 1