Algorithmus

Suchalgorithmus

Der Algorithmus ist eine eindeutige Handlungsregel zur Lösung eines Problems oder einer Klasse von Problemen. mw-headline" id="Historical_Development">Historical_Development[a class="mw-editsection-visualeditor" href="/w/index.php?title=Algorithmus&veaction=edit&

section=1" title="Edit section="Edit Historische Entwicklung">Bearbeiten | < Quellcode bearbeiten]

Bereits mit der Sprachentwicklung haben sich die Menschen Regeln für das Verhalten, Befehle, Gesetze - die einfachsten Mechanismen - ausgedacht, um in grösseren Wohngruppen zusammenzuleben. Darüber hinaus bietet die Fremdsprache eine gute Gelegenheit, Prozeduren und Fähigkeiten - kompliziertere Berechnungen - an die Schüler zu vermitteln. Das Konzept der Rechenalgorithmen als abstraktes Bild von Problemlösungsansätzen ist zunächst im Kontext von mathematischer, logischer und philosophischer Natur in das Bewußtsein der Menschen gerückt.

Dieses Beispiel für einen antiken Rechenalgorithmus ist der äuklidische Algorithmus. Blatt aus einer Lateinübersetzung (Cambridger-Manuskript), beginnt mit "Dixit algorizmi" Der Wortalgorithmus ist eine Modifikation oder Verzerrung des Namen des persischen[3][4][5]-Mathematikers und -AStronomes Mu?ammad Ibn-M?s? al-H?w?rizm?, dessen Teil des Namen (Nisba) al-Chwarizmi "den Choresmier" aus Choresmien oder Choresmiendeutet.

Die lateinische Version al-Hwarizmis hat auch den Namen des Autors lateinisiert, und zwar nach den Eröffnungsworten der ersten Version der vorliegenden Version (Dixit Algorismi "Algorismi sagte"). 6 Von al-Hwarizmi wurde das Mittelhochdeutsche zum Algorithmus, Algoritismus oder Algarismus - ein Begriff, der aus dem Lateinischen ins Alte Französische (Algoritismus, Argoritismus) und ins Mittlere Englische (Augment, Augmentum) fast zur gleichen Zeit und in der gleichen Sprache übertragen wurde.

Bis etwa 1600 wurde der Algorithmus zur Beschreibung von Lehrbüchern verwendet, in denen die Verwendung von Fingernummern, Rechentafeln, Nullen, indisch-arabische Ziffern und geschriebene Arithmetik eingeführt wurden. Basierend auf der para-etymologischen Rückführung der zweiten Komponente -Risma auf das Griechische www, dann auch auf den präziseren lateinischen Wortform-Algorithmus, der seit der Frühneuzeit, zunächst auch mit der Schriftvariante des Algorithmus, eine breitere Streuung erlangt und schließlich die heute gebräuchliche Wortsbedeutung als Fachbegriff für regulierte Verfahren zur L ösung bestimmter Laststellungen angenommen hat.

Der Algorithmus ist ein zentrales Thema der Computerwissenschaften und der mathematischen Wissenschaften. Es handelt sich dabei um spezielle Fachgebiete der Theorie der Computerwissenschaften, der Komplexitäts- und Rechenbarkeitstheorie, und manchmal verfügen sie über eine eigene Abteilung, die sich der Algorithmenlehre oder der Algorithmenlehre verschrieben hat. Als Computerprogramme und elektronische Schaltungen regeln Schaltungen Steuercomputer und andere Geräte. Es gibt verschiedene formelle Darstellungen für den Algorithmus.

Dies reicht von abstrakten Pendants wie z. B. abstrakten Verfahren bis hin zu speziell auf eine bestimmte Messmaschine abgestimmten Programmen (d. h. die abstrakte Darstellung findet hier unter Auslassung der Einzelheiten der reellen Messmaschine, das Progamm ist eine Konkretisierung des Algorithmus, der an die Erfordernisse und Gegebenheiten der reellen Messmaschine angelehnt ist) oder der Sicht, dass der Algorithmus genau das Maschinenprogramm von Messmaschinen ist (wobei die abstrakte Darstellung bei der Nutzung der Messmaschine selbst, also einer idealtypischen Rechenmaschine, stattfindet).

In Programmablaufplänen nach DIN 66001 oder ISO 5807 können die Verfahren graphisch abgebildet werden. Die erste Algorithmus für einen Rechner (zur Kalkulation von Bernoulli-Zahlen) wurde 1843 von Ada Lovelace in ihren Anmerkungen zur Charles Babbages Analytischen Maschine aufgezeichnet. Da Charles Babbage seine Analytical Engine nicht vervollständigen konnte, wurde Ada Lovelaces Algorithmus nie auf ihr umgesetzt.

