Poll

Wich simulation way is best?

Simple mathematic
0 (0%)
Neural Network (Few Ones)
1 (50%)
Math and Neural Network
1 (50%)
Something Else
0 (0%)

Total Members Voted: 2

Author Topic: Behavior simulation  (Read 5707 times)

Offline Zelos

  • Bot Overlord
  • ****
  • Posts: 707
    • View Profile
Behavior simulation
« on: August 12, 2006, 02:48:38 PM »
I have been thinking on how to simulate behavior. So id like to see what you consider to be a good way both in speed and effiency

I think a NN of maybe 5 synapses with little math wouold be good. Just seems like a good one
When I have the eclipse cannon under my control there is nothing that can stop me from ruling the world. And I wont stop there. I will never stop conquering worlds through the universe. All the worlds in the universe will belong to me. All the species in on them will be my slaves. THE ENIRE UNIVERSE WILL BELONG TO ME AND EVERYTHING IN IT :evil: AND THERE IS NOTHING ANYONE OF you CAN DO TO STOP ME. HAHAHAHAHAHAHAHA

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
Behavior simulation
« Reply #1 on: August 13, 2006, 08:15:28 AM »
Mi ne komprenas!

I thought we were simulating behaviour with an 'if this do that' attitude!

Is there a previous topic where this question or behaviour has been discussed before?
If you try and take a cat apart to see how it works, the first thing you have in your hands is a non-working cat.
Douglas Adams

Offline Zelos

  • Bot Overlord
  • ****
  • Posts: 707
    • View Profile
Behavior simulation
« Reply #2 on: August 14, 2006, 05:55:24 AM »
me guasta hamborgesas

im tlaking about general,. not DB
"Im almost a human biang DAMN IT"
When I have the eclipse cannon under my control there is nothing that can stop me from ruling the world. And I wont stop there. I will never stop conquering worlds through the universe. All the worlds in the universe will belong to me. All the species in on them will be my slaves. THE ENIRE UNIVERSE WILL BELONG TO ME AND EVERYTHING IN IT :evil: AND THERE IS NOTHING ANYONE OF you CAN DO TO STOP ME. HAHAHAHAHAHAHAHA

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
Behavior simulation
« Reply #3 on: August 21, 2006, 09:27:22 AM »
I've just finished reading 'Animals in translation' by Temple Grandin and Catherine Johnson, a book that covers animal behaviour. I thought it was a good book and when I get it back, having lent it out already, I intend to try to model some of the behaviours that it talks about.

Off the top of my head I'd say that learned behaviour was going to be the hardest. The biggest problem I am going to have with DB is that it is going to be very hard for one bot to watch how two other bots behave with each other IMO.
Overall though it should be possible just using the basic maths functions DB already provides.

Probably the slowest part will probably be identifying another bot as a new bot or a bot that has been observed before.

Anyway, if you will forgive me using DB as my working model, I think basic maths would be enough. I don't think it's the behaviour that will cause problems, more the interpreting of data and what data to use to make inferences from.

2B brutally honest I have no idea what advantage a synapse or neural network would be so maths is the only answer I really understand!
« Last Edit: August 21, 2006, 09:29:16 AM by Jez »
If you try and take a cat apart to see how it works, the first thing you have in your hands is a non-working cat.
Douglas Adams

Offline Testlund

  • Bot God
  • *****
  • Posts: 1574
    • View Profile
Behavior simulation
« Reply #4 on: August 21, 2006, 09:42:23 AM »
Do you really want to do that in DB? I think this whould be more suitable for a program simulating more complex animals. You need an animal with a very well developed brain for it to be able to learn by watching others, something that doesn't fit into a single cellular life form. I think only mammals have this ability on our planet. Personally I like the realistic approach that DB has been having but that's my opinion.  
The internet is corrupt and controlled by criminally minded people.

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
Behavior simulation
« Reply #5 on: August 21, 2006, 11:06:25 AM »
Hmm, I suppose things like fish and ants don't have 'learned by watching others' behaviour. I'm guessing that they do have learnt behaviour though. I'd be quite happy just being able to ID other bots by more than species.
That bot is ID no.1436, seen it before, not grown much since, not many extra kills, yada yada blah de blah giving me a bot with another level of understanding about its surrounding.
Or perhaps better interpretation of eye's, I can only interpret the information from eye5, the other eye's only give me distance, I can't tell if what I see in eye4 is the same object I am seeing in eye5 for instance.

