AuK/Näherungsverfahren 1 SS10

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Java</language>
=Einführung=

=Heuristiken=

==Begriff==

==Springerproblem==


[[Bild:Sipabrei_Sprungmoeglichkeiten.gif|right|300px|frame|mögliche Züge für einen Springer]]
===Erläuterung des Springerproblems===

Vor mehr als 200 formulierte der Schweizer Mathematiker Leonhard Euler erstmals das Problem des ''Rösselsprungs'', auch Springerproblem genannt:

''"Gibts es für einen Springer einen Weg, der jedes Feld eines n x n-Schachbrettes genau einmal besucht?"''

Um diese Problem lösen zu können, muss bekannt sein, dass ein Springer eine Schachfigur ist, welche von ihrem aktuellem Feld <math>A(x_1 , y_1)</math> zu einem Feld <math>B(x_2 , y_2)</math> bewegt werden kann, wobei zu beachten ist das entweder 

<math>|x_1 - x_2| = 1</math> und <math>|y_1 - y_2| = 2</math>

oder

<math>|x_1 - x_2| = 2</math> und <math>|y_1 - y_2| = 1</math>   

für die Bewegungen des Springers gelten muss.

...

...

...

===Lösung mit Backtracking===

Der Naive Algorithmus...
[[Bild:Sipabrei_340px-Knight's_tour.svg.png|right|300px|Springerproblem]]
===Warnsdorff Heuristik=== 


Einen kurzen Algorithmus, zur Lösung des Springerpoblems mit der Warnsdorff Heuristik, finden Sie [[AuK/Näherungsverfahren_1_SS10/Java1|hier]].

=Lokale Suche=

===Verzweigen und Begrenzen===

===Greedy-Heuristiken===

===Hill climbing===

===Threshold accepting===
===Simulated annealing===
===Tabu-Suche===