=== Hill-Climbers ===
{{Определение
|definition=
'''Hill-Climbers''' - Итеративный алгоритм, который начинается с произвольного решения проблемы, а затем пытается найти лучшее решение, постепенно изменяя его. Если изменения позволяют найти лучшее решение, алгоритм сохраняет его и повторяет и повторяет своё выполнение до тех пор, пока лучшие решения не могут быть найдены
}}
'''====Псевдокод====<pre>Discrete Space Hill-Climbers''' - Итеративный алгоритм, который начинается с произвольного решения проблемы, а затем пытается найти лучшее решение, постепенно изменяя его. Если изменения позволяют найти лучшее решение, алгоритм сохраняет его и повторяет и повторяет своё выполнение до тех пор, пока лучшие решения не могут быть найденыClimbing Algorithm currentNode = startNode;{| loop do|''Initialization:''||<math>P \leftarrow \emptyset </math><br/>'''Init_pop'''<math> L = NEIGHBORS(PcurrentNode)</math>;| nextEval = -INF;|''Main Loop:''||<math>x_1 \leftarrow </math>'''Rand_mem'''<math>(P)</math>,<math>x'_2 \leftarrow </math>'''Rand_mem'''<math>(P)</math><br/> nextNode = NULL;<math> for all x'_1 \leftarrow </math>'''Mutate'''<math>(P)</math>,<math>x_2 \leftarrow </math>'''Mutate'''<math>(P)</math><br/>in L ''' if'''<math>(H(x_1,x'_1)+HEVAL(x_2,x'_2) > H(x_1,x'_2nextEval)+H(x_2, nextNode = x'_1))</math><br/>;:'''Swap'''<math> nextEval = EVAL(x_1,x'_2)</math><br/>;''' if''' nextEval <math>f(x'_1) > f= EVAL(x_1currentNode)</math><br/>: <math>P \leftarrow P \cup x'_1 \setminus x_1< /math><br/>Return current node since no better neighbors exist'''if''' <math>f(x'_2) > f(x_2)</math><br/>: <math>P \leftarrow P \cup x'_2 \setminus x_2</math> return currentNode;|- currentNode = nextNode;|''Termination:''||'''return Best'''<math>(P)</mathpre>|}
== Задачи ==