It's great if a bot is supposedly swimming around a slide under your microscope but then again I could moan about some of the higher functions that the bot has in that case.

I love the loosely defined boundaries of DB, they could be little spaceships, I can see it now;

Captain: "What idiot decided to install opaque windows everywhere except window 5?"

I guess I could mimic most behaviour with things as they stand, excepting some forms of learned behaviour. What I can't do is mimic behaviour of simple things like fish because they have two eyes and bots don't. I can't mimic shoal behaviour for instance only mass following behaviour.

Wow, that's an awful lot of evolution I'm missing because of the eyes. Just think of the instant improvements a pair of eyes could make!

Sorry if I went off topic!  
« Last Edit: August 21, 2006, 04:33:21 PM by Jez »
If you try and take a cat apart to see how it works, the first thing you have in your hands is a non-working cat.
Douglas Adams

Offline Elite

  • Bot Overlord
  • ****
  • Posts: 532
    • View Profile
Behavior simulation
« Reply #6 on: August 21, 2006, 01:47:08 PM »
You've actually raised quite a good point.

How about giving bots greater control over eyes, so that, for example, each refvar gets split into 1-9
So *.refeye9 would read back the eye reference of a bot in your eye9

I think that's quite a good idea actually, since, unlike ties, there's a fixed number of eyes

The tie ports were great, but not good for future development, IMO eye ports are much better

Might be a lot of work though

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
Behavior simulation
« Reply #7 on: August 21, 2006, 04:55:03 PM »
What I was thinking when I wrote that was more sort of two eyes and being able to choose the location that they are at. The difference between having eyes at side of head or on front of head style.
Then again I suppose you could choose how many eyes you wanted and pay for the privilige.

I just have this idea that more eyes would give more possible variation in behaviour so anything extra in the eye department would be great.
If you try and take a cat apart to see how it works, the first thing you have in your hands is a non-working cat.
Douglas Adams

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Behavior simulation
« Reply #8 on: August 21, 2006, 11:28:11 PM »
Quote from: Jez
Probably the slowest part will probably be identifying another bot as a new bot or a bot that has been observed before.

I think this is a weakness too.  What I'd like to see is each bot get a "serial number" that identifies it as a unique individual to other bots.  It should just be the current serial number that the engine uses internally, as you want a number that is totally independant of how many bots have been born before you.

