Void solveint sx int sy msysx drop crumb if sx dx sy

Info icon This preview shows pages 48–52. Sign up to view the full content.

View Full Document Right Arrow Icon
void solve(int sx, int sy) { m[sy][sx] = ‘#’; // drop crumb if (sx == dx && sy == dy) solveable = true; // done! if (m[sy-1][sx] == ' ‘) solve(sx,sy-1); if (m[sy+1][sx] == ' ‘) solve(sx,sy+1); if (m[sy][sx-1] == ' ‘) solve(sx-1,sy); if (m[sy][sx+1] == ' ‘) solve(sx+1,sy); } # And on it goes… 3 2 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
Image of page 48

Info icon This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
The Eight Queens Problem Problem : Place  8  queens on the board so  no queen can attack any other queen. Question : How many positions do we  potentially have to test? Answer : Picking a square for each piece  gives us the bound of 64 choose 8: 64! / ((64-8)!8!)   Which equals: To solve this algorithm, we  must rely upon “ pruning ” of the  solution space! 
Image of page 49
The Eight Queens Problem Algorithm: 1. For each column start by placing the queen in the top row.  2. Check to see if the board is safe. 3. If the board is safe and the eighth queen was placed the problem is  solved. 4. If the board is safe but it wasn’t the eighth queen, recursively apply the  algorithm to the next column. 5. If the board is not safe then pick up the queen and move it to the next  row in the current column,  goto 2.  6. If there are no more rows left to try in the current column remove the  queen and return to the previous column. 
Image of page 50

Info icon This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
Col =  1 Col =  0 The Eight Queens Problem Cur Col 1. For each column start by placing the queen in the  top row.  1. Check to see if the board is safe. 1. If the board is safe and the eighth queen was  placed then we’re done!  1. If the board is safe but it wasn’t the eighth  queen, recursively apply the algorithm to the next  column. 1. If the board is not safe then pick up the queen  and move it to the next row in the current  column, goto 2.  1. If there are no more rows left to try in the current  column remove the queen and return to the  previous column.  Oh-oh!  We can’t place  the sixth queen!   Backtrack! 1. For each column start by placing the queen in the  top row.  1. Check to see if the board is safe. 1. If the board is safe and the eighth queen was  placed then we’re done!  1. If the board is safe but it wasn’t the eighth  queen, recursively apply the algorithm to the next  column. 1. If the board is not safe then pick up the queen  and move it to the next row in the current  column, goto 2.  1. If there are no more rows left to try in the current  column remove the queen and return to the  previous column.  Cur Col 1. For each column start by placing the queen in the  top row.  1. Check to see if the board is safe.
Image of page 51
Image of page 52
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}

What students are saying

  • Left Quote Icon

    As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.

    Student Picture

    Kiran Temple University Fox School of Business ‘17, Course Hero Intern

  • Left Quote Icon

    I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.

    Student Picture

    Dana University of Pennsylvania ‘17, Course Hero Intern

  • Left Quote Icon

    The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.

    Student Picture

    Jill Tulane University ‘16, Course Hero Intern