Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am currently doing my Honours in Computer Science and taking Artificial Intelligence as a subject. As part of completing the subject I have to develop my own basic intelligent agent.

I have yet to wrap my head around what I actually have to do for this project. I am not the most technically gifted programmer and I have no idea of what to do or where to start

Could someone please point me in the right direction as to where to start learning how to develop an Intelligent Agent as well as any possible idea's of what to actually do for a project? The requirement for the project are very vague as we were not told how technical or big the project should be. (Hopefully not too big as I have another 8 subjects who require projects as well).

Any VB.net references would be appreciated as well. (I know it's not the best language to develop an IA with, but due to my time constraints this is the programming language I 'feel' most comfortable with).

share|improve this question

closed as off topic by jmo21, Bart van Ingen Schenau, Bill, Robert Harvey, Yusubov May 30 '13 at 18:02

Questions on Programmers Stack Exchange are expected to relate to software development within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

2  
What does your intelligent agent have to do ? –  user47857 Feb 16 '12 at 11:25
5  
Talk to your lecturer/supervisor now. Explain your concerns. They should point you in the right direction (if they're any good). –  ChrisF Feb 16 '12 at 11:47
    
This is a problem for "Computationl Science" scicomp.stackexchange.com –  Spirit Feb 16 '12 at 13:06
    
Already tried speaking to her.Got a response "you're doing honours know so go do some research". She doesn't specify what the agent is supposed to do, which makes it harder. I am totally unsure of the actual scope and how complex the intelligent agent should be. It seems that we can pretty much do anything we please as long as we build some sort of intelligent agent that does something.I think its also safe to assume that I should not make it too complex as this is just a semester coarse. Thanx for all the help –  Jan van Niekerk Feb 17 '12 at 8:22

4 Answers 4

First of all, don't worry about the AI part. A program that uses artificial intelligence is just like any other program. Start thinking in terms of input and output. For an intelligent agent that means that you are perceiving your environment and you can call actions on the environment. An example could be that you are writing a movie recommandation engine:

What is your input? (or: perception)

  • A list of movies that your user hasn't seen yet,
  • A list of movies that your user has already seen together with his rating (could be a simple like/dislike)
  • A list of all other users, which themselves have a list of rated movies

What is your output? (or: action)

  • A list of movies ordered by what your program thinks that your user might like.

Your action, will cause the environment to change, e.g. your user will probably watch the movie, though this will not happen immediately nor is it guaranteed.

Internally you can then use the algorithms presented in the class, you could start simple and use a k-nearest neighbors. In this case you want to find users that have similar interests as your current user and then recommend him a movie that he hasn't seen yet but his close neighbors liked.

Now, how do you define close? Well, this is where feature vectors come in and really, this is the only challenge that you'll face. Once you have the feature vectors it doesn't matter which algorithm you're applying. In our case you could represent a user by his ratings. So if there are only 5 movies in the system, and your user liked Movie A and B, disliked C and hasn't seen D and E his feature vector is [1,1,-1,0,0]. Calculate the distance to all other users and then find a movie he hasn't seen yet (D and E) and calculate the score for those movies amongst his k nearest peers. The recommendation would be the movie that scores highest.

share|improve this answer
    
sebastiangeiger: what do recommender systems have to do here ? I see almost no connection with the topic. –  user47857 Feb 16 '12 at 11:50
5  
It just serves as an example for an intelligent agent and to illustrate my point that there's no magic involved. –  sebastiangeiger Feb 16 '12 at 11:55

Most basic inteligent agent to develop, would be simple BDI (belief-desire-intention) agent. You basically have a set of base beliefs (predicates that might be true or false) which describe observed state of environment, you have inference rules leading to inferred beliefs. You have desires which are description of desired state of beliefs. You have set of actions, which are function transforming one belief set into another, modifying some of them. A plan is a chain of actions. Intention is action (plan) which agent chooses to execute.

share|improve this answer
    
A definition of intelligent agent is extremely wide and BDI is just one of approaches to implement agents. And definitely not the basic one. –  dzieciou Nov 12 '12 at 20:21

I had an agents-based course in the academia and "An Introduction to MultiAgent Systems" was my textbook. This is the author's page about the current version of the book, in case you want to have a look.

share|improve this answer

The other answers have explained the "intelligent" part.

Now, about the agent :

You first need an environment, or world, in which your agent lives. In practice, it's an object or a function looping endlessly. It has two main tasks :

  • The execution of every agent

Agents have a main function containing all steps needed to take a decision based on informations. That's the actual "intelligent" part. This function needs to run on every world step as long as your agent is active.

  • Computing perceptions and sending them to the agents

Perceptions are all informations your agent needs to take a decision. For exemple, an intelligence trying to do facial recognition might get a portion of pixels to analyze, and return its guess ("looks like Bruce !").

The environment will then display all data from all agents, which would be your result.

share|improve this answer

protected by maple_shaft May 30 '13 at 14:09

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.