Mindmap-Galerie Einführung in Algorithmen
Zusammenfassung des Einführungswissens zu Algorithmen, das das Konzept von Algorithmen, Algorithmusausdrücken, Algorithmuskomplexitätsanalyse, Algorithmusentwurfsschritte usw. einführt. Es ist die Grundlage für den Entwurf und die Analyse von Computeralgorithmen und legt den Grundstein für die Beherrschung verschiedener spezifischer Algorithmen durch Lernende Es handelt sich um wichtige Inhalte, die im Lernprozess von Algorithmen erlernt werden müssen.
Bearbeitet um 2024-03-02 22:28:38Einhundert Jahre Einsamkeit ist das Meisterwerk von Gabriel Garcia Marquez. Die Lektüre dieses Buches beginnt mit der Klärung der Beziehungen zwischen den Figuren. Im Mittelpunkt steht die Familie Buendía, deren Wohlstand und Niedergang, interne Beziehungen und politische Kämpfe, Selbstvermischung und Wiedergeburt im Laufe von hundert Jahren erzählt werden.
Einhundert Jahre Einsamkeit ist das Meisterwerk von Gabriel Garcia Marquez. Die Lektüre dieses Buches beginnt mit der Klärung der Beziehungen zwischen den Figuren. Im Mittelpunkt steht die Familie Buendía, deren Wohlstand und Niedergang, interne Beziehungen und politische Kämpfe, Selbstvermischung und Wiedergeburt im Laufe von hundert Jahren erzählt werden.
Projektmanagement ist der Prozess der Anwendung von Fachwissen, Fähigkeiten, Werkzeugen und Methoden auf die Projektaktivitäten, so dass das Projekt die festgelegten Anforderungen und Erwartungen im Rahmen der begrenzten Ressourcen erreichen oder übertreffen kann. Dieses Diagramm bietet einen umfassenden Überblick über die 8 Komponenten des Projektmanagementprozesses und kann als generische Vorlage verwendet werden.
Einhundert Jahre Einsamkeit ist das Meisterwerk von Gabriel Garcia Marquez. Die Lektüre dieses Buches beginnt mit der Klärung der Beziehungen zwischen den Figuren. Im Mittelpunkt steht die Familie Buendía, deren Wohlstand und Niedergang, interne Beziehungen und politische Kämpfe, Selbstvermischung und Wiedergeburt im Laufe von hundert Jahren erzählt werden.
Einhundert Jahre Einsamkeit ist das Meisterwerk von Gabriel Garcia Marquez. Die Lektüre dieses Buches beginnt mit der Klärung der Beziehungen zwischen den Figuren. Im Mittelpunkt steht die Familie Buendía, deren Wohlstand und Niedergang, interne Beziehungen und politische Kämpfe, Selbstvermischung und Wiedergeburt im Laufe von hundert Jahren erzählt werden.
Projektmanagement ist der Prozess der Anwendung von Fachwissen, Fähigkeiten, Werkzeugen und Methoden auf die Projektaktivitäten, so dass das Projekt die festgelegten Anforderungen und Erwartungen im Rahmen der begrenzten Ressourcen erreichen oder übertreffen kann. Dieses Diagramm bietet einen umfassenden Überblick über die 8 Komponenten des Projektmanagementprozesses und kann als generische Vorlage verwendet werden.
Einführung in Algorithmen
Algorithmuskonzept
Die grundlegende Bedeutung des Algorithmus
eine Methode zur Lösung eines bestimmten Problems
Definition des Algorithmus
informelle Beschreibung
Ein Algorithmus ist ein endlicher Satz wohlgeformter Regeln. Er spezifiziert eine Reihe von Operationen zur Lösung eines bestimmten Problemtyps. Es handelt sich um eine Folge von Anweisungen, die Eingabe, Ausgabe und Sicherheit erfüllen und Endlichkeit.
Eingabe: Es gibt null oder mehr externe Größen, die als Eingabe für den Algorithmus dienen.
Ausgabe: Der Algorithmus erzeugt mindestens eine Größe als Ausgabe.
Deterministisch: Jede Anweisung, aus der der Algorithmus besteht, ist klar und eindeutig.
Endlichkeit: Jede Anweisung im Algorithmus hat eine begrenzte Anzahl von Ausführungen und die Zeit zur Ausführung jeder Anweisung ist begrenzt.
Algorithmen und Programme
Ein Programm ist die spezifische Implementierung eines Algorithmus in einer bestimmten Programmiersprache.
Das Programm muss die Eigenschaft (4) des Algorithmus, also die Endlichkeit, nicht erfüllen, wie beispielsweise ein Betriebssystem.
Programm = Datenstruktur des Programmiersprachenalgorithmus
Der Umfang der Algorithmenforschung
Numerische Berechnungen
Lineare nichtlineare Gleichungen, Interpolation, Integraldifferential
nicht-numerische Berechnungen
Sortieren, Optimieren, Färben, Pfad, Durchqueren, maschinelles Lernen, Data Mining
Eigenschaften von Algorithmen
Richtigkeit
Wenn der Algorithmus für eine gegebene gültige Eingabe innerhalb einer begrenzten Zeit immer die richtige Antwort auf das Problem gibt, wird der Algorithmus zur Lösung des Problems als korrekt bezeichnet.
Dies bezieht sich hauptsächlich auf die mathematische Korrektheit des Algorithmus. Denn mathematische Korrektheit ist die Grundlage für Programmkorrektheit. Geben Sie bei der Formulierung eines Algorithmus einen mathematischen Beweis für seine Korrektheit.
Arbeitsbelastung
Gemessen an der Ausführungszeit
Hängt von der jeweiligen Ausführungsmaschine ab, nicht gut
Gemessen an der Anzahl der Grundoperationen
Unabhängig vom Computer, auf dem es ausgeführt wird
Raumnutzung
Der benötigte Platz außer dem Speicherplatz für Programme und Eingabedaten
Funktioniert direkt vor Ort: Der zusätzliche Speicherplatzbedarf ist eine konstante Funktion der Eingabegröße
Einfachheit
Der Algorithmus sollte intuitiv, klar und leicht zu lesen sein. Ein einfacher Algorithmus sollte sich leicht nachweisen lassen und die Arbeitsbelastung leicht analysieren.
Optimalität
Ein abstrakter Mechanismus zum Ausdruck von Algorithmen
Abstraktion auf Sprachebene
Programmiersprache auf hohem Niveau
1. Nahe an der algorithmischen Sprache, leicht zu erlernen und zu beherrschen
2. Stellen Sie Programmierern eine strukturierte Programmierumgebung und Tools zur Verfügung. Das Programm zeichnet sich durch gute Lesbarkeit, Wartbarkeit und hohe Zuverlässigkeit aus.
3. Verlässt sich nicht auf Maschinensprache, verfügt über eine gute Programmportabilität und eine hohe Wiederverwendbarkeit
4. Der Compiler kümmert sich um triviale Angelegenheiten, daher ist der Automatisierungsgrad hoch, der Entwicklungszyklus kurz und die Programmqualität hoch.
Abstraktion auf Datenebene
abstrakter Datentyp
Ein abstrakter Datentyp ist ein Datenmodell eines Algorithmus zusammen mit einer Reihe von Operationen, die auf dem Modell definiert sind und die Bausteine des Algorithmus bilden.
Vorteil
(1) Der Entwurf des Algorithmus auf oberster Ebene ist von der Implementierung auf unterster Ebene getrennt.
(2) Der Algorithmusentwurf ist vom Datenstrukturentwurf getrennt, sodass die Datenstruktur frei gewählt werden kann.
(3) Das Datenmodell und die Operationen am Modell sind in ADT vereinheitlicht, was den Kompromiss zwischen Platz- und Zeitverbrauch erleichtert;
(4) In abstrakten Datentypen ausgedrückte Algorithmen sind gut wartbar.
(5) Der Algorithmus ist natürlich modular;
(6) Bereitstellung effektiver Wege und Werkzeuge für eine schrittweise Verfeinerung und Modularisierung von oben nach unten;
(7) Der Algorithmus verfügt über eine klare Struktur und unterschiedliche Schichten, was den Nachweis der Algorithmuskorrektheit und die Komplexitätsanalyse erleichtert.
Beschreiben Sie den Algorithmus
Java
Programmstruktur
Art der Daten
Methode
abnormal
Java-Klassen
allgemeine Methode
Müllabfuhr
Rekursion
Schritte des Algorithmusentwurfs
Grundlegende Schritte des Algorithmusentwurfs
1. Problemstellung
2. Modellieren
3. Algorithmus-Design
4. Beweis der Algorithmuskorrektheit
5. Algorithmusimplementierung
6. Algorithmuskomplexitätsanalyse
7. Experimenteller Test
8. Dokumentation
Algorithmuskomplexitätsanalyse
Analysegründe
Damit ein Algorithmus eine bestimmte Eingabe erfolgreich verarbeiten kann, müssen der vom Algorithmus benötigte Speicherplatz und die benötigte Laufzeit geschätzt oder begrenzt werden
Kann die Effizienz verschiedener Algorithmen für dasselbe Problem quantitativ vergleichen
Komplexitätsklassifizierung
Polynomialer Zeitkomplexitätsalgorithmus
Exponentieller Zeitkomplexitätsalgorithmus
Experimentelle Tests und Analysen
Grund
Experimentieren Sie, um die Richtigkeit des Algorithmus zu überprüfen
Bestimmung der experimentellen Qualität eines Algorithmus
Bestimmen Sie die Rechengrenzen eines Algorithmus
Methode
Auswahlfrage: Was soll getestet werden, Zweck des Tests
Schätzen Sie die durchschnittliche asymptotische Laufzeit eines Algorithmus
Vergleichen Sie die Leistung ähnlicher Algorithmen für eine bestimmte Eingabe
Experimentieren Sie, um Parameter im Algorithmus zu bestimmen
Bei Approximationsalgorithmen: Wie nah sind die Testergebnisse am optimalen Wert?
Bestimmen Sie Metriken
Tatsächliche Laufzeit
Störfaktoren
Andere Programme, die auf dem Computer ausgeführt werden
Cache-Auswirkungen
Speicherauslastung
Testdaten generieren
ausreichende Menge
verschiedene Maßstäbe
unterschiedliche Verteilung
Programmieren und ausführen
Programmierung
Stellen Sie die Konsistenz auf Programmierebene sicher
laufen
Sorgen Sie für eine saubere Computerumgebung und reduzieren Sie Datenrauschen
Datenanalyse
Verhältnistest
Leistungstest
Dokumentation
Problembeschreibung und -analyse
Modellieren und Lösen
Algorithmusentwurf und Korrektheitsnachweisprozess
Algorithmuskomplexitätsanalyse
Aufzeichnung der Testergebnisse und Analysebericht
Eingabe-/Ausgabeanforderungen und Formatbeschreibung
Algorithmuskomplexitätsanalyse
Verwenden Sie T(N,I), um die zeitliche Komplexität von Algorithmus A auf einem abstrakten Computer darzustellen.
N: die Größe des zu lösenden Problems
DN: die Menge aller möglichen Eingaben der Größe N
P(DN): Wahrscheinlichkeitsverteilung von DN
I: Eingabe in den Algorithmus, I∈DN
Zeitkomplexitätsmaß
Symbolbeschreibung
Ö
Definition
mathematische formale Definition
O(g(n)) sind alle Funktionen mit g(n) als Obergrenze
symbolisches Verständnis
Arithmetische Regeln
Beweis für (1)
Ω
Definition
mathematische formale Definition
θ
Definition
mathematische formale Definition
Ö
Definition