In der Mathematik, Informatik und anderen verwandten Lehren wird der Algorithmus als eine Reihe etablierter und eindeutiger Grundsätze definiert, die methodisch und begrenzt festgelegt werden und die es ermöglichen, Berechnungen durchzuführen, bestimmte Informationen zu verarbeiten, Lösungen für Probleme bereitzustellen und verschiedene Aktivitäten auszuführen. Sobald Sie von einem Anfangszustand und einem Eintrag ausgehen und die erforderlichen Verfahren befolgen, wird der Endzustand erreicht und ein Ergebnis erhalten. Algorithmen sind Gegenstand der Untersuchung von Algorithmen, und obwohl viele es nicht glauben, können sie auch in allen Aspekten des Alltags eingesetzt werden.
Was ist ein Algorithmus?
Inhaltsverzeichnis
Beim Rechnen wird es normalerweise als eine Folge von sequentiellen Anweisungen definiert, in denen einige Prozesse ausgeführt werden, um Antworten auf bestimmte Entscheidungen oder Bedürfnisse zu geben. In gleicher Weise werden Algorithmen häufig in der Logik und Mathematik verwendet und bilden die Grundlage für die Entwicklung von Benutzerhandbüchern, unter anderem illustrativen Broschüren. Eine der bedeutendsten in der Mathematik ist die, die dem Geometriker Euklid zugeschrieben wird, um den größten gemeinsamen Teiler von zwei positiven ganzen Zahlen zu erreichen, und die bekannte "Gaußsche Methode", um lineare Gleichungssysteme zu bestimmen.
In Bezug auf die Informatik kann diese Berechnung als die Folge von Richtlinien bezeichnet werden, die zur Bestimmung eines Problems unter Verwendung eines Computers zu befolgen sind.
Unter Algorithmusik wird daher eine Disziplin verstanden, die sich auf die Analyse und das Design von Algorithmen konzentriert. In Anbetracht des ersten wird versucht, Eigenschaften wie seine Richtigkeit und seine Wirksamkeit in Bezug auf Zeit und Raum zu untersuchen, um die Probleme zu verstehen, die algorithmisch gelöst werden können. Die zweite versucht, die bereits etablierten Paradigmen zu untersuchen, und schlägt neue Beispiele vor.
Der Algorithmus befindet sich im Zentrum des Rechenfortschritts und ist in den verschiedenen Bereichen wichtig. Auf diese Weise wäre es für so erfolgreiche Dienste wie Facebook und Google unmöglich, mit der Größe der Informationen umzugehen, ohne dass Algorithmen oder spezielle Datenstrukturen zusammenarbeiten. Im täglichen Leben werden jedoch auch Algorithmen verwendet. Ein Beispiel hierfür ist die Zündung des Ofens, da sie in dem Moment beginnt, in dem die Person in die Küche geht, sie beobachtet und ihr Ende hat, wenn sie ihn anzündet.
Eigenschaften eines Algorithmus
Obwohl der Algorithmus als geordnete und endliche Menge verschiedener Schritte bekannt ist, die zur Lösung eines Problems führen, wird gesagt, dass die Art dieser Schwierigkeiten je nach dem Kontext variiert, in dem sie gefunden werden. Auf diese Weise gibt es Probleme unter anderem chemisch, mathematisch, philosophisch. Somit kann gesagt werden, dass seine Natur variiert und seine Ausführung durch den Computer nicht notwendig ist. Über alles zuvor Erläuterte hinaus weisen Algorithmen Eigenschaften auf, die elementar sind, um zu bestimmen, was sie heute sind, und werden nachstehend erwähnt.
- Die in einem Algorithmus enthaltenen Richtlinien müssen spezifisch sein, um Verwirrung zu vermeiden. Dies bedeutet, dass die entsprechenden Anweisungen angemessen befolgt werden müssen. Im Gegenteil, die grafische Darstellung des Ablaufs, in den Sie sich einschreiben, erleichtert die Lösung nicht. richtig.
- Es muss in perfekter Definition sein und so oft wie möglich versuchen, es so oft wie nötig zu befolgen, um das gleiche Ergebnis zu erzielen. Wenn das Gegenteil der Fall ist, ist der Algorithmus nicht zuverlässig und dient nicht als Leitfaden bei der Entscheidungsfindung.
- Sie sind bekannt für ihre Besonderheit, endlich zu sein, sie enden normalerweise irgendwann und ergeben später am Ende jedes Schritts ein Ergebnis. Wenn sich der Algorithmus auf unbestimmte Zeit erstreckt und zu einem Anfangspunkt zurückkehrt, der niemals gelöst werden kann, liegt ein Paradoxon oder die bekannte „Schleife“ von Wiederholungen vor.
- Schließlich wird gesagt, dass die Lesbarkeit der Algorithmen das Schlüsselelement ist, denn wenn ihr Argument unverständlich ist, könnten die entsprechenden Anweisungen nicht befolgt werden, außerdem beinhaltet es einen direkten, klaren und lakonischen Wortlaut des in jedem gefundenen Textes.
Teile eines Algorithmus
Jede algorithmische Operation besteht aus drei verschiedenen Teilen, die der Grundstruktur eines Systems unterliegen. Diese sind:
- Eingabe: Wird auch als Header oder Startpunkt bezeichnet. Dies ist die anfängliche Anweisung, die die Entstehung des Algorithmus darstellt und dessen Lesen motiviert.
- Prozess: Auch Deklaration genannt, ist es die genaue Ausarbeitung, die der Algorithmus bietet, und es ist im Grunde der Stamm seiner Schlüssel für die Formulierung von Anweisungen.
- Ausgabe: In dieser letzten Phase werden die spezifischen Anweisungen vom Algorithmus festgelegt, z. B. seine Befehle oder Auflösungen.
Beispiele für Algorithmen
Übliche Beispiele für mathematische Berechnungen sind 2 + 3 = 5 für die Addition und 15-9 = 6 für die Subtraktion. Eine andere Möglichkeit, einfache Algorithmen zu visualisieren, sind Küchenrezepte, da sie einen bestimmten und geordneten Prozess beschreiben, zum Beispiel: „Zuerst müssen Sie einen halben Topf Wasser zum Erhitzen stellen, dann müssen Sie eine Prise Salz hinzufügen und schließlich Der Pfeffer wird geteilt, um die Samen und die Adern zu extrahieren. " In diesem Modell werden ein Anfang, ein Prozess und ein Ende dargestellt, die im Grunde die Algorithmen definieren.
Algorithmusarten
Unter den verschiedenen Arten von Algorithmen, die auf der ganzen Welt existieren, liegt der Schwerpunkt auf solchen, die nach einem Zeichensystem klassifiziert sind, und anderen nach ihrer Funktion. Der Algorithmus ist im Grunde die bekannteste Lösung zur Lösung eines bestimmten Problems. Entsprechend seinen Strategien und Funktionen gibt es verschiedene Arten davon, darunter dynamische, umgekehrte, Brute-Force-, opportunistische und Markierungslösungen, zufällig usw. Zusätzlich zu den oben genannten Algorithmen gibt es Tausende davon, die zur Lösung von Schwierigkeiten in jedem Bereich geeignet sind.
Entsprechend Ihrem Zeichensystem
Qualitativ und quantitativ befinden sich in dieser Kategorie.
- Qualitative Algorithmen zeichnen sich durch verbale Elemente aus. Ein Beispiel hierfür sind die Anweisungen oder die anerkannten "Schritt für Schritt", die mündlich erteilt werden, wie beispielsweise Rezepte für die Kochkunst oder Verfahren zur Durchführung manueller Arbeit.
- Quantitative Algorithmen sind das genaue Gegenteil von qualitativen Algorithmen, da bestimmte numerische Elemente vorhanden sind und die Mathematik zur Durchführung von Berechnungen verwendet wird, beispielsweise wenn die Quadratwurzel gefunden oder Gleichungen gelöst werden.
Innerhalb dieser Klassifikation gibt es auch rechnerische und nicht rechnerische Algorithmen. Die rechnerischen werden mittels eines Computers ausgeführt und zeichnen sich dadurch aus, dass sie so komplex sind, dass eine Maschine ausgeführt werden muss. Darüber hinaus handelt es sich um quantitative Algorithmen, die optimiert werden können. Nicht rechnerische sind nicht verpflichtet, mittels einer Maschine oder eines Computers ausgeführt zu werden. Ein klares Beispiel dafür ist die Programmierung eines Fernsehers.
Entsprechend seiner Funktion
Die folgenden befinden sich in dieser Klassifizierung.
1. Markierungsalgorithmus
Dies ist gekennzeichnet durch die Verwendung von Automatisierung zur sorgfältigen Festlegung von Preisen unter Berücksichtigung von Faktoren wie dem Benutzerverhalten. Dies wird auch als die Fähigkeit bezeichnet, Preise für die Abwertung von Komponenten automatisch zu bestimmen, um den Gewinn der Benutzer zu steigern. Verkäufer. Es hat eine sehr wichtige Rolle in der gemeinsamen Praxis der gespielten Airline - Industrie seit den frühen 1990er Jahren.
Der Markierungsalgorithmus zeichnet sich durch eine der gängigsten Praktiken in wettbewerbsintensiven Branchen aus und bezieht sich auf Reisebüros oder diese Online-Einrichtungen. Diese Art von Algorithmus kann extrem komplex oder relativ einfach werden, da in vielen Fällen festgestellt wird, dass sie mit der Kontinuität bestimmter Tests optimiert oder autodidaktisch sind. Darüber hinaus können Tagging-Algorithmen bei Kunden unpopulär werden, da Einzelpersonen sowohl Stabilität als auch Fairness schätzen.
2. Probabilistische Algorithmen
Dies sind diejenigen, bei denen die Art und Weise, wie die Ergebnisse erhalten werden, von den Wahrscheinlichkeiten abhängt. Diese werden allgemein als Zufallsalgorithmen bezeichnet.
In einigen Anwendungen ist die Handhabung dieser Art von Operation üblich, beispielsweise wenn das Verhalten eines vorhandenen oder entwickelten Systems über die Zeit simuliert wird, wodurch eine zufällige Lösung erhalten wird. Unter anderen Umständen ist das zu lösende Problem normalerweise deterministisch, es besteht jedoch die Möglichkeit, es in ein zufälliges Problem umzuwandeln, um es durch Anwendung des Wahrscheinlichkeitsalgorithmus zu lösen. Das Positive an den zufälligen ist, dass ihre Anwendung keine sehr ausgefeilten mathematischen Studien erfordert.
Darüber hinaus gibt es innerhalb dieser Gruppe drei Haupttypen, die als numerisch bekannt sind: Monte Carlo und Las Vegas.
- Numerische Algorithmen können ein ungefähres Ergebnis des Problems liefern und werden im Allgemeinen in der Technik angewendet.
- Monte-Carlo-Algorithmen können die richtige oder falsche Lösung liefern und eine gewisse Fehlerquote aufweisen.
- Las Vegas-Algorithmen zeichnen sich dadurch aus, dass sie niemals eine falsche Antwort hinterlassen. Sie finden die richtige Lösung oder informieren Sie einfach über den möglichen Fehler.
Dynamische Programmierung bezieht sich auf die Methode, mit der der Algorithmus die Ergebnisse berechnet. Manchmal hängen die Lösungen bestimmter Elemente, bei denen Probleme auftreten, von den Ergebnissen anderer kleinerer Probleme ab. Um diese zu lösen, müssen dieselben Werte neu berechnet werden, um die kleinsten Teilprobleme zu lösen. Dies kann jedoch zu verschwendeten Zyklen führen. Um dies zu beheben, kann eine dynamische Programmierung verwendet werden. In diesem Fall wird die Lösung jedes Teilproblems gespeichert, um denselben Wert zu verwenden, anstatt ihn mehrmals zu wiederholen.
3. Heuristische Algorithmen
Sie zeichnen sich durch das Finden von Lösungen aus und garantieren dennoch nicht, dass die besten Antworten gefunden werden. Aus diesem Grund können sie als ungefähre Algorithmen betrachtet werden. Diese können verwendet werden, wenn das Finden einer Lösung auf einem normalen Weg als unmöglich angesehen wird. Heuristiken bieten die Verwendungen, die unten erläutert werden. In der Planung werden sie verwendet, um Aktivitäten in kurzer Zeit zu planen, in der Konstruktion werden sie verwendet, um elektrische oder digitale Systeme abzugrenzen, und in der Simulation werden sie verwendet, um bestimmte Verfahren zu verifizieren.
4. Backtracking-Algorithmen
Sie sind als rekursive Strategien bekannt, die Probleme wie Puzzles, Labyrinthe oder ähnliche Teile lösen, bei denen eine gründliche Suche durchgeführt wird, um eine mögliche Lösung zu finden. Sein Name bezieht sich auf die Tatsache, dass er bei den Anfragen nach einem Ergebnis immer zum vorherigen Punkt zurückkehrt, um Alternativen testen zu können. Diese werden normalerweise widerrufen, um ihre Auswirkungen auf die Wirtschaft, die Märkte, die Preiskennzeichnung, bestimmte Operationen und sogar die Gesellschaft selbst zu beobachten.
5. Gieriger Algorithmus
Es ist als Zerstörer oder Naschkatzen bekannt und bei Optimierungsproblemen anwendbar. In jedem Schritt dieses Algorithmus wird eine logische und optimale Wahl getroffen, um die besten globalen Lösungen zu erhalten. Es muss jedoch berücksichtigt werden, dass nach einem Urteil absolut nichts mehr getan werden kann, um es in Zukunft zu korrigieren oder zu ändern. Diese Operation hat diesen Namen, da in jedem Schritt die beste Fraktion ausgewählt wird, die "schlucken" kann, ohne sich Gedanken darüber zu machen, was später passiert.
Eigenschaften eines Algorithmus
Verschiedene Autoren haben versucht, Algorithmen mithilfe mathematischer Modelle formal zu definieren. Diese Proben sind jedoch eng mit einer bestimmten Art von Informationen verbunden, die Zahlen, Symbole und einige Grafiken enthalten, während sie mit einer großen Menge an Datenverteilung arbeiten. Im Allgemeinen wird der gemeinsame Anteil jeder der Definitionen in den folgenden drei Eigenschaften zusammengefasst:
Problemstellung
Die Lösung von Problemen mittels eines Computers kann aus dem Prozess bestehen, in dem ein Problem beschrieben wird und ein Programm entwickelt werden kann, das es lösen kann. Dieser Prozess erfordert die Analyse des Problems, den Entwurf eines Algorithmus und seine Umwandlung in ein Programm sowie dessen Implementierung und Validierung. Die ersten beiden Schritte sind die komplexesten in diesem Prozess. Sobald Sie das Problem untersucht und einen Algorithmus erhalten haben, der es lösen kann, basiert Ihre Aufgabe in erster Linie darauf, es in die gewünschte Programmiersprache zu übersetzen.
Analyse der allgemeinen Lösung
Sobald das Problem definiert ist, ist es Zeit, Folgendes zu analysieren:
- Die Informationen der Tickets, die sie uns zur Verfügung stellen.
- Die gewünschten Ergebnisse.
- Der Arbeitsbereich, Aussagen oder andere notwendige Elemente.
Die Analyse von Algorithmen ist als der wichtigste Teil der umfassenderen Theorie der rechnerischen Komplexität bekannt, da sie theoretische Berechnungen für die Ressourcen liefert, die jeder Algorithmus zur Lösung eines bestimmten Rechenproblems benötigt. Bei der Durchführung einer theoretischen Untersuchung ist es üblich, die Komplikationen asymptotisch zu berechnen, um eine ausreichend große Eingabegröße zu erhalten. Zu diesem Zweck wird die asymptotische Obergrenze zusammen mit Theta- und Omega-Notationen verwendet, und es sollte beachtet werden, dass das nicht-asymptotische Maß computerisiert werden kann.
Präzise Effizienzmessungen sind für diejenigen, die die Algorithmen tatsächlich verwenden, sehr nützlich, da sie präziser sind und so die Zeit bestimmen können, die für die Ausführung benötigt wird. Für einige Personen wie Videospielentwickler kann die verborgene Konstante einen großen Unterschied zwischen Erfolg und Misserfolg bedeuten. Zeitauswertungen können davon abhängen, wie ein bestimmter Schritt definiert ist. Damit die Analyse sinnvoll ist, muss sichergestellt sein, dass die Zeit durch eine Konstante deutlich begrenzt ist.
Ausarbeitung des Algorithmus
Um die Entwicklung einer Operation durchzuführen, ist es wichtig, dass eine Reihe von Verfahren durchgeführt werden, um die Lösung eines Problems selbst zu gewährleisten. Zu Beginn muss eine vorherige Analyse der Schwierigkeit durchgeführt werden, und dies erfolgt durch eine Studie, die die wahre Funktionsweise des Problems lange vor der Ausführung eines Algorithmus demonstriert. Daher wird die Definition der Anforderungen bewertet. In diesem Schritt müssen Sie eine klare Vorstellung davon haben, welche Probleme zu lösen sind, sei es die Summe zweier Zahlen, die Reihenfolge einer Liste von Zahlen usw.
Später wird die jeweilige Identifizierung von Modulen ausgeführt, da die korrekte Implementierung von Algorithmen davon abhängt, um mögliche Lösungen für die oben genannten Anforderungen bereitzustellen.
Schließlich wird die Berechnung in einer Programmiersprache implementiert, die für einen Computer verständlich ist, so dass er die von ihm modellierten Anweisungen verstehen und somit ausführen kann, um das erwartete Ergebnis zu erzielen. In diesem letzten Verfahren kann man bereits von einem Programm sprechen, das aus einer Reihe von Anweisungen besteht, die nacheinander angeordnet sind und es schaffen, festgelegte Anforderungen zu lösen.
Es ist wichtig zu erwähnen, dass die Algorithmen in der sequentiellen Zeit ihre Funktion in einer diskretisierten Zeit ausführen und versuchen, die Sequenzen von Rechenzuständen in jeder Eingabe zu definieren, die als gültig angesehen wird. Im abstrakten Zustand sind diese Operationen unabhängige Elemente, und es wird angenommen, dass in ihnen die Strukturen der Urordnung unter dem Isomorphismus invariant werden können. Bei der begrenzten Erforschung werden die Übergänge von einem Zustand in einen anderen vollständig durch eine permanente und endliche Erklärung festgelegt, bei der zwischen einem Zustand und dem nächsten nur die begrenzte Anzahl von Begriffen des aktuellen Zustands berücksichtigt wird.
Es sollte auch nicht übersehen werden, dass Algorithmen normalerweise durch Programmiersprachen "Pseudocodes", die übliche Sprache und sogar die bekannten Flussdiagramme ausgedrückt werden. Ebenso ist es wichtig zu erwähnen, dass Algorithmen aufgrund ihrer Darstellung von Daten als Folgen von Bits eine grundlegende Rolle bei der Berechnung spielen. Aus einem anderen Blickwinkel wird ein Programm als der Algorithmus definiert, der dem Computer die spezifischen Schritte ausdrückt, die er ausführen muss, um bestimmte Aktivitäten angemessen auszuführen. Andererseits erleichtert das Erlernen des Schreibens von Pseudocode die Programmierung und wird daher später erläutert.
Programmiersprachen sind als formale oder künstliche Sprache bekannt, da sie genau definierte Grammatikregeln haben. Sie bieten dem Programmierer die Möglichkeit, eine Reihe von Anweisungen oder Folgen von Vorschriften in Form von Algorithmen zu diesem Zweck zu textualisieren Um die Kontrolle über das physische und logische Verhalten des Computers aufrechtzuerhalten, können auf diese Weise die verschiedenen Arten von Informationen erreicht werden. Dieser Satz von Vorschriften, die mit einer Programmiersprache geschrieben wurden, wird als Programm bezeichnet.
Programmiersprachen bestehen normalerweise aus einer Reihe von Symbolen sowie grammatikalischen und semantischen Regeln, die die aktuellen Strukturen der Sprache und ihre Bedeutung definieren. Aus einer anderen Perspektive umfassen Computersprachen auch Programmiersprachen. Ein klares Beispiel hierfür ist HTML, das bestimmte Anweisungen zur Ausführung des Inhalts verschiedener Dokumente erfüllt. Die Programmiersprache kann die genaue Spezifikation der Daten ermöglichen, die von einer bestimmten Software unter einer Vielzahl von Umständen betrieben werden müssen.
Auf der anderen Seite ist Pseudocode die algorithmische Beschreibungssprache, die die elementaren Konventionen einer realen Programmiersprache verwendet, aber für das menschliche Lesen ausgelegt ist, anstatt durch eine Maschine zu lesen, wobei die Unabhängigkeit von jeder anderen Art von Sprache erhalten bleibt Programmiersprache. Der Pseudocode ignoriert Details, die für das menschliche Verständnis des Algorithmus nicht wesentlich sind, wie Systemcodes, Variablendeklarationen und sogar einige Unterprogramme. Auf diese Weise versucht sich die Programmiersprache durch präzise Beschreibungen in natürlicher Sprache oder durch kompakte mathematische Notationen zu ergänzen.