Algorithmus, Algorithmik, Algorithmenkonstruktion - eine Begriffsklärung
Bevor man anfängt, Algorithmen zu konstruieren, dürfte es recht nützlich sein, erst einmal eine Begriffsklärung
aufzustellen: was bedeutet das - Algorithmik, was ist ein Algorithmus und wie wird er konstruiert?! Antwort auf
diese Fragen findet ihr im folgenden Text:
Algorithmik, Algorithmenkonstruktion
-
Bezeichnung für die grundlegende Teildisziplin der Informatik im Vorfeld der Programmierung von Software,
zugleich aber auch "Übungsfeld" für strategisches, taktisches, vernetztes und flexibles Denken!
Algorithmus - ein zentraler Begriff der Mathematik und Informatik
Zentraler Beriff der Informatik ist der Algorithmus, da jeder Programmerstellung in Form der Programmierung
des Programms die Erarbeitung eines Lösungsalgorithmus vorangeht. Somit ist jedes Programm ein in einer bestimmten
Progammiersprache notierter Algorithmus. Dabei entstand der Algorithmusbegriff im Schoße der Mathematik als
Schnittmenge der Informatik.
Klassischer (deterministischer) Algorithmus
- ist eine allgemeingültige, detaillierte, eindeutige und formalisiert ausführbare Vorschrift...
- zum schrittweisen Lösen einer lösbaren Aufgabenklasse...
- unter Zugrundelegung eines bestimmten Prozessortyps (Mensch, v. Neumann-Rechner, sequentiell, parallel)...
- mit endlichem Aufwand (an Ressourcen und Zeit)...
- nieder geschrieben als endlicher Text in einer vereinbarten Notierungsform.
Neben klassischen Algorithmen gibt es auch noch die stochastischen, genetischen Algorithmen, welche
durch Einbringen nichtdeterministischer, stochastischer und evolutionärer Elemente zum Lösen bestimmter Aufgabenklassen
wesentlich leistungsfähiger sind als klassische Algorithmen.
==> Kurzformel: "Was wie womit machen."
Stellt sich schlussendlich die Frage: was muss man mitbringen, um Algorithmen effektiv konstruieren zu können?!
- die Fähigkeit zum produktven Ausloten einer vorgefundenen oder selbst gefundenen Problemlösung;
- beim Lösen punktueller Probleme übergreifende großflächige Lösungen zumindest seitlich im Blickfeld haben;
- Schlüsselideen, Schlüssellösungen, Schlüsselalgorithmen als solche erkennen und produktiv verwerten;
- das Erkennen von Zusammenhängen und Analogien;
- das integrative Denken und die Fähigkeit zur Verallgemeinerung;
- die Fähigkeit zum Imaginieren und Kombinieren (Sinn für das "big picture" und für Details, wie im Schach
über mehrere Züge vorausdenken...)
- nichtlineares, verzweigtes, vernetztes Denken;
- Streben nach einfachstmöglichen "kompakten" Lösungen / Algorithmen...
... und noch vieles mehr. Es ist zu erkennen, dass man einen gewissen "Erfindergeist" für die effektive
Algorithmenkonstruktion benötigt und interdisziplinär denken muss. Sicher, man kann sich das Meiste dieser
Eigenschaften auch mit der Zeit erarbeiten, in den Grundzügen muss jedoch alles vorhanden sein.
Buchtipps
Algorithmen in C |
Sehr gutes Buch über diverse Algorithmen, notiert in der Programmiersprache C |
Algorithmen mit C |
Der Klassiker zu Algorithmen von O'Reilly |
Algorithmen und Datenstrukturen |
Viele verschiedene Algorithmen, die allgemeingültig, mitunter aber auch in Java notiert sind |
The Art of Computer Programming |
Was soll man sagen?! Wenn einen diese Trilogie nicht nachhaltig beeinflusst, dann sollte man es mit
der Informatik lieber ganz sein lassen (nur in Englisch verfügbar). |
|