Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Chapter4 Notebook: Beyond Classical Search - 3e #446

Merged
merged 7 commits into from
May 15, 2019

Conversation

jsuyash1514
Copy link
Contributor

@jsuyash1514 jsuyash1514 commented Mar 2, 2019

This PR adds a notebook for the 4th chapter.
It contains demonstrations of local search algorithms using 8 queens problem, searching in partially observable and non-deterministic environments, and online search algorithms.

Solves #444
@samagra14 Please have a look.

Copy link
Collaborator

@samagra14 samagra14 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should also try to demonstrate the local search strategies graphically by plotting the value of heuristic functions as well as cost functions with the passage of various iterations. This will help the students in getting a feel of how the random initial state gets converged to the solution state.

"import aima.core.agent.Action;\n",
"import aima.core.environment.nqueens.NQueensBoard;\n",
"import aima.core.environment.nqueens.NQueensFunctions;\n",
"import aima.core.environment.nqueens.QueenAction;\n",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Try reducing the number of import statements. For eg: The above three statements can be reduced to:

import aima.core.environment.nqueens.*;

This makes the code look cleaner and a lot less intimidating.

"This algorithm keeps track of $k$ states rather than just one. It begins with $k$ randomly generated states. At each step, all the successors of all $k$ states are generated. If anyone is a goal then algorithm halts. Otherwise, it selects the $k$ best successors from the complete list and repeats. \n",
"\n",
"Note that the two algorithms i.e. random-restart search and local beam search are quite different. In a random restart search, each search process runs independently of the others. _In a local beam, useful information is passed among the parallel search threads_. In effect, the algorithm quickly abandons unfruitful searches and moves its resources to where the most progress has been made. "
]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should have examples demonstrating the use of simulated annealing and beam search on concrete problems. Take a look at this: http://www.cs.cmu.edu/afs/cs/academic/class/46927-f97/slides/Lec3/sld023.htm

"\n",
"Here the agent's percept does not suffice to pin down the exact state. Therefore, if the agent is one of the several possible states, then an action may lead to one of the several possible outcomes. The key concept required for solving the partially observable problems is the **belief state**, representing the agent's current belief state about the possible physical states it might be in, given the sequence of action and percept upto that point.\n",
"\n",
"When the agent's percept provide _no information at all_, we have what is called a **sensorless** problem. To solve sensorless problems, we search in the space of belief states rather than physical states. Notice that, in belief state space the problem is _fully observable_ because the agent always knows its own belief state. Furthermore, the solution(if any) is always a sequence of actions."
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should add an example here where we search on the space of possible belief states.

@samagra14
Copy link
Collaborator

These objectives can be targeted in the future. For now, this PR looks good.

@samagra14 samagra14 merged commit 28a5090 into aimacode:AIMA3e May 15, 2019
@jsuyash1514 jsuyash1514 deleted the NonClassicalSearch branch June 1, 2019 13:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants