Advertisement

Social problems:::AI solutions

Started by May 08, 2003 10:00 PM
3 comments, last by shinjuku 21 years, 4 months ago
Hi, this is my first post. I`m kind of new to AI, but rather experienced when it comes to c++ in general. I`ve been reading a lot on AI in general these past few months. But I`ve never really laid any of my thoughts down in code. I want to start a project. Something small that I can build on. But the problem is, most of the problems that I find people come up with to experiment with AI are rather predictable. In other words, the programmer knows what the AI is going to do(or what he wants it to do). He knows the definite end. The problem lies in finding a coding solution to make it happen. I`m having trouble coming up with an example problem. Can anyone help me out. My future plans include a civilization model, where the main focus would be conversation between inhabitants. Much like the NPC "gossip" model that was discussed quite a bit here. But thats a very larger project. I would like to start with something small. Also, I make sure coding is the VERY last step. I like to work everything out on paper first, that way there is much lest confusion when I start coding Thanks. btw, is this the largest AI discussion on the NET?
--------------------------------ore ga shindara...ja..sasukene~~!
There are also some usenet newsgroups:
http://groups.google.com/groups?group=comp.ai
-- Communicate freely - http://psi.affinix.com
Advertisement
You could start with a limited conversation. Suppose you were making a medievalish RPG with conversing NPCs, they would talk about a few select subjects such as the economy, recent deeds of importance and so forth. Someone already mentionned something like this once, the idea isn''t completely mine...

NPCs could be generated with a few starting properties: tendencies (ie, agreeable, disagreeable...) knowledge (knows about the rise in ale prices, the fight that broke out in the tavern last night and the rainy weather), people known (NPCs 4, 5 and 8) and interests/opinions (Annoyed at the ale prices, uninterested in the brawl, annoyed at the rain). If you''re feeling adventurous, you could include mood (being annoyed at so many things, he''d be in an irritated mood).

Discussions would take place between two NPCs, to keep it simple. One would start with the subject that interests them the most and things would pick up from there. Information would be limited, most likely, and not fluid (to keep the project simple; you could work on adding better text support later though), resulting in conversations like...

"Event last night: Bar brawl."
"Bah, not very interesting."
"Cousin got hurt in the fight."
(NPC 2 learns about NPC 1''s cousin and adds it to known stuff. Given his mood, however...)
"Could care less."
(NPC 1''s attitude towards NPC 2 changes negatively since their opinion/interest on this differ a lot)

It could be a start... not sure it made sense
Shinjuku, I am also in the early design phases of a civ simulation based on the "blackboard" AI stategy. You can read about blackboards in the articles section here on gamedev, if you are not already familiar with blackboards. There is also an article in the "Game AI Wisdom" book, if you have that. If this sounds like something that might be of interest to you and you would like to be involved just send me an email and we can discuss in greater detail what I am trying to accomplish. I think it will be an interesting project and hope to hear from you.

CodeJunkie
Thanks,CodeJunkie
quote: Original post by shinjuku
I want to start a project. Something small that I can build on. But the problem is, most of the problems that I find people come up with to experiment with AI are rather predictable. In other words, the programmer knows what the AI is going to do(or what he wants it to do). He knows the definite end. The problem lies in finding a coding solution to make it happen.


This is a very important aspect of AI research and definitely the goal of Game AI. We want our agent to be predicable... or at least the game designers do. We want to know that they''ll attack the human player if the story line demands it, rather than sit down and negotiate a peace settlement (although IMHO, that would be more interesting).

Furthermore, as computer scientists, we generally want to know that our solution works on a known problem with a known solution. If it does, then we have a basis for accepting it as a viable method for that solution and can compare it to other methods. From there, we can further relate different methods by how well they handle other problems. It''s difficult to produce a robust, broad solution from scratch, unless you can do it mathematically (...and I have seen this done... the solution for the optimal learning agent has been found and shown to be mathematically provable as optimal... unfortunately it''s not computationally tractable... although good approximations can be made to it).

As for actual suggested projects, start small with things that have been done to death. Since you''re an adept programmer, these should not prove difficult at the coding level and will provide a solid basis for understanding the many algorithmic tools available to an AI programmer. Implement a game tree... add pruning... consider scripted openings and endgames (there are many different games to apply this to). Write a pathfinding engine. Expand this to handle any form of planning (not just spatial). Implement a planning calculus to handle different domains. Change your planner to handle uncertainty. Write a finite state machine (for both Fully and Partially Observable domains, with and without uncertainty. Work out how these relate to planning agents. Try out a semantic network and compare this to using First Order Logic to describe a problem domain. Implement a knowledge base for an agent and functions to update the knowledge base given new evidence. Try doing this with uncertain information.

If you can achieve all of these things, then you''ll find it far easier to design, implement and tune a conversational agent (or set of agents). You''ll be amazed at how many of the above list of algorithmic tools will be needed for your agents.

Cheers,

Timkin

This topic is closed to new replies.

Advertisement