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).

(c) 2003 by RTC, www.linux-related.de
Dieses Dokument unterliegt der GNU Free Documentation License