Heutzutage sind die Rechenalgorithmen für Rechner so unterschiedlich wie die Applikationen, für die sie entwickelt wurden. Das Spektrum der verwendeten Verfahren reicht von Steuergeräten für den Kraftfahrzeugbau über Rechtschreib- und Syntaxprüfungen in Textverarbeitungssystemen bis hin zur Börsenanalyse. Im Hinblick auf die einem Rechnerprogramm zugrundeliegenden Gedanken und Prinzipien wird einem Algorithmus in der Praxis in der Praxis der Urheberrechtsschutz verwehrt.

8} Abhängig von der nationalen Struktur der Rechte an geistigem Eigentum sind Computeralgorithmen jedoch für den Patentschutz offen, so dass einzelne urheberrechtsfreie Arbeiten aufgrund der eigenen intellektuellen Schöpfungen nicht immer uneingeschränkt ökonomisch verwertbar sein können. Dabei handelt es sich um oder handelt es sich z.B. um Verfahren, die auf der mathematischen Grundlagen der Hough-Transformation (Jahrzehnte altes, aber mehrmals überarbeitetes Gesamtkonzept mit neuer Registrierung), um Verfahren, die das Bild-Format GIF liest und schreibt, oder auch um Verfahren im der Audio- und Videoverarbeitung, da die damit zusammenhängenden Verfahren, wie sie in den dazugehörenden Codecs konvertiert sind, oft nicht umsonst sind.

Der Mangel an mathematischer Präzision des Begriffes Algorithmus stört viele Mathematikern und Logikern des XIX. und XXX. Jahrhundert, weshalb in der ersten Jahrhunderthälfte des XXX. Jahrhundert eine ganze Serie von Lösungsansätzen erarbeitet werden, die zu einer exakten Begriffsbestimmung der Algorithmen nachvollziehen lassen sollten. Als Algorithmus bezeichnet man eine Berechnungsregel zur Problemlösung, wenn eine gleichwertige Turing-Maschine vorhanden ist, die für jeden Eingang, der eine Problemlösung hat, zum Stillstand kommt.

Daraus lassen sich folgende Algorithmeneigenschaften ableiten: Das Vorgehen muss in einem finiten Schriftzug klar beschrieben werden können (Finitenz). Die Prozedur kann zu jedem beliebigen Moment nur eine endliche Menge an Speicher erfordern (Dynamic Finiteness, s. Space Complexity). Die Prozedur kann nur eine endliche Anzahl von Schritten erfordern (Terminierung, s. auch Zeitkomplexität). Zudem ist der Ausdruck Algorithmus in der Praxis oft auf die nachfolgenden Properties beschränkt:

Die Algorithmen müssen das selbe Resultat für die gleichen Bedingungen erbringen (Determiniertheit). Als nächstes ist die im Rahmen des Verfahrens angewandte Regelung zu jedem Zeitpunk klar festgelegt (Determinismus). Laut der Church-Turing-Thesis kann jedes instinktiv kalkulierbare Problemfeld mit einer Turing-Maschine bewältigt werden. Das formale Merkmal für einen Algorithmus ist seine Durchführbarkeit in jedem dem Turinggerät gleichwertigen Funktionalismus, vor allem seine Durchführbarkeit in einer Programmsprache - allerdings ist damit noch nicht der von der Kirche geforderte Abschluss erreicht.

Das Konzept der Kalkulierbarkeit wird durch die Tatsache bestimmt, dass ein Problemfall kalkulierbar ist, wenn es einen (terminierenden) Algorithmus für das Problemfeld gibt, d.h. wenn eine entsprechende Programmierung einer Turing-Maschine das Problemfeld in begrenzter Zeit beheben könnte. Ein heuristischer Algorithmus ist eine Technik, um aussagekräftige Ergebnisse aus unvollständig erhaltenen Eingabedaten zu erhalten.

Es gibt viele Heuristiken, die präzise beschrieben und damit algorithmisch sind. Für einige ist es jedoch nicht in jedem Arbeitsschritt fest vorgegeben, wie es weitergehen soll - der Benutzer muss "positiv raten". Diese können nicht (vollständig) als Berechnungsalgorithmen ausgedrückt werden. Es wird ein Algorithmus bestimmt, ob er bei jeder Durchführung mit den selben Anfangsbedingungen und Eingängen dieselben Resultate liefern soll.

Der Algorithmus ist bestimmend, wenn der folgende Aktionsschritt an irgendeiner beliebigen Position in der Ausführung des Algorithmus klar festgelegt ist. Bestehen an wenigstens einer Position mehr als eine Option (ohne Vorgabe), dann ist der ganze Algorithmus nicht-deterministisch. Beispielhaft für die deterministischen Verfahren sind die Blasensortierung und der äuklidische Algorithmus. Jeder bestimmte Algorithmus ist bestimmend, wohingegen nicht jeder bestimmte Algorithmus bestimmend ist.

