I will first explain the problem. We start at an initial node S in the 2D plane and our goal is to reach a goal node G. In order to get to the end node we have to get past polygonal obstacles. Here is an image: A solution path is a list of vertices starting at S and ending at G that form a path from S to G. We can start by giving the hill-climbing algorithm a user-generated path through the polygonal obstacles. What I am struggling to understand is how we generate neighbours? Because a neighbour also has to be a path that starts at S and ends at G. We have to perturb the path in some way to generate a neighbour. Any ideas? I have googled this but nothing useful comes up. An answer has been given, but I would like to understand how to implement such a method. In my head it is going to be really difficult to change the path in such a way that it remains valid.

Full article content could not be extracted automatically. Read the original below.