Tell me more ×
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
2  
What does your intelligent agent have to do ? – user47857 Feb 16 '12 at 11:25
3  
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

3 Answers

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
4  
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

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

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

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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