Vita:Algoritmus
Egy egyszerű ellenpélda
szerkesztésAlgoritmusokkal nem csak a számítástechnikában, hanem a matematikában is találkozhatunk. Sajnos sokszor, még tankönyvekben is pédaként idéznek olyan eljárási útmutatókat, melyek NEM algoritmusok. Példa a "hűtőszekrényben található sütemény elfogyasztása" nevű feladatra:
- menj a hűtőszekrényhez
- nyisd ki az ajtaját
- keresd meg a süteményt
- fogd meg a jobb kezedbe és vedd ki
- bal kezeddel csukd be a hűtőt
- nyisd ki a szádat
- edd meg a süteményt
Egy algoritmus lépései ugyanis előre meghatározott lépések közül kerülhetnek csak ki, nem lehet őket tetszőleges mértékben pontosítani (például az "edd meg" részfeladatot kifejteni a száj kinyitására, a sütemény részleges belehelyezésére, rágásra, stb.), attól függően, hogy mi az algoritmus leírásának lényege. Hogy az ellenkező felfogás milyen fogalmi bonyodalmakhoz vezet, és még az informatika számára is mennyire használhatatlan fogalmat eredményez, annak megmutatására most közlöm „a világ megváltásának algoritmusát”:
„Algoritmus” a világ megváltására:
- 1). Váltsuk meg a világot!
- 2). Stop!
A fenti felfogás más bonyodalmakat is okoz, pl. egy algoritmusnak végesnek és determinisztikusnak kell lennie (bár az utóbbi felfogás mostanában kezd változni). – Aláíratlan hozzászólás, szerzője Gubbubu (vitalap | szerkesztései) 2004. május 17., 23:31
Kope: Hat en azt hiszem, hogy a matematika mindig is tele volt algoritmusokkal. Peldak: szerkesztesek, egyenlet(rendszer)ek megoldasa, kulonbozo elemi feladatok (penzdarabok...). Persze a szamitastechnikaban alapfogalom, de legujabban a matematikaban is, millio tetel van ra, lasd Gacs-Lovasz. Gubbubu megjegyzesere: ez persze tenyleg nem algoritmus, legfeljebb csak illusztracio. Azert igy lehet elmagyarazni az algoritmus fogalmat azoknak akik elajulnak a "primszam" szo hallatan (a lakossag 98 szazaleka). Kope.
Igen, lehet, hogy visszaírom majd az egészet valami didaktikai kísőrőszöveg hozzáfűzésével (hogy „tekintsük a következő eljárást a hűtőben lévő sütemény elfogyasztására, ez szép, de mi van, ha nincs is sütemény a hűtőben, ha végtelen sok van benne..” vagy valami hasonló; így lépésről lépésre kialakulhat, hogy mi számít algoritmusnak, mi számít eljárásnak, és mi az, mi számít „recept”nek, és mi az, ami valami olyasmi, mint ezek, de még neve sincs.) Gubbubu 2004 május 18, 08:45 (CEST)
- Kope tökéletesen megfogalmazta azt, amiért a példát írtam. Szerintem is vagy írd vissza, vagy írj helyette valamit. Nem szép dolog törölni és semmit nem írni helyette. És gondolj mindig arra, hogy egy tejesember és egy részmunkaidős utcaseprő fogja elolvasni, és próbáld úgy fogalmazni, hogy megértsék.
- Amúgy szerintem - bár nem állítom, hogy a tudományos definíció birtokában lennék - bármilyen algoritmusról bemutatható, hogy nem lehet véges és determinisztikus, mivel olyan világban alkalmazzuk, ami (elméletileg vagy gyakorlatilag) végtelen állapotot vehet fel. Természetesen meg lehet fogalmazni az algoritmust úgy, hogy minden egyes lépésben minden lehetséges eseményre felkészülsz (tehát pl. a példádnál maradva, hogy "nincs sütemény a hűtőben", megírni az összeadás algoritmusát úgy, hogy minden lépésnél vizsgáljuk, hogy kitört-e a világháború, megfordult-e a protonok polaritása vagy megdőlt-e bármelyik matematikai axióma), csak épp így az szerintem végtelen hosszúságú lenne, és végtelen ideig tartana végrehajtása. Ha pedig úgy gondolod, hogy elfogadhatjuk azt, hogy egy algoritmus a feladatot idealizált környezetben írja le, akkor jelzem, hogy ebben az idealizált környezetben a hűtőben mindig van egy sütemény. :-) --grin ✎ 2004 május 18, 09:48 (CEST)
MI-kutatás
szerkesztésBiztos vagy benne, hogy a mesterségesintelligencia-kutatásnak nem ez a szabályos formája? Ha összetett szóhoz utótagot teszünk, tudtommal az összetett előtag egybeírandó, legalábbis az özönvíz előtti MHSZ szerint (de logikus is): nem arról van szó, hogy mesterséges az (intelligencia kutatása), hanem hogy a (mesterséges intelligenciát) kutatjuk. Gubb
- 138: a több szóból álló összetételeket az összetétel fogalmi határán tagoljuk: mesterségesintelligencia-kutatás --grin ✎ 2004. december 15., 11:14 (CET)
- Köszönöm, ezek szerint megint csak nekem van igazam. Bár, ha úgy vesszük, ez természetes :-) Gubb 2004. december 15., 11:25 (CET).
Nyögvenyelés
szerkesztésSzerintem a cikk egész eleje egy szörnyű félreértésen alapul: azt feltételezi, hogy az „add fel a levelet” iskolai példa egyben az algoritmus hiteles definíciója, és tételesen (és jó bő lére eresztve) „bebizonyítja”, hogy ez matematikailag miért nem, és miért így nem, és egyáltalán.
A levélfeladás egy példa, és nem egy algoritmus. Olyan mint egy algoritmus, olyan szempontból hogy a feladatok részfeladatokra (elemi műveletekre) való bontását mutatja be, ami az algoritmusoknak – legalábbis a számítástechnikában – alapvető jellemzője. Szerintem nem érdemes ezzel „vitatkozni”, hiszen logikus, hogy az ismertetést inkább „pongyola” példával kezdjük, mint mondjuk a faktoriális kiszámításának algoritmusával (pláne, ha figyelembe vesszük a negatív és tört számok faktoriálisának kiszámítását ugye :-)). Egyszerűen odaírnám, hogy „ez csak egy példa, nem igazi algoritmus; az igazi algoritmusra példa: xxxx”.
A szöveg nem fölösleges, de nem a cikk elejére való, és túl hosszú, szerintem. A végén megférne. --grin ✎ 2004. december 15., 13:32 (CET)
Pontosan, hiszen a következő száz oldalon épp ezt fejtegetem. Nyugodtan változtass bármit, nem ordibálni akarok ellene, csak azt megvilágítani, hogy mik voltak a személyes céljaim az ilyen (nem feltétlenül lexikonszerű, de sajnos szükséges rossz) szövegek írásával. Gubb 2004. december 15., 13:58 (CET)
Nem tudom, ez mire akar célozni, de változtass nyugodtan. Valójában az algoritmust tényleg kétféle precíz értelemben használjuk matematikai-precíz elméleti informatikai (ide tartoznak nemcsak am etamatikai algoritmusok, hanem a számítógépes programok is!!!) és matematikai-gyakorlati informatikai értelemben (egy probléma megoldásának algoritmusa folyamatábra alakban: köze van a dologhoz, bár nem algoritmus, nevezhető annak), ezen kívül van egy fuzzy algoritmusfogalom a köznapokban is, aminek igazából nincs sok köze az algoritmus fogalmához (valójában úgy keletkezett, hogy a matematikusok megpróbálták a "hülyéknek is" elmagyarázni, mit értenek algoritmuson, és az effajta, egyébként teljesen rendben lévő magyarázatok természetéből adódóan teljesen pontatlanul magyaráztak. A matematikán és informatikán kívül valójában nem is igen használjuk ezt a szót). Itt tehát nem arról van szó, hogy egy hétköznapi fogalmat túlpreciziziziálunk, hanem hogy egy formális fogalmat, elnevezést némileg jogtalanul használunk akkor is, amikor nem kellene.
Az egyetlen általam ismert forrásféleség, ahol az algoritmus fogalmát nem-matematikai értelemben használják, a számítástechnikai tankönyvek ebből a szempontból teljesen idiotisztikus bevezető fejezetei. Ezt valaki egyszer kitalálta, hogy így kell elmondani, azóta minden i.d.i.ó.t.a. így írja a saját tankönyveit. ha ez nem történt volna meg, akkor semmi vagy majdnem semmi szükség sem lenne a "problémák ezzel a fogalommal I.-IV." c. hosszas és nehézkes filozófiai eszmefuttatásra. Pedig csak annyi kellene, hogy az efféle könyvekben rögtön az első bekezdést : "Példa algoritmusra: a levél postán való feladása" kihúzni, kidobni, és átírni így : "Miben különbözik az algoritmus fogalma a számítástechnikában/matematikában a recept fogalmától?". Mindössze ennyi változtatás kellene ahhoz (és a többi effajta szellemben való megírása), hogy az egész könyv papírkosárba való elmeturmix helyett olyan művé váljon, ami a léynegről szól, és azt jól mondja el.
Az MI-részek és a filozófiai megalapozás valóban egyszerűsítésre, átfogalmazásra szorulnak, azonkívül a cikk nagy hiányossága a progmatos és a kiszámíthatóságelméleti vonatkozások (valódi program példák és absztrakt gépek, nyelvtanok stb. némi vázolása) elhanyagoltsága - erre nem volt már időm. A cikk még nincs kész közel se, de azért annál, ami eredetileg volt, mielőtt nekikezdtem, szerintem jobb egy kicsit. Gubb 2004. december 15., 11:43 (CET)
Lehet, sőt ildomos az MI-s részekből egy 5-10 soros összefoglalót írni, azt meghagyni a cikkben, a többit pedig áttenni egy másik cikkbe. De hogy ennek mi legyen a címe, arról fogalmam sincs. "Problémamegoldási paradigmák a modern mesterségesintelligencia-kutatás keretei között?" valami ilyesmi kellene, csak olyan, ami egy szóból áll. Gubb
Egyszóval jelenleg előkészületben van a cikk, tessék csak dolgozni rajta! Gubb 2004. december 15., 12:03 (CET)
Törölni
szerkesztésElkezdtem belejavítgatni a cikkbe, de aztán rájöttem, hogy nincs értelme. Itt valaki a saját algoritmusokról kialakított elméletét írta le.
- A cikket kibővítettem a német cikk nagy részének lefordításával. Szalakóta vita 2008. december 31., 21:10 (CET)
Már bocsánat, de az még mindig jobb, mintha olyan hülyeségeket írt volna be, hogy egy pék kenyérsütésének terve "algoritmus". Pontosan ez ellen a hülyeség ellen próbáltam fentebb harcolni, úgy látszik, sikertelenül. ♥♥♥ Gubb the Skaarj Slayer ✍ 2010. július 8., 14:24 (CEST)
- Hadd védjem az általam fordított részt!
- Algoritmuson vagy inkább eljáráson olyan módszert, utasítás(sorozato)t, részletes útmutatást, receptet értünk, amely valamely felmerült probléma megoldására alkalmas.
- Tehát, a probléma: kenyeret kell sütni. A megoldást véges sok lépésben elérjük. Tehát igenis ez egy algoritmus. Szalakóta vita 2010. július 8., 15:04 (CEST)
- Szerintem ne védd, a definíció ugyanis hiányos, egy informális és ezért pontatlan algoritmusfogalom. Néhány link, ahol szakszerűbb definíciót lehet találni: [1], [2]. Az algoritmus lényege - szerintem - egyáltalán nem a véges sok számú lépés, hanem a lehetséges műveletek, vagyis automataelméleti nyelven az „állapotábécé” előre definiáltsága és végessége. Különben egyszerűen semmi értelme nem lenne a fogalomnak. Ugyan miért nem jó szerinted a kenyérsütés tervének a következő "algoritmus": 1. süsd meg a kenyeret; 2. vége? a te fogalmad szerint ez is egy algoritmus kellene, hogy legyen, hiszen a megoldást véges sok lépésben elértük. ♥♥♥ Gubb the Skaarj Slayer ✍ 2010. július 8., 15:14 (CEST)
Igazad van, csináld meg úgy, ahogy gondolod! Szalakóta vita 2010. július 8., 18:20 (CEST)
- Nincs időm egyelőre, több másik témán is dolgoznom kell. Egyébként azt vártam, hogy belekötsz a példámba azon az alapon, hogy "részletes"-nek kell lennie (pedig erre is tudnék mit mondani), de azt hiszem, te nem vagy az a vitatkozni szerető típus :-). ♥♥♥ Gubb the Skaarj Slayer ✍ 2010. július 8., 18:43 (CEST)
- Egyébként lehet egy kenyérsütés terve is algoritmus, csak előre le kell írni az utasításhalmazt, amiből a pék választhat utasításokat (mondjuk, dagasztás, lapátolás, a tál tartalmának elkeverése adott mennyiségű élesztővel stb.). De ha levegőben lóg, hogy mi megengedett és mi nem, akkor tulajdonképp bármilyen véges utasítássorozat elfogadható kenyérsütési algoritmusként, az is, hogy menjen és kérje meg a nagymamáját a sütésre. ♥♥♥ Gubb the Skaarj Slayer ✍ 2010. július 8., 18:49 (CEST)