There should also be a way to fool this same as any other identification system, albeit temporarily (you don't recognize me, I have a mustache on now cartoon cliche )

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Behavior simulation
« Reply #9 on: August 21, 2006, 11:33:49 PM »
Quote from: Elite
You've actually raised quite a good point.

How about giving bots greater control over eyes, so that, for example, each refvar gets split into 1-9
So *.refeye9 would read back the eye reference of a bot in your eye9

I think that's quite a good idea actually, since, unlike ties, there's a fixed number of eyes

The tie ports were great, but not good for future development, IMO eye ports are much better

Might be a lot of work though

Maybe something similar to what I'm doing with ties.  Have a command (switcheye or something) that changes which eye has the "focus", and as such changes the info read from the refvars during DNA execution.  Would be a little tricky to program, but not all that much.  You could change your "focus" from eye5 to eye3 and back again in a single cycle.

The only possible issue is while this increases potential complexity (which is good) it decreases reaction time that bots have.  Already bots can accomplish alot in a single cycle.  The few cycles it takes to turn and "lock" onto an opponent are very important to the fitness landscape, and we should be careful before we change it.

I'm in favor of this "switcheye" (or whatever we want to call it), but only moderately so.
« Last Edit: August 21, 2006, 11:35:31 PM by Numsgil »

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
Behavior simulation
« Reply #10 on: August 22, 2006, 07:57:50 AM »
Quote
The only possible issue is while this increases potential complexity (which is good) it decreases reaction time that bots have. Already bots can accomplish alot in a single cycle. The few cycles it takes to turn and "lock" onto an opponent are very important to the fitness landscape, and we should be careful before we change it.

I think any changes to eyes would have a dramatic affect on the survivability of the bots, eyes are very important in the scheme of evolution.

I was thinking about the picture here Eye placement and eyesight Where the eye's overlap the animal has depth perception, where they can see with only one eye they have no depth perception but can ID objects.

  There's a simple idea for you to program!  

That's what the bots are doing wrong isn't it! They have depth perception through the side eyes but can't ID. I think, (as a simpler change than above!) Bots should lose their ability to see distance, speed, maybe Ypos Xpos with their side eyes but gain the ability to ID objects with these eyes.

Serial numbers would come in useful then, quickly allowing you to see if eyes 1,2,3,4 are seeing the same bot, but that would give them a form of depth perception, after all any bot that fills all those eyes is probably not a million miles away!
Serial numbers also run into a problem if you think about how you are going to use them, you'd have to store information about the bot with each serial number in a memory location to access it later. That could quickly lead to a form of information overload and would probably be quite difficult to use well.

Hmm, OK, how about eye1,2,3,4 being seen as a single unit, the program works out the closest object being seen through those eyes and that is the only object you are allowed to ID? Maybe not.., the problem (for me) is how to replicate what the two eye's of mammals do using the 9 eyes of the bots.

I do so like the idea of changing eyes though!    

PS, just to keep up appearances of keeping to the topic...Bitozoa
« Last Edit: August 22, 2006, 08:02:23 AM by Jez »
If you try and take a cat apart to see how it works, the first thing you have in your hands is a non-working cat.
Douglas Adams

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Behavior simulation
« Reply #11 on: August 22, 2006, 01:19:49 PM »
If we remove the distance part of eye5 and require bots to triangulate the distance to other bots, these are the consequences as I see them.

1.  We would need to add some trig functions.  Perhaps map the usual 0-360 degrees and -1 to 1 of regular sin and cosine to 0-1256 and -1000 to 1000.

2.  Things get more complex for the bots.  Specifically finding the distance to the target becomes rather difficult.  Finding the velocity even more so.

3.  It may not be possible to tell the difference between a really big bot and a very close bot unless you form a multibot and use steroscopic vision.

4.  Alot of old bots simply wouldn't work.

There's probably a way to address #4 using codules of some sort (basically preprogram some eye functions for older bots to use.

I would be willing to make this fundamental change as part of the feature set for 3.0, since upgrading the numbers gives us a legitimate reason not to support older bots   But it would be a huge change.
« Last Edit: August 22, 2006, 01:22:48 PM by Numsgil »

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
Behavior simulation
« Reply #12 on: August 22, 2006, 03:10:43 PM »
I wasn't thinking of removing the ability for depth perception in eye5 but these points:

Quote
2. Things get more complex for the bots. Specifically finding the distance to the target becomes rather difficult. Finding the velocity even more so.
3. It may not be possible to tell the difference between a really big bot and a very close bot unless you form a multibot and use stereoscopic vision.

Sound good!  

Seeing as the eyes don't overlap I imagine they would have a bit of a problem triangulating a targets position. Cool idea to force a two cell structure to get depth perception though.

You are right, anything done to change the way eye's work is going to have a major impact on the old bots. It's a pretty major game change as well really.

I will write a short summary of the ideas from this thread and put a poll in the suggestions forum to see if peeps are interested in changing the way eyes work.
If you try and take a cat apart to see how it works, the first thing you have in your hands is a non-working cat.
Douglas Adams

Offline abyaly

  • Bot Destroyer
  • ***
  • Posts: 363
    • View Profile
Behavior simulation
« Reply #13 on: September 06, 2006, 12:30:35 AM »
With more available input for the bots, you can have a wider variety of behaviors. Reducing the input will reduce the range of results. Taking parts away from the bots might give you a more realistic simulation, but I think giving the bots more info will give you a more interesting one.
I want bots to be able to ID other bots and know how far away they are ^^
« Last Edit: September 06, 2006, 12:31:06 AM by abyaly »
Lancre operated on the feudal system, which was to say, everyone feuded all
the time and handed on the fight to their descendants.
        -- (Terry Pratchett, Carpe Jugulum)