Prolog application, Operating System

1. Problem Domain
You will be considering the Wumpus world introduced in Russell and Norvig (2009) Chapter 7. For this programming assignment you'll use Prolog's ability to do inference in order to write an agent that will make safe moves within its world.

2. Project Infrastructure
1) You will need to download and install your own version of SWI-Prolog. It is freely available for major operating systems. Major Linux distributions have copies available within their package system.

2) Download the following three files:
I attached these files.

3) The first two files comprise a simulator for the Wumpus world. The third is an empty agent skeleton program. Your assignment is to flesh out the details in my agent.pl

3. Running the code

Start SWI-Prolog:
pl
Load the world simulator:
?- [wumpus_world].
Load the agent:
?- [my_agent].
Run the agent:
?- evaluate_agent(1, Score, Time).
Correct to: "wumpus:evaluate_agent(1, Score, Time)"? y

If you read the output, you'll see the default agent just moves forward. It does this in the world shown in Russell and Norvig's Figure 7.2, which causes the agent's dead rather soon. (You use Ctrl+D to exit the programming environment.)

You will need to edit my agent.pl produce a more rational movement. To do this you will need to define an intelligent run_agent (Percept, Action). The percepts are provided as a list of five elements [Stench, Breeze, Glitter, Bump, Scream], where you receive a "yes" or a "no" in the respective position.

There is also an init_agent function which you can use for initialization.

The simulator knows the total state of the world, while your agent will know only what it senses through its perceptions. Initially the agent knows only the perceptions in position (1,1) and in order to acquire other information must be moved in other cells of the grid. Your agent must maintain its own state, containing all the information that gradually becomes available. The state will have to be update with the new perceptions every time an action is executed, and this information must be represented so as to permit reasoning (via interference) as to what operations are safe.

Posted Date: 3/30/2013 2:18:21 AM | Location : United States







Related Discussions:- Prolog application, Assignment Help, Ask Question on Prolog application, Get Answer, Expert's Help, Prolog application Discussions

Write discussion on Prolog application
Your posts are moderated
Related Questions

Second chance Algorithm When the page is chosen the reference bit is checked to see whether it has been referenced before. If that is the case after that it is given a second c

What are the different file operations? Create : - Space for the file in the file system update directory table. Write : - file name and data to be written is

Extend task 1 so that the requests are issued by the clients instead of the server. The server now do not use the "all_requests.dat" file. Instead every client thread reads from

The idea of reference counting is to maintain, for every object, the total number of references to that object, i.e. the number of "incoming" pointers. Whenever the number of refer

Q. Show that a few schedules are possible under the two-phase locking protocol however not possible under the timestamp protocol and vice versa. Answer: A schedule that is auth

What is a general graph? A tree structure where links can go from one branch to a node earlier in the similar branch or other branch, allowing cycles.

Q. Under what conditions do page faults occur? Explain the actions taken by the operating system when a page fault occurs. Answer: A page fault take places when an access to

Explain Components of conflict phase of dispatch latency The conflict phase of dispatch latency has two components 1. Preemption of any process running in the kernel. 2.

p0A B C D A B C D A B C D 2 0 12 2012 1000 1354 0632 0014