AI project

Hi
I came one day across reading a book of michael moore’s and I thought a bit about politics (this is very likely when you read his books) and that the politicans always seem to be realizing their ideas without testing them before. This is somehow strange isn’t it? Medicines are tested, all stuff is tested, why not political issues. Ok you can say we’ve got a democracy, but people sometimes also don’t know what’s good for them, so you’d like to test the issue before you go to give your vote.
Ok! - most of you are asking now what does this guy want?
I wan’t to make a AI simulation (what else :wink: ), where you got a bunch of citicens (around 1000? 10 000? …)with some very good AI, so they can remember their political favors, what other citicens have told them, what other citicens think and stuff. And then you should be able to have a political system (maybe a democracy - most people live todays in those) with laws and maybe a government made out of citicens … but maybe I’m already talking and talking and everybody’s just going to select Option 2…

So what do you think?

Arne

PS: If you select Option 3 I’d like to know where I can find that wheel :wink:

Edit: grammar

In my opinion, politics is tried out, in polls just as you have done here. Attempts are made to change and shape those opinions.

Any software which could form opinions, with all the manifestations of political, religious, and social context, and then reflect on additional information and decide actions , such as voting or revolting, for example, based on their positions would be the very apex of recreating human intelligence.

There is a long way to go in just understanding words within context, much less forming opinions from it.

In reality, political system modeling software would not be very helpful. People change very little, and the accumulative results are fairly predictable.

On the other hand, some of the things you talk about, remembering and generating behavior based on that history seems to me to be the level of general purpose useful AI that is capable of being developed and drawn upon by games. I don’t know if that has already been done or not, I haven’t seen any mention of it.

rd

I think there is no need to build a parser for a real language like english or so - but maybe the citicens could speak java ? mmh - at least there wouldn’t be any parsing problems :wink: Yeah - but forming opinions is going to be hard I think. You just can’t save in the citicens head something like I like this party, cause normally people have reasons for what they think.

PS: don’t think I’m insane having such ideas - it’s just maybe there are more such “insane” people out there who have similiar ideas :slight_smile:

Voted ‘won’t work’, but it was a close call (between that and ‘cool’). Actually the term ‘AI project’ is a bit misleading I think, since this would basically be a multi-agent social simulation.

Similar to the Sims, probably, but with a somewhat bigger picture.

Language in this context is an interesting problem. I was thinking for quite some time that it should be possible to create a simple sign language which could be understood pretty well by an AI as well as by human players.

It should be so simple as to make it possible for the AI to pass a Turing test in which this symbolic language is used as the only means of communication (thus, VERY simple).

[quote]Voted ‘won’t work’, but it was a close call (between that and ‘cool’). Actually the term ‘AI project’ is a bit misleading I think, since this would basically be a multi-agent social simulation.
[/quote]
mmh… this would probably have been clearer, but I wasn’t sure how to call it so…

Yeah, nice comparison - I haven’t thought on that yet. But I think in Sims the characters always speak about who/what they like and you always see the topic, but not the content. And they also don’t tell things other characters have told them. And I think this is actually the crucial difference.

Yeah this should be for sure I think. And this will be probably also the most difficult part.

Arne

Isn’t this basically what SimCity tries to simulate when you have happy citizens etc, that’s all based on taxes and number of police stations etc.

As far as I understand SimCity, it is a very aggregated simulation - the underlying ‘social entities’ are probably tiles which integrate general parameters such as traffic density.

This, on the other hand, should simulate social individuals where the complete behaviours emerges from the cognitive apparatus of these individuals. In other words, whereas in SimCity a ‘happiness factor’ may be a simple function of [traffic density, crime rate, pollution, …], in this case it should be the integrated happiness of all individuals which is again based on the satisfaction of individual desires, ambitions, basic needs, etc.

Ideally, it would be nice to create an AI entity which works believably in large-scale social simulations (‘cities’, ‘nations’) as well as in one-on-one dialogs with human players as well as in small-scale simulations à la The Sims.

The code for such an entity could then be constantly improved by the community and employed by individual developers for their specific purposes (war games, large-scale economy simulation, Sims-like social interaction, RPG NPCs, …). This would, of course, require a decent abstraction of the world state, i.e. it should be possible to ‘plug in’ different world stati into the AI (or vice versa, depending on your perspective).

