991
Vývoj / Re: Optimální algoritmus výpočtu
« kdy: 04. 10. 2010, 15:21:51 »
Todle je vcelku hezká definice - ake už v příkladu 3 narážíš na problém. Nabídnu Ti jinou verzi téhož, mnou zmiňovaný faktoriál součtu dvou čísel. Co je tam charakteristikou?
Vidím tam dva zásadní problémy: co takhle takový (vzestupný) bubblesort? Na složitosti n^2, kde n je počet čísel na vstupu se doufám shodnem :-)
Teď dva vstupy
1) vzestupná posloupnost o délce n*(n+1)/2
2) sestupná posloupnost o délce n
Podle té definice (jestli ji rozumím) by oba dva vstupy běžely stejně dlouho, takže by pro ně platila stejná charakteristika. Obávám se, že dle tvé definice by vyhovovala charakteristika vstupu definovaná jako (plus mínus, je to nadhození) délka vstupu plus suma vzdáleností prvků posloupnosti od jejich cílového místa a asymptoitická složitost by byla lineární.
A co např. algoritmus: hledání cesty v grafu prohlédáváním do šířky.... Tady je zas charakteristikou počet hran vedoucích z vrcholů s délkou cesty ze startu kratší než je délka cesty do cíle.
Složitost se využívá i k hornímu odhadu běhu algoritmů - k čemu je mi ale složitost definovaná tak, že k získání odhadu, jak rychle algoritmus poběží musím problém vyřešit?
Když to shrnu, tak dva velké nedostatky jsou:
1) výsledná složitost se neshoduje s běžně definovanými složitostmi jednoduchých algoritmů
2) daná charakteristika může být u problému natolik složitě spočitatelná, že nejde použít jako horní odhad složitosti dané instance problému.
PS: V příkladu 2 zřejmě nemyslíš, že je ta fce na, ale že nemá definiční obor N. Ale to je detail.
PPS: Druhej (dosti podstatnej) detail je definice délky běhu. Ale ta se dá definovat dejmetomu jako počet kroků TS.
Vidím tam dva zásadní problémy: co takhle takový (vzestupný) bubblesort? Na složitosti n^2, kde n je počet čísel na vstupu se doufám shodnem :-)
Teď dva vstupy
1) vzestupná posloupnost o délce n*(n+1)/2
2) sestupná posloupnost o délce n
Podle té definice (jestli ji rozumím) by oba dva vstupy běžely stejně dlouho, takže by pro ně platila stejná charakteristika. Obávám se, že dle tvé definice by vyhovovala charakteristika vstupu definovaná jako (plus mínus, je to nadhození) délka vstupu plus suma vzdáleností prvků posloupnosti od jejich cílového místa a asymptoitická složitost by byla lineární.
A co např. algoritmus: hledání cesty v grafu prohlédáváním do šířky.... Tady je zas charakteristikou počet hran vedoucích z vrcholů s délkou cesty ze startu kratší než je délka cesty do cíle.
Složitost se využívá i k hornímu odhadu běhu algoritmů - k čemu je mi ale složitost definovaná tak, že k získání odhadu, jak rychle algoritmus poběží musím problém vyřešit?
Když to shrnu, tak dva velké nedostatky jsou:
1) výsledná složitost se neshoduje s běžně definovanými složitostmi jednoduchých algoritmů
2) daná charakteristika může být u problému natolik složitě spočitatelná, že nejde použít jako horní odhad složitosti dané instance problému.
PS: V příkladu 2 zřejmě nemyslíš, že je ta fce na, ale že nemá definiční obor N. Ale to je detail.
PPS: Druhej (dosti podstatnej) detail je definice délky běhu. Ale ta se dá definovat dejmetomu jako počet kroků TS.