Modell-iskola
Na, van egy rakat példa, amikor mégsem ugyanaz lesz, a wikipédia cikk alapján:
- számpontosság, memóriaszûke, lapozófájl, pontosságvesztés máshogy és máshogy
- konkurencia, versenyhelyzet, deadlock (és timeout)
- optimalizálás (ha már 3 órája futok és még mindig csak 72 óránál járok, csökkentem a pontosságot, hogy befejezzem 6 óra múlva): ez függ teljesítményingadozástól, hardwer throttling (túlmelegedés elllen) stb. hogy mennyi idõ alatt hová jut
És nyilván akkor nemdetermenisztikus egy algoritmus, ha nem akarja a végeredményt
kiszámolni, csak egy jó közelítést. Ez pedig pont az elõrejelzések témaköre
Nyilván elméletileg ugyanannak kéne kijönnie, ha nincs véletlenszám-generálás az elõrejelzésben, és minden pont ugyanannyira pontos, minden komponens hibátlan, csakhogy ez sose igaz: de még egyszerûbb programoknál is rendszeres, hogy más futás más eredményt hoz. Sõt, szoftverfejlesztésnél ezek a legjobban utált problémák: tízbõl egyszer jön elõ típusú hiba. Nehéz levadászni, debugolni és megjavítani. Ilyen tuti van a modell-elõrejelzésekben, és valószínûleg a hibakezelõ algoritmus már akkora változást hoz, ami a kimenetelre is rányomja a bélyegét. Elfailel egy egyszerû fájl-írás, egy OS API hívás "Internal error"-t mond és még sorolhatnám: ki tudja, ezek mitõl függnek, de néha elõjönnek, néha nem És ha egy számítás eredménye dob hibát, a hibakezelés lehet eldobja az egészet és egy nagy 0-val helyettesíti az eredményt, ami máris eltorzítja az eredményt pl. egy bonyolult számításnál akár jelentõsen. Máskor meg nem jön elõ...
Minél nagyobb egy rendszer, annál több az ilyen hibalehetõség, és ezeket részben ugyan ki kell küszübülni, de teljesen nem lehet, egyszerûen fel kell készülni rá: hibakezelés.
Több év alatt emlékszem 1-2 esetre, amikor megakadt a GFS frissítés, illetõleg nem is voltak friss képek sehol (WZ, Meteociel). Persze ez lehet webszerver, feltöltés, network hiba is, nem csak az algoritmusban egy végzetes hiba.
- számpontosság, memóriaszûke, lapozófájl, pontosságvesztés máshogy és máshogy
- konkurencia, versenyhelyzet, deadlock (és timeout)
- optimalizálás (ha már 3 órája futok és még mindig csak 72 óránál járok, csökkentem a pontosságot, hogy befejezzem 6 óra múlva): ez függ teljesítményingadozástól, hardwer throttling (túlmelegedés elllen) stb. hogy mennyi idõ alatt hová jut
És nyilván akkor nemdetermenisztikus egy algoritmus, ha nem akarja a végeredményt
kiszámolni, csak egy jó közelítést. Ez pedig pont az elõrejelzések témaköre
Nyilván elméletileg ugyanannak kéne kijönnie, ha nincs véletlenszám-generálás az elõrejelzésben, és minden pont ugyanannyira pontos, minden komponens hibátlan, csakhogy ez sose igaz: de még egyszerûbb programoknál is rendszeres, hogy más futás más eredményt hoz. Sõt, szoftverfejlesztésnél ezek a legjobban utált problémák: tízbõl egyszer jön elõ típusú hiba. Nehéz levadászni, debugolni és megjavítani. Ilyen tuti van a modell-elõrejelzésekben, és valószínûleg a hibakezelõ algoritmus már akkora változást hoz, ami a kimenetelre is rányomja a bélyegét. Elfailel egy egyszerû fájl-írás, egy OS API hívás "Internal error"-t mond és még sorolhatnám: ki tudja, ezek mitõl függnek, de néha elõjönnek, néha nem És ha egy számítás eredménye dob hibát, a hibakezelés lehet eldobja az egészet és egy nagy 0-val helyettesíti az eredményt, ami máris eltorzítja az eredményt pl. egy bonyolult számításnál akár jelentõsen. Máskor meg nem jön elõ...
Minél nagyobb egy rendszer, annál több az ilyen hibalehetõség, és ezeket részben ugyan ki kell küszübülni, de teljesen nem lehet, egyszerûen fel kell készülni rá: hibakezelés.
Több év alatt emlékszem 1-2 esetre, amikor megakadt a GFS frissítés, illetõleg nem is voltak friss képek sehol (WZ, Meteociel). Persze ez lehet webszerver, feltöltés, network hiba is, nem csak az algoritmusban egy végzetes hiba.