www.wikidata.de-de.nina.az
Bergsteigeralgorithmus engl hill climbing ist ein einfaches heuristisches Optimierungsverfahren Es besteht dabei eine Analogie zu einem Bergsteiger der im dichten Nebel den Gipfel sucht und dazu seine Schritte moglichst steil bergauf lenkt Geht es nach allen Richtungen nur noch nach unten ist er auf einem Gipfel angekommen An einem lokalen Maximum bricht der Algorithmus ab ohne das globale Maximum gefunden zu haben Ebenso wird im Bergsteigeralgorithmus eine potenzielle Losung fur ein gegebenes Problem Schritt fur Schritt verbessert Dabei wird jeweils eine lokale Veranderung durchgefuhrt und nur ubernommen wenn der entstandene Losungskandidat besser geeignet ist Das Verfahren endet wenn vom aktuellen Punkt aus keine Verbesserung mehr moglich ist analog ist der Bergsteiger auf einem Hugel angekommen Der gefundene Punkt ist im besten Fall das globale Maximum Bergspitze oder nur ein lokales Nebengipfel Der Bergsteigeralgorithmus kann als simpler evolutionarer Algorithmus aufgefasst werden wobei es nur ein Individuum keine Rekombination und eine Mutations Operation gibt Fur das Problem der lokalen Maxima gibt es folgende Ansatze Eine ganze Population von Bergsteigern beginnt an verschiedenen Startpunkten sodass verschiedene Maxima erklommen werden Ein lokales Maximum wird durch eine einmalige starke Mutation verlassen durch abermaliges Bergsteigen kann dann ein anderes Maximum gefunden werden Eine ausfuhrliche Implementierung eines Bergsteigeralgorithmus ist im Artikel Downhill Simplex Verfahren beschrieben Inhaltsverzeichnis 1 Pseudocode Beispiel 2 Fragestellungen 2 1 Schrittweite 2 2 Selektionsstrategie 2 3 Individuenanzahl 2 4 Abbruchkriterium 3 LiteraturPseudocode Beispiel BearbeitenAlgo Hill Climbing bestEval INF currentNode startNode bestNode None for MAX times if EVAL currentNode gt bestEval bestEval EVAL currentNode bestNode currentNode L NEIGHBORS currentNode tempMaxEval INF for all x in L if EVAL x gt tempMaxEval currentNode x tempMaxEval EVAL x return currentNodeFragestellungen BearbeitenSchrittweite Bearbeiten Existiert eine Abstandsfunktion auf der Definitionsmenge einer Funktion so stellt sich oft die Frage wie gross einer der Schritte von einer Stelle zur nachsten sein soll zum Beispiel immer gleich gross zufallig gross wird angewendet zur Vermeidung des Festlaufens in lokalen Extrema kleiner werdend wenn der Algorithmus erkennt dass das Optimum in der Nahe sein muss und sich auf dieses konzentrieren muss grosser werdend wenn die Richtung erfolgversprechend erscheint abhangig vom IndividuumSelektionsstrategie Bearbeiten Wann soll die Selektion auf einzelne Bergsteiger angewandt werden nach jedem Schritt nach jedem Bergauf Schritt wenn ein lokales Maximum erreicht wurde erst nach grosseren Zeitraumen um das Uberwinden von Durststrecken zu ermoglichen Individuenanzahl Bearbeiten Wie viele Individuen sollen verwendet werden um eine gute Losung zu erreichen Abbruchkriterium Bearbeiten Wie viele Generationen soll es geben bis die Suche nach besseren Losungen aufgegeben wird Literatur BearbeitenStuart Russel Peter Norvig Artificial Intelligence A Modern Approach Third Edition Prentice Hall Upper Saddle River NJ 2010 ISBN 978 0 13 604259 4 S 122 125 Abgerufen von https de wikipedia org w index php title Bergsteigeralgorithmus amp oldid 229824136