Yeah simcity is also an example, but it (probably) misses one important thing, the citicens always think the way they were designed to think.
In Sims (its probably the same with simcity) you have some factors defined from the beginning(in sims this is having friends, … , in simcity this the number of police stations, the taxes…) to calculate the happiness from, but the characters don’t make criteria for the happiness themselves. And then these people do things depending on their happiness (in sims this is also derivated from how tired they are, if they need to go to the bathroom…) So they make as an example in simcity demonstrations, but actually without wanting to achieve something. (I’m guessing here, but it’s probably like it) It simply bugs the player, that there is a demonstration, so he decreases the taxes, to make the people happier and it works.

I know a game (Stronghold Crusader), where the happiness of the citicens depends on how much food, how many statues you have and how high the taxes are. In this game it is possible to give the people no food, have little taxes, and many statues, to make the citicens happy. Just imagine it!! It’s so unrealistic.
With a proper AI, where the people decide themselves what’s important, you can’t do this, because the food will get more important as long there’s not enough food.

One important thing would be to have citicens that are able to make their own criteria for happiness. As an example this doesn’t necessarily have to be money, friends might be more important to some of the citicens. So every citicen thinks differently to get happy.

Yep exactly - to write a renderer for it would be insane, because it would take very long and probably wouldn’t help the AI very much - saying if a renderer is needed (as to show the world in 3D) it should be done after some AI already exists. And to see the behavior of the people a list, that contains all the citicens will do fine. Then by selecting one out of the list you should be able to see their ideas, their resulting happines…

The language of the citicens should be able to be executed, to be reacted by the citicens, and to be saved in the citicens mind. I thought of a language for the citicens. It looks like this:

fred.walk(slow,tomorrow);

this sentence can be executed like this (There are three Hashtables for containing the People, the Actions, the Parameters):

people.get(“fred”).do(actions.get(“walk”),[parameters.get(“slow”), parameters.get(“tomorrow”));

If the sentence contains a time specification it will be executed at that time, if not it will be executed imidiately. Or it is put in an execution queue.

For reacting to the sentence, there has to be a Hashtable in every Citicen, that contains people, actions and parameters and links them to other people, actions and parameters. So could be fred be linked to fat and funny and walk to move and meet …

To remember the sentence it could simply be put into some sort of list.

Hmm … Have I forgot something?

In a way, simulating social intelligence and actually having social intelligence is the same - if we can create a reasonably social AI entity, we would be hard-pressed to proof that there is a significant difference to any of us.

It’s interesting how hard it is to explain why a ‘The Sims’ character or the population of SimCity are not ‘sufficient’ in the sense of this discussion. For example, making a difference between a ‘real’ emotion, need or desire and a numeric value may not be fair - after all, many of our own emotions are probably rather simple numeric properties of which we keep track and which we adjust according to simple feedback loops.

The thing is: Can there be social and emotional behaviour without intelligence?

As for the language, the primary question should be which level of complexity it should cover. It is easy to conceive a language which allows for indirect speech, questions, complex tenses, expression of emotional states, etc. The problem is the more complex a language is, the harder it will be to provide the matching ‘intelligent’ AI.

On the other hand, below a certain level of complexity it’s not much fun. For example, in a diplomacy game, it should be possible to discuss with an NPC an alliance against another NPC like this: ‘Would you be interested in joining my battle against X, if I would back your conquest of island Y?’ - ‘Yes, but only if you refrain from fighting Z for the next ten turns’ - and so on…

The problem is that for each conceivable discussion it is quite easy to set up a language and AI, but it is very hard to do so for discussions we haven’t anticipated.

Next to that the AI must be able to calculate the consequences, because the effects will also change from time to time. As in your example the island has a specific size, amount of resources, strategical location… so even such an “easy” question (because it follows a specific sheme), can be made very complex.

Edit: Actually there would be also the way to have some “dumb” citicens, that form a “not so dumb” country entity, so the AI is not directly made for the country, but more or less out of the people living in it, but it could get also very “dumb”, because there may not be enough variations in the people.

I have no problem with the sims not having real emotions, but they are not able to tell others their emotions, their interest, their believs. But I think this is very crucial to form a society.

well then give them accessor methods :wink:


public double getPoliticalStance() {
   return HATE_BUSH;
}
public Color getFavoriteColor() {
   return favColor;
}