====== Problemlösungsmethoden (PLM) ====== //Ein Problem ist halb gelöst, wenn es klar formuliert ist. (John Dewey 1859-1952)// Im Leben allgemein und besonders in der Informatik geht es meistens darum, ein gegebenes Problem in kleinere, überschaubarere Einheiten zu zerlegen, um damit die Komplexität des ursprünglichen Problems zu reduzieren. In allen Fällen wird ein Problem durch **weitere Zerlegung in Einzelschritte „einfacher“** gemacht.\\ So verschieden wir Menschen sind, so verschieden sind auch die individuellen Denkansätze dafür, an ein neues (komplexes) Problem heranzugehen. Es gibt daher keine „beste“ Vorgangsweise zur Lösung eines bestimmten Problems. \\ \\ Allen Vorgangsweisen gemeinsam ist jedoch:\\ * Wir müssen ein **Problem** erst für uns selbst geeignet **„strukturieren“**, um es lösen zu können. \\ Es gibt eine eigene Wissenschaft, die sich in abstrakter Weise mit dem Lösen von Problemen beschäftigt: Die **Heuristik** ist die Wissenschaft vom Problemlösen (früher u.a.: Wissenschaft von der „Erfindungskunst“). Die Hauptaufgabe der Heuristik ist es, Strategien für Problemlösungen zu ergründen. Die Heuristik ist universeller Natur und nicht nur auf den Bereich der Informatik oder Algorithmik beschränkt. Allerdings sind gerade in der Informatik allgemeine heuristische Verfahren intensiv untersucht und praxisnah umgesetzt worden. \\ \\ ===== Wie löst man jetzt Probleme? ===== Um ein Problem zu lösen müssen wir in **vier Phasen** vorgehen: - Das Problem verstehen - Einen Plan der Lösung ausdenken - Den Plan der Lösung ausführen - Die erhaltene Lösung prüfen Die schwierigste Phase dabei ist die Phase 2 „Einen Plan der Lösung ausdenken“. Die Anwendung der „richtige(n)“ Problemlösungsmethode(n) führt zur Lösung. Aber welche Problemlösungsmethode(n) sind es??? **Problemlösungsmethode** wird hier synonym für die Begriffe Problemlösungs * -strategie * -verfahren * -prinzip * -methode * -technik * Lösungsfindeverfahren * usw. verwendet ohne Unterscheidung bezüglich der Größe oder Bedeutung. \\ \\ ===== Beispiele für Problemlösungsmethoden ===== Es besteht kein Anspruch auf Vollständigkeit: * **Analogie finden**: Sich an einem bereits gelösten Problem orientieren * **Spezialisieren**: Man versucht zuerst einen oder mehrere Spezialfälle zu lösen * **Generalisieren**: Verallgemeinern; man versucht zuerst ein allgemeineres Problem zu lösen * **Symmetrie** finden * **Variation**: Die Bedingungen in verschiedene Richtungen verändern * **Extremfälle** betrachten * **Zerlegung und Zusammensetzung**: Modularisierung, Teile und herrsche * **Vorwärtsarbeiten**, Top-Down-Strategie * **Rückwärtsarbeiten**, Bottom-Up-Strategie * **Deduktion**: Folgerndes/Schließendes Vorgehen vom Allgemeinen zum Speziellen * **Induktion**: Folgerndes/Schließendes Vorgehen vom Speziellen zum Allgemeinen * **Reductio ad absurdum**: Unmögliches ableiten * **Rekursion** finden * **Visuelle Repräsentation**: Anschauung, Veranschaulichung, Grafische Darstellung, Modell * **Muster** finden * **Blickwinkel ändern**: Schlüsselfragen, Komplement suchen, Versuch und Erfolg * **Vereinfachen des Problems**: Ein einfacheres analoges Problem lösen * **Vollständige Enumeration**: System. Betrachtung aller Möglichkeiten, Fallunterscheidung * **Reihenfolgen** betrachten * **Unterbestimmtheit / Überbestimmtheit** betrachten * **Textgleichungen** \\ \\ ===== Wie sucht man die Lösung? ===== ==== Verstehe die Aufgabe ==== Man muss die Aufgabenstellung verstehen. \\ \\ Was ist unbekannt? Was ist gegeben? Wie lautet die Bedingung? \\ Ist die Bedingung ausreichend, um die Unbekannt zu bestimmen? Zerlegung der Bedingung in verschiedene Bereiche? \\ Zeichnung einer Figur! Einführung passender Bezeichnungen! ==== Ausdenken eines Planes ==== Man sucht den Zusammenhang zwischen den Daten und der Unbekannten. Man muss vielleicht Hilfsaufgaben betrachten, wenn ein unmittelbarer Zusammenhang nicht gefunden werden kann. \\ Man erhält schließlich einen Plan für eine/die Lösung. * Ist die Aufgabenstellung bekannt? * oder kommt sie in einer ähnlichen Form woanders vor? * Kann man das Unbekannt "bekannt" machen? * Können einem bekannte Methoden zur richtigen Lösung führen? * Kann man die Aufgabe anders formulieren bzw. umschreiben? * ... ==== Ausführen des Planes ==== Wenn man führt einen Plan aus und kontrolliert jeden Schritt, um die Richtigkeit der Ausführung zu beweisen. ==== Rückschau ==== Prüfung der erhaltenen Lösung. Das Ergebnis sollte kontrolliert werden können, ev. sogar bewiesen. Des weiteren ist diese Methode auch für andere Aufgaben brauchbar.