Somit ist die Quicksortierung mit Zufallsauswahl des Pivot-Elements ein Beispiel für einen zwar bestimmenden, aber nicht bestimmenden Algorithmus, da ihr Resultat immer das gleiche ist, mit der gleichen Eingaben und eindeutigen Klassifizierung, aber der Art und Weise, wie es Zufallszahlen gibt. Im Allgemeinen können nicht-deterministische Verfahren nicht unmittelbar mit irgendeiner echten Vorrichtung (auch nicht mit Quantencomputern) implementiert werden.

Ein Beispiel für einen nicht-deterministischen Algorithmus wäre ein Rezept, das mehrere Variationen beschrieben werden. Der Quellcode muss daher aus einer beschränkten Zeichenanzahl aufgebaut sein. Eine Algorithmus kann zu jeder Zeit während der Laufzeit nur eine begrenzte Menge an Arbeitsspeicher beanspruchen. Eine Algorithmus "terminiert überall" oder "terminiert", wenn er nach einer endlichen Schrittzahl - für jede erdenkliche Eingabemöglichkeit - zum Stillstand kommt (oder kontrollierten Abbruch erfährt).

Ein un-terminierter Algorithmus (und damit nicht zu einem Ergebnis) wird (bei einigen Eingaben) in eine so genannten endlose Schleife überführt. In diesem Kontext empfiehlt Donald E. Knuth, nicht-terminierende Rechenmethoden für die Berechnung von Rechenalgorithmen anzurufen. Außerdem kann die Beendigung eines Algorithmus (das Hold-Problem) nicht entschieden werden. Dies bedeutet, dass das Problemfeld, zu bestimmen, ob ein (willkürlicher) Algorithmus mit einer willkürlichen Zahl von Einträgen endet, nicht durch einen Algorithmus gelöst werden kann.

Die Wirkung jeder Aussage eines Algorithmus muss klar definiert sein. Sequenzieller Algorithmus: "Beer on wine, don't do that" - beide Vorgänge sind in einer bestimmten Ordnung. Gleichzeitiger Algorithmus: "Likör und Bier" - die Bestellung ist nicht erteilt und kann zur gleichen Zeit durchgeführt werden. Unbestimmt heits-/Nichtbestimmungs-Algorithmus: "Bier oder Wasser" - das Resultat kann je nach gewählter Variante unterschiedlich ausfallen.

Das Erforschen und Analysieren von Verfahren ist eine der Hauptaufgaben der Computerwissenschaften und wird in der Regel in der Theorie (ohne konkreten Einsatz in einer Programmiersprache) betrieben. Der Algorithmus wird in eine starke formale Gestalt für die Analytik überführt und mit Hilfe der Formalsemantik überprüft. So wird zum Beispiel das Zusammenspiel von Verfahren in Bezug auf Ressourcenanforderungen wie Rechenzeiten und Speicheranforderungen in der Komplexitätslehre thematisiert, die Resultate werden in asymptotischen Ausführungszeiten dargestellt.

In Bezug auf das Abbruchverhalten, also ob der Algorithmus überhaupt einmal abgebrochen werden kann, wird die Kalkulierbarkeitstheorie angewendet. Bei dem ältesten bekannten nicht-trivialen Algorithmus handelt es sich um den euklidischen Algorithmus. Besondere Algorithmentypen sind der zufällige Algorithmus (mit zufälliger Komponente), der Näherungsalgorithmus (als Näherungsverfahren), die Evolutionsalgorithmen (nach dem biologischen Vorbild) und der Greedy-Algorithmus. Ein weiterer Überblick ergibt sich aus der Algorithmenliste und der Rubrik Algorithmus.

Berechnungsregeln sind eine Subgruppe von Berechnungsalgorithmen. Weitere Algorithmenuntergruppen umfassen (Koch-)Rezepte, Gesetzmäßigkeiten, Vorschriften, Regeln, Vereinbarungen, Verträgen. Mit Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein: Der Algorithmus. Vorstellung der Verfahren. Thomas Schimmeck: Der Algorithmus im US-Justizsystem: Machines of Fate. Im: deutschlanddfunk. de, 2017, High Jump ? Hartley Rogers, Jr.: Theory of Recursive Functions and Effective Computability, S. 2. High Jump ? Charles E. Leiserson, Ronald L. Rivest, Clifford Stein: Algorithms - Eine Einleitung.

Herausgeber der Bayerischen Akademien der Naturwissenschaften, Munich 1997. Höhespringen Kurt Vogel: Der Trenenter Algorithmus von 1475. In: Nova Acta Leopoldina, Neue Folgen, Vol. 27, 1963, p. 183-200. Hochespringen ? Germany: § 69a Abs. (2) UrhG. Rufen Sie ? History of Algorithms and Algorithmics (Geschichte der Algorithmen und der Algorithmen) auf.

Mehr zum Thema