Diskussion:Algorithmus/Archiv
Sprachlich um
Müsste es nicht heissen "Ein Algorithmus ist eine wohldefinierte endliche Methode oder Prozedur, um ein Problem zu lösen."
Markus: Ich finde das sprachlich ungeschickt. Das "um" stört mich. Besser wäre: "Ein Algorithmus ist eine wohldefinierte endliche Methode oder Prozedur zur Lösung eines Problems."
Markus: Habe dies in den Text integriert --66.171.5.203 17:38, 28. Feb 2004 (CET)
Ich hätte noch ein "Definition" - und zwar stört mich die Bezugnahme auf Programmiersparachen im Allgemeinen durch die beiden Begriffe "Methoden" bzw. "Prozeduren". Ein Algorithmus hat aber an sich gar nichts mit einer Programmiersprache zu tun. Ein Kochrezept z.B. ist auch ein Algorithmus; hat aber sicher nichts mit einer Programmiersprache zu tun. Natürlich wird ein Algorithmus häufig in einer solchen Beschrieben. Also hier die von mir in meinen Lehrveranstalltungen verwendete "Definition": "Ein Algorithmus ist ein endliches schrittweises Verfahren zur Ermittlung gesuchter aus gegebenen Größen, in dem jeder Schritt aus einer Anzahl eindeutig ausführbarer Operationen und einer Angabe über den nächsten Schritt besteht."
vollständig zu überarbeiten
Ich tendiere dazu, diesen Artikel vollständig zu überarbeiten (und von der jetzigen Version nicht viel übrig zulassen) und zwar aus folgenden Gründen:
- Es gibt insgesamt 4 Beschreibungen/Definitionen eines Algorithmus (Einleitung, Algorithmus, Grundprinzip, Definition)
- Schlechte Gliederung
- Teilweise (nach meinem Verständnis von Algo.) Falschaussagen (schon in der Definition) wie " Der Ablauf des Verfahrens ist zu jedem Zeitpunkt eindeutig definiert" (Gegenbsp. nicht-deterministischer Algorithmus) oder " Das Verfahren muss in endlich vielen Schritten zum Ende gelangen." (Gegenbsp. nicht terminierender Algorithmus) - sollte ich da falsch liegen, ist der von mir angelegte Artikel Determinismus (Algorithmus) auch falsch.
- Da muss ich dir leider wiedersprechen. Verfahren die nicht abbrechen sind _keine_ Algorithmen. So könnte man z.B. ein Betriebssystem als einen riesen grossen Algorithmus bezeichnen - ist es aber nicht. Ein Algorithmus _muss_ enden!
- Unvollständig
- ...
Mein Vorschlag der Gliederung:
- Einleitung (ohne Überschrift)
- Definition
- Eigenschaften (Finitheit, Komplexität, Terminierung, Determiniertheit, Determinismus, Effizienz, ...?)
- Implementierung - da können dann Sätze wie "Algorithmen werden meistens als Computerprogramm implementiert." rein
- Beispiele
- Geschichte
Ich finden den Artikel ziemlich wichtig, weil Algorithmus ein Basisthema für die Informatik ist (somit auch für Wikipedia:WikiProjekt Wirtschaftsinformatik). Sollte es kein Feedback geben, lass ichs, weil alleine ist mir das Thema zu umfangreich/komplex (alleine zur Definition hab ich im Internet schon umfangreichste Diskussionen gefunden - Bsp. google-groups) --brunft 16:02, 13. Mär 2004 (CET)
- Ich stimme dir voll und ganz zu. Die jetzige Form des Artikels ist ziemlich unübersichtlich. Ich hab mir deshalb erlaubt den Artikel neu zu gliedern. Dabei habe ich einiges ergänzt. Das Problem mit den Definitionen besteht glaube ich immer noch, allerdings abgeschwächt: Im ersten Satz sollte eine einfache Definition vorkommen. Der Geschichtsteil beinhaltet auch eine Definition, jedoch im historischen Kontext ;). Unter dem Gliederungspunkt Definition findet sich eine sehr knappe Definition(wie sie beispielsweise im Informatikschulunterricht gegegeben wird). Unter Implementierung könnten vielleicht noch Beispielimplementationen des Beipiels: In einer Programmiersprache, als schriftliche Rechnung etc. Aber ich wollte erstmal abwarten ob eine Neustrukturierung überhaupt erwünscht ist.-- Ich hab hunga 18:36, 3. Mai 2004 (CEST)
- Ich hab die Definition, die sich ja selbst nicht einig ist, und den formaleren Kram weiter nach hinten verschoben, Doppeltes etwas gekürzt. Beispiel eukl. Alg. ganz nach vorne, damit man versteht, wovon überhaupt die Rede ist. Auch Umsetzung in eine Programmiersprache finde ich wichtig, also nach vorne und um Beispiele ergänzt. Die Geschichte anschliessend, da enzyklopädisch wohl interessanter und eindeutiger als die "Definition" --Hubi 12:06, 13. Mai 2004 (CEST)
- Hm, sehe das etwas anders: diese lange Beschreibung des Euklidischen Algorithmus lenkt mehr ab, als das sie hilft -- ein kleines Beispiel wäre nett, ok, aber so fand ich's zu lang -- und hab ihn deshalb ausgelagert in seinen eigentlichen Artikel. Hatte Deine Nachricht hier allerdings nicht zuvor gelesen, hat sich wohl überschnitten. Meinst Du nicht, dass das Beispiel so zu lang wäre? Wenn jemand ein kleineres zur Hand hat, fände ich das jedenfalls gut... habe alternativ die Sektion "Beispiele" aufgemacht, wer sich einen konkreten Fall anschauen will, wird da sicher fündig. --Pinguin.tk 12:27, 13. Mai 2004 (CEST)
- Ja ok, aber ein klitzekleines Beispiel am Anfang muss schon sein. Der Eukl. Algorithmus eignet sich dazu hervorragend. --Hubi 12:46, 13. Mai 2004 (CEST)
- Okay, aber nicht in epischer Breite und mit Implementierung (die beim Stichwort "Algorithmus" ohnehin nicht viel zu suchen hat), sondern eine Kurzfassung -- für Details dann einfach auf Euklidischer Algorithmus verweisen. --Pinguin.tk 13:41, 13. Mai 2004 (CEST)
- Doch genau das ist was die Leser eigentlich interessiert. In Euklidischer Algorithmus hat es noch weniger verloren, da werd ich's bei Gelegenheit (aber nicht heute) wieder rausschmeissen. Der Unterschied zw. Algorithmus und Programm sollte schon im Artikel Algorithmus behandelt werden. Und die Geschichte ist jetzt ziemlich verkorkst, da sie mit dem Begriff beginnt, Algorithmen aber schon älter sind. Das hat die frühe Erwähnung des Eukl. Algorithmus in der vorherigen Version besser hingekriegt. So ist die Entwicklungsrichtung eigentlich etwas kontraproduktiv. --Hubi 14:09, 13. Mai 2004 (CEST)
- Ich seh grad, dass Computerprogramm eigentlich nur eine lasche Definition ist, da gehören die rausgeschmissenen Teile eigentlich viel besser rein. Bei Algrithmus sollte man dann doch wieder ggt als Beispiel rein (bis zu Ausführung von Hand), der Rest dann in Computerprogramm. --Hubi 14:19, 13. Mai 2004 (CEST)
- Hm, ich sehe ein, dass die Implementierung beim EA nicht so richtig viel zu suchen hat, das war etwas voreilig. Hier im Artikel würd ich halt gern die Unterschiede Algorithmus -> Implementierung -> Computerprogramm darstellen, aber nicht unbedingt eine Implementierung reinschreiben. Ob die in Computerprogramm oder in Implementierung besser aufgehoben ist, weiß ich noch nicht... --Pinguin.tk 15:17, 13. Mai 2004 (CEST)
- Ich werd in nächster Zeit mal den Artikel Algorithmus in Ruhe lassen. Evtl. Anmerkungen von mir dann hier. Computerprogramm muss aber definitiv etwas ergänzt werden. Mal überlegen. --Hubi 16:52, 13. Mai 2004 (CEST)
Endlichkeit aus dem Artikel rausgenommen
Habe die Endlichkeit aus dem Artikel rausgenommen und auf das Halteproblem verwiesen. Der Artikel hat sich bislang selbst widersprochen: Erst heißt es, Algos seien endlich, dann am Ende heißt es, ob sie terminieren, lernt man in der Berechenbarkeitstheorie. Naja.
--Thorwald C. Franke 03:00, 9. Apr 2004 (CEST)
- Also ich glaube, daß Du das verschlimmbessert hast: Algorithmen sind immer endlich. Berechenbarkeitstheorie sagt aus, ob es einen Algorithmus gibt (der endlich ist), der das gegebene Problem loest.
- Sprich: der Satz, "ob sie terminieren" ist falsch. Ein Algorithmus der nie terminiert ist halt kein Algorithmus. --DaTroll 11:51, 9. Apr 2004 (CEST)
- Hm, das ist zunächst eine definitorische Frage.
- Diese löst man am besten, indem man in Fachliteratur nachschlägt.
- Schüler-Duden Informatik:
- Hier sind Algorithmen auch nciht endlich. Turingmaschinen werden als
- eine Realisierung angesehen. Also auch nicht-endliche.
- Zitat: "Für die Praxis sind meist nur solche Algorithmen von Bedeutung,
- die für jede Eingabe nach endlich vielen Schritten ein Resultat liefern
- und anhalten."
- Goldschlager/Lister, "Informatik" (ein Klassiker):
- S. 25: Prozesse/Algorithmen können unendlich sein (z.B. Alarmanlagen steuern),
- S. 79: Kapitelüberschrift: "Theorie der Algorithmen",
- darunter dann Berechenbarkeitstheorie etc. => Algos können auch nciht-endlich sein.
- Lexikon der Informatik und Datenverarbeitung:
- Auch hier gibt es die Möglichkeit, dass die Berechnung nciht abbricht.
- Fazit:
- Algorithmen sind auch nciht-endlich.
- --Thorwald C. Franke 20:05, 9. Apr 2004 (CEST)
- Könnte es sein, daß da gerade zwei Sachen durcheinander gehen?
- Sind Algorithmen endliche Beschreibungen? (Ja)
- Ist die Ausführung eines Algorithmus ein endlicher Prozeß? (Nein, Beispiel: Der Algorithmus, mit dem man alle natürlichen Zahlen erzeugen kann.)
- Da muss ich dir leider wiedersprechen. Eine Funktion/Methode/Programm, dass alle natürlichen Zahlen erzeugt ist _kein_ Algorithmus. Es ist halt mal so, dass man Funktionen/Methoden/Programme entwickeln kann die keine Algorithmen sind. Bei einem Algorithmus gibt es zwei "Endlichkeiten". 1. die statische Endlichkeit, d.h. mit endliche vielen Zeichen niederschreibbar und 2. die dynamische Endlichkeit, das Verfahren _muss_ abbrechen.
- --Skriptor 20:32, 9. Apr 2004 (CEST)
- Könnte es sein, daß da gerade zwei Sachen durcheinander gehen?
- Nein, ich glaube nicht, dass ich DaTroll falsch interpretiert habe. Das Wort "terminieren" macht deutlich, worum es ihm geht. Er meint, dass z.B. eine Endlosschleife kein Algorithmus mehr wäre. Ist es aber doch. Endlosschleifen werden sogar praktisch eingesetzt.
- Hier geht es bei Endlichkeit klar um das Halteproblem.
- --Thorwald C. Franke 00:50, 10. Apr 2004 (CEST)
- Thorwald hat mich schon richtig verstanden. Und ich glaube dann einfach mal, dass er Recht hat. Viele Gruesse, DaTroll 15:35, 13. Apr 2004 (CEST)
Computer ist ein Werkzeug
- Ein Computer ist ein Werkzeug, welches bei der Lösung bestimmter Probleme hilft.
Was soll der Leser aus diesem Satz lernen? Insbesondere, wenn er sich folgenden Sachverhalt vor Augen führt:
- Ein Hammer ist ein Werkzeug, welches bei der Lösung bestimmter Probleme hilft.
Entfernung Grundprinzip eines Algorithmus
Ich habe folgenden Abschnitt rausgeschmissen:
- Grundprinzip eines Algorithmus
- Ein Algorithmus basiert auf zwei Grundelementen, der (Rechen-)Anweisung und dem bedingten Sprung. Ein bedingter Sprung zeigt an, an welcher Stelle im Algorithmus fortgefahren werden soll, wenn eine bestimmte Bedingung erfüllt ist (z.B. die, dass zwei Werte gleich sein müssen), und an welcher fortgefahren werden soll, wenn diese Bedingung nicht erfüllt ist (wenn im Beispiel also die Werte nicht gleich sind).
Das stimmt so einfach nicht; es gibt ganz verschiedene Methoden, einen Algorithmus zu formulieren, und das Verfahren mit bedingten Sprunganweisungen ist nur eine davon. Eine andere Möglichkeit sind Wenn-Dann-Abfragen in Verbindung mit Schleifen oder Markov-Algorithmen, die auf reinen Zeichenersetzungsregeln beruhen, oder µ-rekursive Funktionen. All diese Verfahren sind äquivalent im Sinne der rechnerischen Mächtigkeit. --Mussklprozz 15:30, 25. Apr 2004 (CEST)
Endlichkeit
"Typischerweise wird ein Algorithmus durch eine endliche Folge von Anweisungen beschrieben, die nacheinander ausgeführt und oft in festgelegter Weise wiederholt werden."
Die Endlichkeit hat nichts mit dem Begriff des Algorithmus zu tun.
Der Beweis, daß die rationalen Zahlen zwar unendlich sind, aber nicht dicht (im Gegensatz zu den reellen Zahlen) liegen, wird zum Bsp. über die Abzählbarkeit geführt. (Siehe auch Eulers Beweis, der Transzendenz von PI.). Das Abzählen sehe ich als einen nicht endlichen Algorithmus an. Man belehre mich eines Besseren.
In dem Satz "Die Theoretische Informatik beschäftigt sich u.a. mit der Frage, welche Problemstellungen algorithmisch, d.h. mittels genau definierter Handlungsanweisungen, gelöst werden können und wie rechenaufwendig Lösungen gegebener Probleme mindestens sein müssen." liegt dann auch schon der Hund begraben. Basis der Analyse zu diesem Begriff muß natürlichen die Algorithmentheorie sein. Die Formulierung ist nicht nur inhaltlich, sondern auch sprachlich ("Lösungen gegebener Probleme") sehr fragwürdig.
Wer kam eigentlich auf die merkwürdige Idee der "Verballhornung" im Bereich Geschichte? Scheinbar haben diese Bemerkung schon Einige Internetseiten aus wikipedia übernommen...
Wie gesagt, ich lass mich gern überzeugen. --Ping 16:16, 25. Apr 2004 (CEST)
- Vielleicht hilft die Umstellung, das Problem deutlicher werden zu lassen, dass hier teils redundante,aber teils auch nicht redundante Erklärungen des Begriffs vorhanden sind. Es wäre wohl gut, alles unter einen Hut zu bringen. -Hati 16:32, 25. Apr 2004 (CEST)
- Ich hab versucht, umzustellen, die Definitionen (allgemeine Definition, mathematische Definition) zu ordnen, und auch das Endlichkeitsproblem klar heraus zu stellen. Was meint Ihr? --Mussklprozz 16:39, 25. Apr 2004 (CEST)
Einleitungssatz
- Vielleicht habe ich jetzt zu schnell gelesen aber das "Ein Algorithmus ist eine eindeutige Beschreibung eines Verfahrens zur Lösung einer bestimmten Klasse von Problemen." Hat mir eigentlich ganz gut gefallen, vor allem weil es wie im aller ersten Erklärungssatz ohne Prozedur auskommt, die ja im strengen Sinne auch nur ein Algorithmus ist. Vielleicht wird die Materie noch fassbarer, wenn man sie gegen Heuristik abgrenzt? ansonsten: der Fortschritt ist nicht aufzuhalten :-> -Hati 16:51, 25. Apr 2004 (CEST)
- Warum Deine Version von 16:25, 25. Apr 2004 von Musklprozz so schnell gelöscht wurde, verstehe ich auch nicht. Die Formulierung "Ein Algorithmus ist eine eindeutige Beschreibung eines Verfahrens zur Lösung einer bestimmten Klasse von Problemen." als Einleitung kann man durchaus stehen lassen. Wenn man auf die Endlichkeit so einen Wert legt, ließe sich das meiner Meinung nach auch durch das Wort "Abbruchbedingung" klar stellen. --Ping 17:32, 25. Apr 2004 (CEST)
- Danke für Eure Stellungnahme.
- Ich war gleichzeitig mit Hati am Arbeiten; beim Speichern gab es einen Bearbeitungskonflikt. Darauf hin habe ich vor dem Speichern Hatis Version gegen die Vorversion geprüft und gesehen, dass er eine Umstellung im Sinn hatte. Genau das hatte ich unter anderem ja auch vor. Na ja, und als ich das gesehen hatte, habe ich meine bereits fertig vorbereitete neue Version eingesetzt.
- Hatis Einleitungssatz habe ich jetzt in die Definition übernommen; ich finde ihn auch besser, weil weniger technisch und somit einladender als die Version mit den Eingabe- und Ausgabegrößen. Vorher war er meinem Aufräumen unter den Definitionen zum Opfer gefallen, wo sich meines Er8ens doch einiges im Kreis herum gedreht und wiederholt hat, siehe die Diskussion weiter oben.
- Dass das mit der Endlichkeit ein Problem darstellt, geht aus der Diskussion oben hervor. Daher habe ich versucht, klar abzugrenzen, in welcher Hinsicht ein Algorithmus endlich ist und in welcher Hinsicht nicht.
- --Mussklprozz 19:31, 25. Apr 2004 (CEST)
Der Beitrag Leda verweist auf Algoritmus, fehlt hier -- Robodoc 23:56, 10. Jun 2004 (CEST)
Alltagsbeispiele
Die neuen Besipiele in der Tabelle am Schluss bereiten mir Magenschmerzen. Partiturlesen als Algorithmus? Dann ist jedes Buch, jeder Roman, jedes Gedicht, jeder Comic ein Algorithmus. Im Definitionssatz steht ein deutlicher Bezug zu einem Problem. Oder muss der da raus? Ein Algorithmus zum Spielen eines Instruments dürfte wesentlich komplexer sein als eine Partitur. -Hati 16:16, 4. Jul 2004 (CEST)
- finde ich auch nicht gut, ist teilweise auch einfach falsch: die meisten Rezepte z.B. sind keine Algorithmen, denn "eine Prise Salz" ist keineswegs wohldefiniert, und auch bei 1 TL Backpulver wird's schwierig... Bei uns in der Informatikvorlesung fiel sowas unter was ist kein Algorithmus ;-) --Pinguin.tk 18:27, 4. Jul 2004 (CEST)
- Obwohl ich die Beispiele auch nicht so gut finde, glaube ich nicht, dass man sie so einfach formal wegdiskutieren kann: im Artikel werden als "formale Definition" die Eigenschaften Determinismus, Determiniertheit, Finitheit, Ausführbarkeit und Terminierung angeführt. Wohldefiniertheit finde ich da nicht, daher kann ich nicht finden, dass "eine Prise Salz" oder "1 TL Backpulver" genügen, um das Prädikat "Algorithmus" für Rezepte zu widerlegen. Stattdessen genügt man nehme eine Prise Salz allen Kriterien, es ist determiniert (ich habe danach eine Prise Salz, nichts anderes), die Beschreibung ist endlich gross (Finitheit), die Aktion ist ausführbar in endlicher Zeit (Ausführbarkeit, Terminiertheit). Trotzdem finde ich die Gleichsetzung von Handlungsanweisung etc. mit Algorithus nicht korrekt. Der Artikel hat daher möglicherweise Schwächen in der Abgrenzung/Definition. --Hubi 10:55, 5. Jul 2004 (CEST)
- gehört zur Definition von Algorithmus nicht auch Definitheit? Ist das nicht in etwa Wohldefiniertheit? Muss mal nachlesen... --Pinguin.tk 18:14, 5. Jul 2004 (CEST)
- Kann schon sein, aber verschiedene Quellen widersprechen sich hier, was die Definition des Wortes angeht. Auch im Artikel wird ja erst definiert, aber dann gibt's da noch die stochastischen/probalisierten/randomisierten und ähnliche Nicht-in-die-Definition-passen-wollende Algorithmen. Aber egal, man nehme eine Prise Salz ist meiner bescheidenen Meinung nach auch (genügend) wohldefiniert, ich nehme also eine wohldefinierte Prise Salz und folge meinem Rezeptalgorithmus weiter :-) --Hubi 18:41, 5. Jul 2004 (CEST)
Eigentlich dürfte ja bei einer "guten" Definition, ein Algorithnmus, der nicht in die Definition passt, nicht als Algorithmus bezeichnet werden. Oder die Definition passt noch immer nicht. Beides scheint hier der Fall zu sein. Siehe dazu die Abgrenzung zu Prozedur bzw. den dortigen doch recht einfachen Artikel. -Hati 15:06, 9. Okt 2004 (CEST)
- Es ist auch richtig, dass nicht jeder Programmschnipsel oder jedes Kochrezept gleichzeitig ein Algorithmus ist. Ein Algorithmus ist nach der strengen Definition nur ein Handlungsablauf der nach endlichen vielen Schritten zum Ende gelangt. Also terminiert. Sonst ist es streng genommen kein Algorithmus. Also ist ein Programmcode der bspw. eine Dauerschleife beinhaltet (also eine Schleife die nicht abbricht) kein Algorithmus (der endet dann nämlich nicht). Oder ein Betriebssystem als Ganzes ist streng genommen auch kein A. da der auch nicht terminiert. Soll er ja nicht, wenn Windows terminiert ist das nicht so erfreulich für uns (Bluescreen). Aber zum Thema terminieren hab ich hier am Ende der Seite was unter der entsprechenden Überschrift geschrieben. --Korpsvart 12:37, 9. Apr 2005 (CEST)
Church-Turing These
- Aus diesem Grunde ist heutzutage die Church-Turing-These: "Jeder Algorithmus kann durch eine Turingmaschine ausgeführt werden" allgemein akzeptiert. Als formales Kriterium für einen Algorithmus zieht man die Implementierbarkeit in einem beliebigen zu einer Turing-Maschine äquivalenten Formalismus heran, insbesondere die Implementierbarkeit in einer Programmiersprache.
Mit dieser Aussage wäre ich sehr vorsichtig, weil das was wirklich zu Turing-Maschinen äquivalent ist, sind Maschinenprogramme. Ein Algorithmus ist aber abstrakter. Es gilt in etwa folgende Hierarchie:
- Problemlösung in Umgangssprache
- Algorithmus
- Maschinenprogramm
Ich befürchte, dass man in einem Algorithmus zu leicht auch Anweisungen formulieren kann, die nicht berechenbar sind.
--Marc van Woerkom 09:14, 6. Okt 2004 (CEST)
Ich denke schon, dass die Churchsche These zurecht allgemein akzeptiert ist. Soweit ich weiss ist das so:
- Es gibt keinen (bekannten) Formalismus, der eine Problemlösung exakt und eindeutig beschreibt, der nicht durch eine Turingmaschine ausgeführt werden könnte.
- Ausführbarkeit durch die Turingmaschine impliziert nicht unbedingt, dass die Turingmaschine auch anhält, das Ergebnis also Berechenbar ist. Zu jedem terminierten Algorithmus gibt es aber ein Turingprogramm das anhält. Manchmal wird auch der Begriff Algorithmus so definiert, dass die terminiertheit als Eigenschaft vorausgesetzt wird - dann entfällt das Problem ganz.
- Das einzige, was den aktuellen Berechenbarkeitsbegriff nach Church/Turing evtl. durchbrechen/erweitern könnte, sind Quantencomputer: sie beiten evtl. die möglichkeit, (abzählbar) unendlich viele Möglichkeiten "gleichzeitig" zu testen und würden so auch alle bisher nur semi-berechenbare Probleme berechenbar machen - das schlisst übrigens das Halteproblem mit ein.
-- D. Düsentrieb ⇌ 13:01, 6. Okt 2004 (CEST)
- Du verstehst meinen Einwand nicht. Ich behaupte dass der Algorithmusbegriff im jetzigen Artikel nicht streng genug ist.
- Eine Registermaschine oder Turingmaschine ist mathematisch präzise definierbar. Insbesonders sind die elementaren Operationen präzise definiert.
- Registermaschine: Inkrement, Dekrement, Test auf Null
- Turingmaschine: Kopf links, Kopf rechts, Schreiben von Symbol, Test auf Smybol unter Lesekopf
- Aber was ist die präzise Definition von Algorithmus? Im Artikel steht:
- Ein Algorithmus ist eine genau definierte Verarbeitungsvorschrift zur Lösung eines Problems oder einer bestimmten Art von Problemen.
- Es wird aber offengelassen, welche Verarbeitungsvorschriften zugelassen sind, bzw. was genau definiert hier heissen soll.
- Damit könnten auch Verarbeitungsvorschriften, bzw. elementare Operationen vorkommen, die nicht berechenbar sind. Ein Beispiel:
- Algorithmus Halteproblem
- 1. Lade Flussdiagramm der Turingmaschine
- 2. Lade Eingabewerte
- 3: Verfolge im Graphen, ob Maschine hält
- 4: Falls ja: gib Maschine terminiert aus
- 5: Falls nein: gib Maschine terminiert nicht aus
- 6: Halt
- Der Knackpunkt ist natürlich Schritt 3, das geht halt nicht immer.
- Nach der Definition im Artikel ist das ein Algorithmus. Er ist aber offensichtlich nicht berechenbar. Also bitte eine präzisere Definition von Algorithmus hier.
- --Marc van Woerkom 20:21, 6. Okt 2004 (CEST)
- Der Punkt ist: es herrscht unklarheit darüber, ob Terminiertheit eine notwenige Eigenschaft jedes Algoritmus ist, oder ledigleich eine häufige Anforderung. Das Taschenbuch der Informatik (3. Auflage, Fachbuchverlag Leipzig) sagt dazu auf Seite 273: Der Begriff Algorithmus (algorithm) bezeichnet eibe Vorschrift zur Lösung eines Problems, die für die Realisierung in Form eines Programmes auf einem Computer geeignet ist. und Später dann: An Algorithmen stellt man bestimmte Anforderungen, z.B. die Bedingung, dass sie Korrekt sind, dass sie terminieren und dass sie [...] ein vorgegebenes Problem lösen. Der Schülerduden Informatik impliziert allerdings in einem Nebensatz, dass es nur für berechenbare Probleme Algorithmen gibt. IMHO muss ein Algorithmus nicht terminiert sein - d.h. es gibt auch Algorithmen für Probleme, die nur semi-berechenbar sind - solche Algorithem terminieren jedoch nicht (sonst wäre das Problem ja berechenbar).
- Also, was nun? Ich werde mal versuchen, diese beiden Ansichten in den Artikel einzubauen und das ganze etwas strenger zu gestalten. Gruss -- D. Düsentrieb ⇌ 21:05, 6. Okt 2004 (CEST)
So. Besser jetzt? -- D. Düsentrieb ⇌ 21:50, 6. Okt 2004 (CEST)
Nicht "lässt sich durch eine endliche", sondern wird durch eine ... definiert. Ein Algorithmus ist eine endliche Menge von Regeln, die unmissverstaendlich festlegt, wann welche Regel anzuwenden ist. Die Regeln sind rein mechanisch (d.h. ohne "Intelligenz" oder Kontextwissen) anwendbar. Ein Algorithmus muss terminieren, und zwar auf allen Eingaben. Geprueft anhand zweier Lehrbuecher der theoretischen Informatik, Encarta, und Enzyclopaedia Britannica.
Habe Anweisung in Regel umbenannt, da es in anderen Formalismen nicht immer "Anweisungen" gibt. Habe in der Einleitung den Vergleich mit Programmen ins Spiel gebracht, um Verwechslungen mit Algorithmus vorzubeugen (denen ich selber auch schon unterlag). Falls es nicht gefaellt, einfach loeschen. Ist nur ein Vorschlag.
Zu Church-Turing-These: In der These geht es nicht darum zu zeigen, dass die Formalismen aequivalent sind, das war nur die Voraussetzung, die These formulieren zu koennen.
Da der Begriff der Berechenbarkeit heutzutage meist durch Turingmachinen oder aehnliches definiert wird, sagte der Satz weiter nichts, als dass berechenbare Probleme berechenbar sind,
was trivial ist. Ich habe deshalb intuitiv eingefuegt.
Wahrscheinlich sollte "durch Turingmaschine geloest"
durch "durch Algorithmus geloest" ersetzt werden.
(Kann nicht mal jemand den Originaltext ausmachen und genau uebersetzen?
In Hofstadters "Goedel Escher Bach" ist auch eine ausfuehrliche Diskussion darueber enthalten.)
Auch ist diese These alles andere als "allgemein anerkannt", lasst nur die Leute aus der Kuenstlichen Intelligenz oder Philosophie hier aufkreuzen.
(Habe Literatur Ottmann/Witmayer geloescht, weil zu speziell. Habe dafuer einen Klassiker hinzugefuegt.) --Dirk 14:57, 9. Okt 2004 (CEST)
- Es wäre interessant, den Algorithmus verschiedener einflussreicher Autoren mal genauer anzuschauen. Intuitiv verstehen wir wohl alle ein Kochrezept darunter. Was sagt z.B. Knuth dazu? Die Church Turing These hat eine interessante Richtung, wo behauptet wird, dass jegliche physikalische Rechenmaschine, die man bauen kann, letztlich immer nur berechenbare Funktionen berechnen kann. Aber wer weiss, vielleicht geht ja doch mehr aus der Physik rauszuholen.
- --Marc van Woerkom 20:03, 9. Okt 2004 (CEST)
- Aus Knuth, TAOCP 1: Besides merely being a finite set of rules that gives a sequence of operations for solving a specific type of problem, an algorithm has five important features:
- finiteness [...]
- definiteness [...]
- input [...]
- output [...]
- effectiveness [...]
- Aus Knuth, TAOCP 1: Besides merely being a finite set of rules that gives a sequence of operations for solving a specific type of problem, an algorithm has five important features:
- Also Terminierung. Aber Knuth ist halt doch irgendwo ein Praktiker, und ich meine gelernt zu haben, dass das mit der Terminierung Ansichtssache ist. Wenn ich was schriftliches dazu finde, schreib ich's hierher... --Pinguin.tk 16:08, 10. Okt 2004 (CEST)
Ich halte es nach wie vor für stritting, ob ein Algorithmus notwendigerweise terminieren muss. Die meisten definitionen, die ich finde, sagen nichts darüber. Einige verlangen die Terminiertheit, andere verlangen Determiniertheit (was IMHO definitiv falsch ist). Ich werde mich bei gelegenheit mal in der Uni-Bib schlau machen (Knuth wäre wohl ein guter Anfang...). -- D. Düsentrieb ⇌ 21:02, 9. Okt 2004 (CEST)
- Die Enzyklopaedie muss unbedingt kompatibel zu Lehrbuechern der theoretischen Informatik und den anderen Enzyklopaedien sein. Falls andere das mit der Terminierung nicht so ernst nehmen,
lasst uns Avantgarde sein! Vielleicht ist ein Abschnitt "Abgrenzung" gut, wo der Unterschied zu Computerprogramm oder Prozedur (die durchaus Endlosschleifen enthalten duerfen) explizit gezeigt wird. Habe neuen Abschnitt "formale Definition" eingefuegt. Bitte um Verbesserung. Bei inhaltlicher Aenderung bitte genaue Quellenangabe. --Dirk 11:33, 11. Okt 2004 (CEST)
- Das mit der Church-Turing-These gefaellt mir (noch) nicht. Da muesste wirklich sauber recherchiert werden, und am besten ein eigener Artikel angefangen werden. Hier reicht dann eigentlich ein Verweis auf diesen Artikel. --Dirk 11:57, 11. Okt 2004 (CEST)
- Einen Artikel zur Church-Turing-These gibt's doch schon -- vielleicht sollte man die Diskussion dort fortsetzen? Ich finde aber, dass ein reiner Verweis vom Artikel Algorithmus aus nicht ausreicht -- ein Überblick zum Zusammenhang zwischen dem formalen Algorithmenbegriff und der CTT sollte hier schon gegeben werden, schließlich soll nicht jeder die komplette theoretische Informatik verstehen müssen, nur um unseren Algorithmus-Artikel lesen zu können. Dies hier ist kein Fachbuch, sondern eine Enzyklopädie, die auch für Laien verständlich sein sollte. --Pinguin.tk 12:19, 11. Okt 2004 (CEST)
- Mir ist erst durch die Diskussion hier klar geworden, dass verschiedene Definitionen von Algorithmus im Umlauf sind. Wieder was gelernt. Wer mal in den Link zur Abstract State Maschine These schaut, kann diese Behauptung nachverfolgen, ist also nicht uns nur hier aufgefallen. Ärgerlich, dass mir das keiner in der Vorlesung gesagt hat. Wobei noch bemerkenswert ist, dass diese Forschung von Microsoft unterstützt wird. Die sponsern offensichtlich formale Methoden, um fehlerfreier Software hinzubekommen. Die ASM Methodik wird wohl im Umfeld von deren .NET Maschine benutzt. Letztens ist mir noch aufgefallen, dass die Treibern formal auf die Finger schauen Vortragsankündigung, ausserdem hatten sie Tony Hoare angeheuert. Auch eine Herausforderung für Open Source. Zum Artikel: ich würde gerne noch verschiedene (bekannte) Autoren und deren Definition auflisten. Dazu muss ich endlich mal meine Bücherkisten komplett ausgeräumt haben. --Marc van Woerkom 15:21, 9. Jan 2005 (CET)
Diskussion aus dem Review
Scheint mir schon ziemlich gut zu sein, hab' gerade noch ein bisschen nachgebessert (siehe auch Diskussion). War das nicht auch einer von den von der c't für gut befundenen? -- D. Düsentrieb ⇌ 22:04, 6. Okt 2004 (CEST)
- ja, Bewertung sehr gut (siehe auch Benutzer:Srbauer/c't). -- srb 23:17, 6. Okt 2004 (CEST)
- Nachtrag: es scheint Uneinigkeit darüber zu herrschen, ob Terminiertheit eine notwendige oder nur eine häufig gewünschte Eigenschaft eines Algorithmus ist (siehe Diskussion dort). Könnte da mal jemand aussagekräftige Fachliteratur zu Rate ziehen? Mir scheint die Definition je nach Kontext zu variieren... -- D. Düsentrieb ⇌ 00:52, 10. Okt 2004 (CEST)
Terminierung
Es ist übrigens im allgemeinen nicht möglich, für einen Algorithmus zu bestimmen, ob er terminiert oder nicht - siehe Halteproblem. Bei der Definition von Algorithmus wurde jedoch die Terminierung als Eigenschaft hinzugenommen. Mit anderen Worten: Wir wissen für die meisten Anleitungen nicht, ob es sich dabei um Algorithmen handelt. Ist das wirklich richtig so? -- Dishayloo [ +] 20:23, 17. Nov 2004 (CET)
- Ergänzung: Der englischsprachige Artikel setzt auch nicht unbedingt Terminiertheit voraus. -- Dishayloo [ +] 21:24, 17. Nov 2004 (CET)
- Wenn ich meine Umzugskisten schon alle ausgepackt hätte, würde ich folgendes machen: alle Bücher mal durchgucken, wo jemand schlaues den Begriff Algorithmus definiert hat, und, falls es da Unterschiede gibt, einfach jeweils einen Repräsentanten der verschiedenen Algorithmus Definitionen hier zitieren.
- Ansonsten:
- Ein Algorithmus ist auf einer höheren Abstraktionsebene angesiedelt, als ein maschinell ausführbares Programm (das meine ich mit Maschinenprogramm). Eigenschaften, wie Berechenbarkeit, kann ich nur für die Programme einiger idealer, mathematischer Maschinen (nämlich z.B. die von Registermaschinen oder Turingmaschinen) streng definieren. Damit ein Wert einer Registermaschine oder Turingmaschine berechenbar ist, muss diese in endlicher Zeit mit endlichen Resourcenverbrauch terminieren. Das Problem dem Artikel hier war (wenn ich mich recht erinnere), dass Algorithmus und berechenbare Programme etwas durcheinander geworfen werden.
- --Marc van Woerkom 21:43, 17. Nov 2004 (CET)
- Ich habe so eben mal zwei drei kurze Sätze bei der Definition zum Terminieren eingetragen. Es ist definitiv so, dass ein Algorithmus terminieren muss sonst ist es kein Algorithmus. Das mag für manche Leute irgendwie seltsam klingen, da man auch von einem Algorithmus redet wenn er nicht terminiert (Bspw. Dauerschleife oder Betriebssystem). Aber ganz streng genommen ist ein Betriebsystem kein Algorithmus da er nicht terminiert. Wenn Windows terminiert ärgern wir uns (Bluescreen). Solche Bsp. sind nicht der Beweis dafür, dass ein Algorithmus nicht terminieren muss sondern im Gegenteil sind Sonderfälle! Man muss hier klar unterscheiden. Ein Algorithmus muss also terminieren. Es ist eine Handlungsvorschrift die nach endlich vielen Schritten zum Ziel gelangen muss! Das kann man nicht einfach weg lassen. --Korpsvart 12:30, 9. Apr 2005 (CEST)
- Entschuldigung, mein Einwand bleibt aber bestehen: Da wir für die wenigsten Handlungsvorschriften beweisen können, dass sie bei jeder Eingabe terminieren (das ist die echte Ausnahme) gibt es zwangsläufig auch nur eine Handvoll Algorithmen. Explizit betrifft dies Algorithmen zur Berechnung primit-rekursiver Funktionen, für diese Klasse können wir immer einen terminierenden Algorithmus angeben. Aber sobald man einen My-Operator einsetzt (beispielsweise while-Schleife) wird der Beweis schwierig, dass das Programm bei jeder Eingabe anhält. Das sind also alles keine Algorithmen? Und der kritisierte Satz steht immer noch im Artikel, der müsste dann raus. Wenn die Definition eines Algorithmus enthält, dass er terminiert, dann terminiert zwangsläufig jeder Algorithmus. Wir müssen nur dann das Ding, das terminieren kann oder auch nicht, irgendwie anders nennen und einen Artikel dazu schreiben. -- Dishayloo [ +] 00:40, 10. Mai 2005 (CEST)
- Wir können für jeden bekannten Algorithmus beweisen, dass er terminiert. Wir können dies nur nicht durch eine berechenbare Funktion automatisch ausführen lassen. Zu Fuß und mit Gehirnschmalz gelingt es aber (bisher) immer.--Fingroth 14:09, 24. Mai 2005 (CEST)
- Wenn man die Terminierungseigenschaft hinzunimmt, kann man es natürlich beweisen, es ist dann per Definition so. Für eine Handlungsvorschrift können wir die Terminierung nicht immer beweisen (oder wiederlegen).
- Beispiel: In einer Schleife zählt man eine Zahl beginnend bei 4 immer weiter um 2 hoch hoch, so dass man die Folge der geraden Zahlen erhält. Nun prüfen wir für jede dieser Zahlen, ob wir sie aus der Summe zweier Primzahlen bilden können. Diese Prüfung terminiert, wenn wir es richtig anstellen, da wir nur die Primzahlen kleiner als die gegebene Zahl untersuchen müssen. Wir brechen die Schleife ab, sobald wir das erstemal keine entsprechenden zwei Primzahlen finden.
- Kannst Du mir sagen, ob diese Handlungsanweisung (auch wenn sie etwas unpräzise ist) terminiert? Wenn ja, dann hole Dir 1 Million Dollar ab, das Problem ist als die Goldbachsche Vermutung seit mehr als 200 Jahren ungelöst.
- Selbst wenn die Goldbachsche Vermutung bewiesen (oder wiederlegt) werden würde, so wurde mit dem Beweis des Gödelschen Unvollständigkeitssatzes gezeigt, dass es wahre Aussagen gibt, die nicht bewiesen werden können. Oder anders formuliert können wir weder die Aussage, noch ihre Negation beweisen oder wiederlegen. Bauen wir nun zwei Handlungsvorschriften, die eine Schleife konstruieren, deren Abbruchbedingung eine solche Aussage bei einer und deren Negation bei der anderen ist, dann wissen wir, dass eine davon terminiert und die andere nicht. Wir werden aber nie wissen, welche Vorschrift das eine und welche das andere tut. Da hilft auch noch so viel Hirnschmalz nicht weiter. -- Dishayloo [ +] 23:08, 24. Mai 2005 (CEST)
- Danke für das schöne Beispiel :) Du hast recht, es gibt also Handlungsvorschriften von denen wir (noch) nicht wissen ob sie terminieren, d.h. ob sie algorithmisch sind oder nicht. Bei der Argumentation mit dem Unvollständigkeitssatz bin ich nicht ganz sicher ob das so funktioniert. In deiner Argumentation sagst du ja selbst, dass es wahre Aussagen gibt, deren Wahrheit sich aber nicht beweisen lässt. Dass sich die Wahrheit nicht beweisen lässt, ist dem Algorithmus aber egal. Die Schleife mit der wahren, unbeweisbahren Aussage würde einfach beendet werden und der Algorithmus terminiert. Aussagen sind unabhängig von ihrer Beweisbarkeit immer wahr oder falsch, so dass bei zwei Schleifen mit negierten Abbruchbedingungen immer eine terminiert.
- Unabhängig davon gibt es bei modernen Rechenmodellen wie Petri-Netzen oder Abstract-State-Machines eigentlich nicht mehr die Forderung nach der Terminierung. Diese Forderung ist noch ein Überbleibsel aus der Zeit der Turing-Maschinen und berechenbaren Funktionen. Eine nichtterminierende Fahrstuhlsteuerung wird also auch als Algorithmus angesehen. Terminierung ist dann einfach nur noch eine Eigenschaft, die für einen Algorithmus gilt oder nicht.
link geloescht
Stellungnahme: Ich habe den Verweis auf die Genetischen Algorithmen geloescht, das bereits ein Verweis auf die Evolutionaeren Algorithmen besteht. --Floyd 19:45, 21. Apr 2005 (CEST)
Warum Algorithmus unter Praktische Informatik untergeordnet???
verschoben nach Kategorie Diskussion:Algorithmus. -- Dishayloo [ +] 19:14, 25. Jul 2005 (CEST)
Abgrenzung Regel und Algorithmus
Nachdem ich mir die Diskussion durchgelesen habe ist mir aufgefallen, das ein wesentlicher Aspekt nicht behandelt wurde: die Unterscheidung von offenen Prozessen (z.B. Regelungen) und abgeschlossenen Algorithmen. Ein Prozess erhält permanent Informationen von außen und verarbeitet sie. Zum Beispiel gibt jedes gute Computerprogramm bei Problemen eine Fehlermeldung aus und erwartet eine Antwort. Das bedeutet, der Algorithmus im Programm terminiert, dann werden die Ausgangsdaten verändert und anschließend ein neuer Algorithmus gestartet. Ein Computerprogramm ist also kein Algorithmus, sondern es benutzt Algorithmen, um Ergebnisse zu erzielen.
Ein Algorithmus beginnt mit einer feststehenden, endlichen Menge von Eingaben und terminiert irgendwann, sonst ist es kein Algorithmus, denn er hat das Problem nicht gelöst.
Eine Regelung terminiert nie, denn sie wartet auf Ereignisse von außen und reagiert darauf. --Bitfrass 23:19, 8. Okt 2005 (CEST)
Sieb des Eratosthenes
Ich halte folgenden Satz für falsch:
(sinnvolle Gegenbeispiele für die Forderung, dass immer terminiert werden muss, seien der Sieb des Eratosthenes, der fortgesetzt Primzahlen findet,
Das Sieb des Eratosthenes müsste doch eigentlich ein terminierender Algorithmus sein, oder?
- Nein, generell ist er das nicht. Er kann so implementiert werden, dass er immer an einer bestimmten Stelle terminiert, der Algorithmus an sich ist es aber nicht. Das muss man unterscheiden.
Wenn er unendlich lange laufen würde, also auch unendlich viele Zahlen ausspucken würde, würde er ja nie mehr als eine Zahl ausspucken. Der Algorithmus streicht ja die Vielfachen von Zahlen aus der Liste aus. Die Vielfachen einer Zahl aus einer unendlichen Liste zu streichen, ist aber nicht möglich. Korrigiert mich bitte, wenn ich falsch liege. Lerad 22:18, 19. Okt 2005 (CEST)
- Mit solchen Behauptungen muss man vorsichtig sein. Man kann das schon. Der Algorithmus sagt ja nicht, dass ich eine unendliche Liste konstruiere (So direkt im Speicher von vorn bis hinten geht das ja auch nicht, weil der Speicher endlich ist). Ich kann die Liste bei Bedarf immer weiter vergrößern, dann muss der Algorithmus nicht terminieren. Mit en:Lazy Evaluation (wie in Haskell oder z.B. infinite streams in Scheme) ist es sogar möglich (potentiell) unendliche Listen zu konstruieren. Das ist nichts weiter, als das oben beschriebene Vergrößern der Liste, nur dass das hier einem der Compiler/Interpreter abnimmt und das für den Programmierer ausschaut als wäre seine Liste unendlich. Das Sieb des Eratosthenes ist eins der Paradebeispiele um dieses Konzept zu demonstrieren.
- Danke für die Aufklärung, den Begriff Lazy Evaluation kannte ich noch nicht. Ich hatte mir zwar auch vorgestellt dass es möglich wäre durch geeignete Programmierung ein ähnliches Verfahren zur Primzahlerzeugung herzustellen. Ich dachte aber dass dieses Verfahren dann nicht mehr Sieb des Eratosthenes heißen würde, weil in allen Quellen steht, das das Sieb die Primzahlen von 2 bis zu einem gegebenen Maximum finden würde. Ist denn die Erklärung unter Sieb des Eratosthenes richtig? Die Erklärung dort hatte ich auch so aufgefasst, dass es ein vorgegebenes Maximum gibt. Lerad 12:17, 30. Okt 2005 (CET)
Ich habe jetzt den entsprechenden Satz vom Sieb des Eratosthenes in einen allgemeinen Primzahltest umgewandelt. Lerad 00:13, 24. Okt 2005 (CEST)
Euklidischer Algorithmus
Das Beispiel Eukl. Alg. habe ich mal rausgenommen, da darüber bereits ein ausführlicher Wikipedia-Artikel existiert der unter Beispiele ja auch schon verlinkt wird. -- Essen-thomas 01:43, 21. Feb 2006 (CET)
- Halte ich für keine so gute Idee. Dadurch wird der Artikel nur noch theoretisch(es Gesülze SCNR). Ein praktisches Beispiel tut dem Artikel gut und der euklidische Algorithmus eignet sich dafür, selbst wenn ein eigener Artikel ausführlicher auf ihn eingeht. --Hubi 08:43, 21. Feb 2006 (CET)
Determinierung
Unter "Eigenschaften" steht bzgl. randomisierten Algorithmen folgende Aussage:
"Eine Ausnahme bilden so genannte stochastische, randomisierte oder probabilistische Algorithmen, in die absichtlich ein Zufallsfaktor eingebaut wurde. Solche Algorithmen sind demnach nicht deterministisch und auch nicht determiniert. Stochastische Algorithmen dagegen sind im Allgemeinen deterministisch, orientieren sich aber an Erfahrungswerten."
Diese Aussage ist IMHO falsch. Als Gegenbeispiel kann der randomisiertes Quicksort dienen, der determiniert ist, weil er immer die sortierte Folge ausgibt. Oder ist dies nicht der Fall, weil er nicht stabil ist?
- Ich würde vorschlagen, "und auch nicht determiniert" durch "oder sogar nicht determiniert" o.ä. zu ersetzen. -- rayx Diskussion 11:58, 8. Jun 2006 (CEST)
Wortgeschichte
Hallo zusammen,
gibt es eigentlich Belegstellen für die Wortgeschichte. Kommt mir irgendwie etwas an den Haaren herbei gezogen vor.
-- rayx Diskussion 09:20, 8. Jun 2006 (CEST)
- Die Geschichte stimmt schon, aber ich find grad keine wirklich gute Quelle, nur z. B. http://dict.die.net/algorithm/ oder http://www.is.informatik.uni-duisburg.de/courses/infoa_ss03/skript/index.htm. Es gibt sicher noch bessere Quellen, sobald ich mal eine gute finde, trage ich sie im Artikel ein. --jpp ?! 11:12, 8. Jun 2006 (CEST)
Wortgeschichte, Link Indische Ziffern
Würde gerne in den Abschnitt -Wortgeschichte-
- Das Wort Algorithmus ist eine Abwandlung oder Verballhornung des Namens von Muhammed Al Chwarizmi (* ca. 783; † ca. 850), dessen Lehrbuch Über das Rechnen mit indischen Ziffern (um 825) in der mittelalterlichen lateinischen Übersetzung begann mit den Worten Dixit Algorismi („Algorismi hat gesagt“).
den Link -Indische Ziffern- einbauen. Unvorteilhaft ist nur, dass es sich um einen Buchtitel handelt.
Der Text könnte dann so aussehen:
- Das Wort Algorithmus ist eine Abwandlung oder Verballhornung des Namens von Muhammed Al Chwarizmi (* ca. 783; † ca. 850), dessen Lehrbuch Über das Rechnen mit indischen Ziffern (um 825) in der mittelalterlichen lateinischen Übersetzung begann mit den Worten Dixit Algorismi („Algorismi hat gesagt“).
Vielleicht hat jemand eine kanonische Lösung für das Problemchen mit dem Link. --80.128.195.106 10:46, 6. Feb. 2008 (CET)
Herkunft des Namens
Wie kann "Algorithmus" die Verballhornung des NAMENS sein, wenn nur der TEXT so begann? Vielleicht kann das jemand ändern, ich traue mir eine Änderung hier nicht zu! (nicht signierter Beitrag von 82.83.46.134 (Diskussion) )
- Mein Latein ist etwas eingerostet, aber „Dixit Algorismi“ heißt wohl soviel wie „al-Chwarazmi sagte“. --jpp ?! 08:54, 30. Aug 2006 (CEST)
Jpp hat recht. Da oben nach Belegen fuer die Wortgeschichte gefragt wurde und ich den betreffenden Abschnitt geschrieben habe, hier per copy & paste einige meiner Belege speziell zu den unterschiedlichen Deutungen von algorismus (nebst Varianten) einerseits als Name einer Person und andererseits als Bezeichnugn der Rechenkunst (die Uebersetzung der lateinischen Zitate ueberlasse ich wieder Jpp :-)
a) Alexander de Villa Dei, Carmen de algorismo (um 1220), beginnt: "Haec algorismus ars praesens dicitur; in qua / Talibus Indorum fruimur bis quinque figuris" (etc.), ed. Halliwell (Rara mathematica, wie unten c), p.73. Er verwendet den Ausdruck sonst nicht und bietet auch keine weiteren geschichtlichen Erklaerungen, so dass hier 'algorismus' nur als Name der 'ars', aber nicht als Name des Erfinders oder Verfassers (und auch kein anderer Name wie Algus) bekannt ist. Das gilt ebenso auch fuer den von Victor Mortet, Le plus ancien traité français d'algorisme, in: Bibliotheca Mathematica, 3. Folge, 9. Band, 1. Heft (1908), p.55-64, nach zwei Mss. des 13. Jh. herausgebenen Prosatraktat, der im wesentlichen eine verkuerzende Prosabearbeitung des Carmen de algorismo ist und beginnt: "Ceste senefiance est apelee algorisme, de le quele nous usons de tels figures" (p.60).
b) Halliwell p.73 n. 2 bietet zu "Haec algorismus ars praesens dicitur" in einer Anmerkung noch das folgende Zitat: "Haec praesens ars dicitur algorismus ab Algore rege ejus inventore, vel dicitur ab algos quod est ars, et rodos quod est numerus; quae est ars numerorum vel numerandi, ad quam artem bene sciendum inveniebantur apud Indos bis quinque (id est decem) figurae." Comment. Thomae de Novo-Mercatu. MS. Bib. Reg. Mus. Brit. 12 E. 1.
c) Johannes de Sacrobosco, Algorismus vulgaris sive Tractatus de arte numerandi (um 1250), beginnt: "Omnia quae a primaeva rerum cognitione processerunt ratione numerorum formata sunt, et quemadmodum sunt, sic cognosci habent: unde in universa rerum cognitione, ars numerandi est operativa. Hanc igitur scientiam numerandi compendiosam edidit philosophus nomine Algus, unde algorismus nuncupatur, vel ars numerandi, vel introductio in numerum." Hier zit. nach der Ausgabe von James Orchard Halliwell, Rara Mathematica, 2nd ed. London: Maynard, 1841, p.1-2; Die Ausgabe von M. Curtze in Petri Philomeli de Dacia in algorismum vulgarem Ioannis de Sacrobosco commentarius una cum algorismo ipso, Hauniae 1897, p.1, bietet folgende textliche Abweichungen: "unde in universa rerum cognitione est ars numerandi cooperativa", "...compendiosam quidam philosophis edidit nomine Algus, unde et Algorismus nuncupatur, <quae> vel ars numerandi, vel ars introductoria in numerum interpretatur".
d) Halliwell p.1 n.2 bietet zu "Algus" noch in einer Anmerkung noch die folgenden Zitate: "Rex quodam Castelliae." Johannis Norfolk progressionis summula, MS. Harl. Mus. Brit. 3742. "Cum haec scientia de numeris quae algorismus ab inventore vel ab Algo, quae est inductio et rismus, quae est numerus quasi inductio in numeros appellatur." - Tractatus de Algorismuo, MS. Arundel. M.B. 322, fol. 68. Vid. Pref. a "Oeuvre tresubtille et profitable de Arithmetique et Geom." 4to. Par. 1515, Sig. B. 2.
e) Curtze in seiner Ausgabe des Petrus de Dacia zitiert (wie oben c, Einl. p.IX) noch fuer Sacroboscos Algorismus vulgaris das Explicit aus der Handschrift Clm 11067 (Pass. 67), wohl fol. 142r: "Explicit algorismus, quem quidam philosophus Algus primitus invenit, sed Iohannes de Sacro Busco considerans arismetricam a Boetio et ab aliis arismetricis nimis late et diffuse seu confuse traditam hunc tractatum de graeco in latinum transtulit et sub compendio collegit. Scriptum per me ..... Anno Dni. M'CCCC'XLV, tertia die mensis septembris". Curtze bemerkt dazu amuesiert (ibd.): "Der von einem Araber griechisch verfasste Text des Algorismus ist also danach von Iohannes von Sacrobosco in (sic, O.L.) Lateinische übersetzt worden!" Dass der Schreiber den Algus fuer einen Araber haelt ist jedoch dem Explicit nicht zu entnehmen. Womoeglich hat Curtze dies nur aus dem Kommentar des Petrus de Dacia in das Explicit hineininterpretiert, da Petrus in einer diesem Explicit sehr aehnlichen Stelle (siehe unten g) den Namen Algus als 'arabischen' bezeichnet, und sein Kommentar in der Muenchener Handschrift direkt auf den Algorismus vulgaris folgt.
f) Der von E. G. R. Waters, A Thirteenth Century Algorism in French Verse, in: Isis 11 (1928), p.45-84, nach einer Handschrift des 13. Jh. herausgegebene Verstraktat, der sich als eine von zwei "clerc" verfasste Uebersetzung ausweist, kennt einerseits "argorisme" (in der Tradition des Carmen de algorismo) als Bezeichnung der "ars", die er mit einem angeblichen Isidorzitat als schon bei Isidor bekannt voraussetzt (vv.22ss., p.54) : "Encore dit Ysidre meïsme: / Qui de conpot et d'argorisme / Ne connoist l'art et la cïence, / Que mout a poi de difference / Entre li et la beste mue / Que l'en met traire a la charue" (Waters uebersetzt: "Isidore himself says further: 'If a man knows not the art and science of the computus and algorism, there is little difference between him and the dumb animal that is put to draw the plough'"). Der Traktat gibt jedoch andererseits auch, im Anschluss an eine Erlaeuterung der grundlegenden Bedeutung dieser Kunst fuer das Quadrivium, eine geschichtliche Erklaerung, die den Namen dieser Kunst und des sie verbreitetenden 'Buches' von einem griechischen Urheber Argorisme ableitet (vv.77ss., p.56/58: "Argorisme fu fait [en] Grece; / D'arismetique est espece, / Et li mestre Argorisme out non / qui le trova et li mist son non. / Por che qu'il out non Argorisme, / Mist non a son livre 'argorisme'; / Argorisme eut non en ensement" (Waters: Algorism was made in Greece; it is a subdivision of arithmetic, and the master was named Algorism who invented it and gave it his name. Because his name was Algorism, he called his book 'algorism'; it too was named algorism").
g) Petrus de Dacia, in seinem Kommentar (von 1291) zu Sacrobosco, erklaert (ed. Curtze wie c, vgl. auch den Text des Explicit in d): Tunc sequitur illa pars: Hanc igitur scientiam numerandi, in qua tangit causam efficientem huius artis; et patet. Sed est notandum, quod aliud est, dicere causam efficientem huius artis, et aliud est, dicere causam efficientem huius tractatus. Qui enim artem hanc numerandi tradidit, erat quidam philosophus Algus nomine Arabicus ex principiis et conclusionibus arismetricae eam eliciens; qui autem hunc tractatum edidit, erat Latinus aliquis, et dicitur (quod <erat quidam> Iohannes de Sacrobosco artem hanc diffusius ab Algo philosopho traditam succincte in numerum brevem capitulorum redigens et compilans.
--Otfried Lieberknecht 01:58, 23. Okt. 2006 (CEST)
in endlich vielen Schritten
Um zukünftige Missverständnisse zu vermeiden, eine kurze Erklärung:
Eine Ampelanlage führt den selben Algorithmus in Form eines Programmes immer wieder aus. Wäre der Algorithmus nicht terminiert, würde sie nicht wieder von vorne beginnen können und musste jedesmal etwas anderes tun. In der Umkehrung bedeutet dies, dass sie in dem Moment, wo sie wieder von vorne beginnt, den vorherigen Algorithmusdurchlauf automatisch beendet haben muss. Als Quelle siehe auch tu-chemnitz.de/../uebung1_2.pdf. --Steevie schimpfe hier :-) 17:29, 26. Apr. 2008 (CEST)
- Wenn ein Algorithmus zwangsläufig in endlich vielen Schritten endet, wozu dann der Artikel über terminierende Algorithmen? Nicht terminierende Algorithmen würden nicht existieren, da dies ein Widerspruch zur Definition darstellen würde, sprich, ein nicht terminierendes Verfahren wäre kein Algorithmus, da dieses Verfahren eben nicht in endlich Schritten zu einem Ergebnis kommt. Auch die Tiefensuche wäre kein Algorithmus, da im worst case die Suche nicht beendet wird.
- --Paul 89.48.200.74 19:58, 26. Apr. 2008 (CEST)
- Danke Paul, hier ist es besser. :-)
- Grundsätzlich ist sehr genau zu prüfen, will man mit Hilfe mehrerer Artikel verschiedener Autoren und Bearbeitern ein kohärentes System aufbauen. Die Begriffe werden oft sehr unterschiedlich verwendet und man macht schnell einen Kategorienfehler - auch den besten Denkern passiert das.
- Zum Artikel Terminiertheit:
- Dort heißt es: für nicht-entscheidbare Probleme gibt es keinen Algorithmus, der stets terminiert. Das bedeutet nicht, dass es für nicht-entscheidbare Probleme, das sind unlösbare Probleme, überhaupt einen Algorithmus geben kann. Vielmehr besagt die Definition von Algorithmus: unter A. versteht man eine genau definierte Handlungsvorschrift zur Lösung eines Problems. Somit folgt daraus, dass man eine (nutzlose) Handlungsvorschrift für nicht lösbare Probleme nicht Algorithmus nennt. Die Terminierung ist dabei nebensächlich.
- Zum Artikel Tiefensuche:
- Der worst case wird dadurch beschrieben, dass ein Graph unendlich groß ist oder kein Test auf Zyklen durchgeführt wird. Hierbei ist für den ersten Fall zu beachten, dass für unendlich große Graphen, die es, nebenbei bemerkt nicht geben kann :-), keine genau definierte Handlungsvorschrift angegeben werden kann, denn wir können keine Aussage treffen, was genau getan werden soll, wenn z.B. das Ende erreicht wird, weil wir nichts darüber wissen können. Im zweiten Fall ist es kein (gültiger) Algorithmus, da der Test auf Zyklen geradezu notwendig ist, das Problem (immer) zu lösen.
- Fazit: Beide Artikel taugen nicht zur Begründung, weil sie ihrerseits ungenau, wenn nicht sogar falsch formuliert sind.
- Die Täuschung geschieht durch die Vorstellung, dass eine Handlungsvorschrift sehr wohl, was wir intuitiv auch genau wissen, ein Algorithmus sein kann, obwohl er das Problem nicht löst, ganz einfach, weil er ein anderes uns bekanntes Problem löst. Die Addition von zwei Zahlen hilft ohne Modifikation nicht beim Multiplizieren.
- Erst wenn wir das Problem und den Algorithmus, die Handlungsvorschrift in engem Zusammenhang sehen, gelingt es uns, das zu verstehen. Grüße, --Steevie schimpfe hier :-) 20:55, 26. Apr. 2008 (CEST)
Neue Definition
Die Diskussion wird kompliziert, denn es gibt unvereinbare Standpunkte. Eine einfache, klare Definition wird dringend gebraucht. Vorschlag:
- Ein Algorithmus (eine Rechenvorschrift) ist ein Verfahren zur Berechnung einer mathematischen Funktion.
- Ein Algorithmus P berechnet eine Funktion f: A -> B, wenn P zu einer beliebigen Eingabe a aus A nach endlicher Zeit den Wert f(a) ausgibt.
- Beispiel: Der Euklidische Algorithmus berechnet die Funktion ggT.
Folgerungen:
- Ein Algorithmus ist insbesondere ein Verfahren (eine Prozedur), besteht also aus ausführbaren, deterministischen Schritten und ist endlich darstellbar. Ein nicht-deterministischer Algorithmus ist demnach kein Algorithmus, so wie eine partielle Funktion keine Funktion ist.
- Verfahren, deren Zweck nicht die Berechnung mathematischer Funktionen sind, sind keine Algorithmen. Demnach sind Kochrezepte und Ampelsteuerungen zwar Verfahren, aber keine Algorithmen.
- Ein Algorithmus braucht nicht überall zu terminieren. Er muß nur auf dem Definitionsbereich der zu berechnenden Funktion f terminieren. Zum Beispiel braucht ein Divisionsalgorithmus nicht zu terminieren, wenn der Nenner Null ist. Insbesondere ist eine Endlosschleife durchaus ein Algorithmus für die Funktion mit leerem Definitionsbereich.
- Was erlaubte Rechenschritte sind, kann man im Berechnungsmodell festlegen. Üblicherweise setzt man die Turingmaschine oder ein äquivalentes Modell stillschweigend voraus.--AlfonsGeser 21:14, 9. Mai 2008 (CEST)
- zu 2.
- Ein Kochrezept oder eine Betriebsanleitung Algorithmus zu nennen, ist mir neu. Falls das unter diesem Begriff subsummiert wird, bitte Quellenangaben einfügen. In der englischen und der französischen Seite finden sich keine solchen Erklärungen mehr. Diese Seiten beschränken sich auf die Informatik. --Swen 09:12, 10. Dez. 2009 (CET)
- --Swen 00:33, 13. Dez. 2009 (CET)
- Zumindest in die Medizin hat der Begriff Eingang gefunden: [1], [2], [3] und viele andere Fundstellen. --Mussklprozz 18:18, 27. Okt. 2010 (CEST)
Aufgabe versus Problem
Ich bezweifle, dass es in der Informatik eine Definition des Begriffs „Aufgabe“ gibt. Die Verlinkung auf die Begriffsklärungsseite aus der Einleitung heraus scheint mir nicht sehr hilfreich zu sein. Der Begriff des Problems ist dagegen besser definiert. Daher erlaube ich mir die Änderung von Amano1 zurückzusetzen. Generell fehlt uns aber noch ein Beleg zur Begriffsdefinition. Welcher Autor definiert „Algorithmus“ in welchem Werk wie? Soweit ich weiß, gibt es einige formale (am wichtigsten wohl die Church-Turing-These) und einige informelle Definitionen. --j ?! 10:21, 17. Okt. 2008 (CEST)
Laienerklärung
Für mich als Laie ist aus dem Artikel nicht klar herauszulesen, was ein Algorithmus genau ist. Die Erklärungen oder Definition sind nicht richtig verständlich für einen Laien. Wäre dankbar für eine Erklärung, was ein Algorithmus ist. Vielleicht würden im Artikel Beispiele helfen. Grüße --86.59.104.202 18:27, 22. Mär. 2012 (CET)
- Zudem wären weniger fremdsprachige Fachwörter (also kein Latein[isch] oder Römisch und Griechisch, auch nicht eingedeutscht oder unnötig entlehnt) und dafür mehr gewöhnliches und damit gewohntes Alltagsdeutsch bestimmt auch sehr hilfreich. LG, 92.231.187.46 21:35, 10. Jul. 2013 (MESZ) (22:33, 10. Jul 2013 (CEST), Datum/Uhrzeit nachträglich eingefügt, siehe Hilfe:Signatur)
- Im Prinzip ist ein Algorithmus einfach nur eine detaillierte Schritt-für-Schritt-Arbeitsanweisung; beispielsweise werden in populärwissenschaftlicher Literatur häufig Kochrezepte als Analogie herangezogen. Das hielte ich auch für sinnvoll, im Artikel zu erwähnen. Ist doch alltagsbezogen und allgemeinverständlich genug, oder? --Florian Blaschke (Diskussion) 23:43, 18. Aug. 2013 (CEST)
Der Betrag ist sehr unverständlich geschrieben. Da haben sich wieder paar feldfremde Informatiker ausgetobt. Ein Algorithmus ist eine Vorgehensweise, um ein bestimmtes Ziel zu erreichen. Diese Vorgehensweise besteht aus einer Summe von Einzelschritten.
Wirklich so schwer? (nicht signierter Beitrag von 93.232.223.218 (Diskussion) 10:55, 6. Jan. 2014 (CET))
Es existiert eine WL von „Rechenvorschrift“, darauf sollte eingegangen werden.
Ich weiß aber nicht genau, ob "Rechenvorschrift" synonym oder in einem engeren Sinn benutzt wird, deshalb überlasse ich die Erwähnung/Abgrenzung den Spezialisten. --Forscher56 (Diskussion) 13:05, 3. Sep. 2012 (CEST)
- Die „Rechenvorschrift“ ist wohl einfach nur eine mögliche Übersetzung des Fremdwortes ‚Algorithmus‘ in die hier (also in De) eigentlich genutzte [Landes-]Sprache (siehe auch [4]). ..weitere mögliche Übersetzungen wären übrigens die „Verarbeitungsvorschrift“ und die „Handlungsvorschrift“ (siehe auch [5] und [6]), die gegebenenfalls auch mal mit entsprechenden Weiterleitungen gewürdigt werden könnten. LG. 92.231.187.46 21:41, 10. Jul. 2013 (MESZ) (22:33, 10. Jul 2013 (CEST), Datum/Uhrzeit nachträglich eingefügt, siehe Hilfe:Signatur)
- Algorithmus = Beschreibung eines schritt für schritt Verfahrens, siehe Codec/Videocodec User:ScotXWt@lk 23:31, 27. Jun. 2014 (CEST)
DEC XCON ?
Der Klammersatz: "(für den Rete-Algorithmus wurde einst 1 Million USD auf DEC XCON genannt)" gibt IMHO keinen Sinn. "DEC" steht ja wohl für "Digital Equipment Corporation" und "XCON" war ein Bestellprogramm für Computersysteme, bei dem die Einzelkomponenten basierend auf Kundenwünsche automatisch zusammengestellt wurden. Das dieses Programm etwas mit Algorithmus zu tun hat, mag sein, allerdings ist bei EN-WP nicht davon die Rede und "Rete" taucht dort ebenfalls nicht auf, dafür von gleich 25 Mio. USD Kosteneinsparungen p.a.--Ciao--Bestoernesto (Diskussion) 22:08, 30. Okt. 2016 (CET)
Kann man einen Algorithmus patentrechtlich schützen lassen?
Da Codecs nichts anderes als Algorithmen sind, (ausgeklügelte welche), stelle ich diese Frage hier. Wenn ja, sollte in irgendeinem Artikel ein Abschnitt dazu hin und von den anderen Artikel aus dann darauf verlinken. User:ScotXWt@lk 23:29, 27. Jun. 2014 (CEST).
Ich verbessere meine Aussage zum Artikel nicht du hast ihn Gelöscht und gibst ihn, als deinen Verfälscht an, das ist nicht Fair und auch nicht Hilfreich. Ich hab Recht du nicht, Beweise das Gegenteil!!! Zu deiner Frage, nein kann man nicht. (nicht signierter Beitrag von 217.95.147.141 (Diskussion) 18:52, 1. Apr. 2017 (CEST))
- Algorithmen nicht, computerbasierte Erfindungen schon. --Aktenstapel (Diskussion) 10:18, 15. Jun. 2018 (CEST)
- Da es speziell um Codecs geht - die mathematischen Grundlagen und Algorithmen, nach denen ein Codec arbeitet, können nicht patentiert werden. Ebensowenig ein spezieller Rechenweg oder -trick.
- Anders aber z.B. das Datenformat des Codecs. Das kann als Gebrauchsmuster geschützt werden. Auch der Sourcecode einer Implementierung unterliegt dem Urheberrecht.
- D.h. z.B. jedermann darf die Algorithmen, Verfahren und Rechenwege von H.265 nachprogrammieren und verwenden. Aber nicht einfach Code copy-und-pasten, oder die Daten in einem MPEG-4-Container speichern.
- --arilou (Diskussion) 10:34, 15. Jun. 2018 (CEST)
- Nachtrag: Das ist keine Rechtsberatung und ohne irgend eine Garantie. Ich bin kein Jurist!
Direkte Umsetzung von nicht-deterministischen Algorithmen
Im Artikel steht, nicht-deterministische Algorithmen lassen sich nicht direkt mit einer realen Maschine umsetzen. Mir ist bewusst, was ein nicht-deterministischer Algorithmus ist, allerdings nicht, warum er nicht direkt auf realen Maschinen umsetzbar ist, leider wird darauf auch nicht weiter eingegangen. Wäre das nicht noch eine Ausführung wert? Wenn nicht in diesem Artikel, wenigstens in Determinismus (Algorithmus)? --Julian Rabe (Diskussion) 16:54, 30. Apr. 2017 (CEST)
- Dem würde ich mich anschließen. So wie es jetzt steht, erscheint es als ein unmittelbarer Widerspruch: "So ist Quicksort mit zufälliger Wahl des Pivotelements ein Beispiel für einen (...) nicht deterministischen Algorithmus. (...) Nichtdeterministische Algorithmen können im Allgemeinen mit keiner realen Maschine (...) direkt umgesetzt werden." Was denn jetzt? Und was heißt in diesem Zusammenhang nicht "direkt"? --User13 (Diskussion) 13:47, 27. Mai 2017 (CEST)
- Ich bin (Mit-)Verbrecher dieser Aussagen.
- Das war zuvor noch absoluter formuliert, als ob Nichtdeterministische Algorithmen überhaupt nicht berechnet werden könnten.
- Man kann die existierenden Computer als "allgemeine deterministische Rechenmaschinen" beschreiben - sie können (weitgehend) beliebige ("allgemeine") deterministische Algorithmen berechnen. Es gibt aber keinen "allgemeinen nichtdeterministischen Computer", der (weitgehend) beliebige nichtdet.Algorithmen berechnen könnte.
- Das schließt natürlich nicht aus, dass es für einen bestimmten nichtdet.Algorithmus oder sogar einen bestimmten nichtdet.Algorithmentyp nicht eine angepasste Maschine geben könnte.
- Ebenso kann durchaus ein bestimmter nichtdet.Algorithmus auf einem det. Rechner implementiert werden, wenn er bestimmte Randbedingungen erfüllt. Z.B. führt Quicksort immer zum Ziel, egal welches (nichtdet.) Pivotelement man wählt.
- Ein det. Computer kann einen nichtdet. Computer simulieren, und bei jedem nichtdet. Rechenschritt "alle Möglichkeiten" (nacheinander) weiterverfolgen. Damit würde man den nichtdet.Algorithmus berechnen, aber nicht als "direkte Umsetzung" auf den Computer, sondern nur "indirekt" (simuliert).
- Dennoch bleibt es unmöglich, für allgemeine nichtdet.Algorithmen einen "(allgemeinen) nichtdet. Computer" zu bauen.
- --arilou (Diskussion) 09:53, 29. Mai 2017 (CEST)
- Nachtrag: Hm, evtl. sollte das im Artikel noch detaillierter ausgeführt werden, wenn die aktuell dastehende Aussage nicht wirklich verständlich ist.
- --arilou (Diskussion) 09:59, 29. Mai 2017 (CEST)
3: Wortherkunft; 9.2: Der Ursprung des Wortes
Warum wird die Frage nach der Wortherkunft zweimal behandelt? Nur bei „Wortherkunft“ wird die wissenschaftl. Transliteration des Erfindernamens verwendet, und nur bei „Der Ursprung des Wortes“ ist von Brahmagupta die Rede. Mir fehlen Kenntnisse und Quellen, um gegebenenfalls zu überarbeiten, aber hat diese Zweiteilung der Frage einen Sinn? --Galtzaile (Diskussion) 14:47, 14. Jan. 2018 (CET)
Der Übergang zwischen Algorithmus und Heuristik ist fließend
Kann diese Idee bitte erläutert werden? Für mich ist da keinerlei Übergang. Ein Algorithmus ist festgelegt und bereits eine prozessierende (oder ausgeführte) Seinsform. Eine Heuristik ist angesetzt und eher eine seinsforschende Prozessform. Wo ist da der fließende Übergang? Auch was Stangerl sagt, spricht nicht für einen fließenden Übergang. Er wählt explizit die Verknüpfung "Im Gegensatz dazu..." Mir persönlich erscheint die Idee des fließenden Überganges völlig absurd. --92.196.15.211 22:47, 25. Feb. 2018 (CET)
- Eine Heuristik ist ein Algorithmus. Punkt. Dieser Absatz ist imo kompletter Unsinn und gehört aus dem Artikel entfernt (insbesondere als erster Absatz!). Wenn sich auf der Diskussionsseite kein Widerspruch in den nächsten Tage dazu einstellt, werde ich diesen Teil entfernen. --Andreschulz (Diskussion) 16:48, 24. Apr. 2018 (CEST)
- Ich sehe das ebenso wie Benutzer:Andreschulz : eine Heuristik ist ein Algorithmus, eine feste Vorgehensweise, um bzgl. einer Problemstellung eine Lösung zu finden. Das einzig besondere an der Heuristik ist, dass sie von 'schwammigen', ungenauen und/oder unvollständigen Basisdaten aus operieren muss. Im Allgemeinen ist aber ganz genau und eindeutig formuliert, wie man aus den Basisdaten auf die Problemlösung kommen soll (z.B. mittels Methode der kleinsten Quadrate).
- Und hier sehe ich dann den 'fließenden Übergang' - wenn aus der "genau und eindeutig formulierten Vorgehensweise" immer mehr ein "gutes Raten gemäß der Erfahrungswerte" wird, wenn z.B. gerade bei der Methode der kleinsten Quadrate man raten muss, von welchem Typ die Näherungskurve sein soll - Polynom wievielten Grades, e-Funktion, was trigonometrisches, eine Mischung, ...
- --arilou (Diskussion) 10:00, 4. Mai 2018 (CEST)
- Einspruch. Der Übergang ist sehr wohl fließend. Eine Heuristik kann, muß aber nicht durch ein wohldefiniertes Verfahren ausgeführt werden. Auch Vorurteile, Meinungen und Klischees sind bisweilen in der Praxis erstaunlich erfolgreiche Heuristiken. Und umgekehrt kann auch ein Algorithmus heuristisch eingesetzt werden, ohne tragfähige Begründung, ob und warum er überhaupt zu einem gewünschten Ergebnis führt. 88.217.42.55 15:40, 13. Sep. 2019 (CEST)
- Ähm - das sind keine Heuristiken, sondern Daten/"Messwerte", und zwar schwammig-ungenaue, mitunter auch teil- oder gänzlich falsch. Der heuristische Vorgang ist die Abwägung im Kopf des Einzelnen, wie er diese "Informationen" bewertet, und ob und wie er ggf. selbst handeln soll. Afaik können Psychologen recht exakt erklären, wie dieses Abwägen abläuft, und somit praktisch ein "Ablaufprogramm" dafür verfassen.
- Was den Artikel angeht: Ich denke, das steht jetzt genau richtig drin.
- --arilou (Diskussion) 15:07, 30. Sep. 2019 (CEST)