Darwinbots Forum

Code center => Suggestions => Topic started by: Endy on September 18, 2005, 09:34:56 PM

Title: Veggie waste feeding
Post by: Endy on September 18, 2005, 09:34:56 PM
Could you keep the veggies from generating pwaste? I've been playing with my little veggie waste tie feeders and keep seeing their food vanish(some of them even killed themselves while waiting to eat :wacko: ).

Do vegs generate waste themselves?

Thanks Nums for massivly editing the new wiki.
Title: Veggie waste feeding
Post by: Numsgil on September 18, 2005, 09:51:58 PM
My pleasure.  Got sort of sick of it near the end though.

At some point I'm going to go through and redo all the waste code.  It's just not uniform at the moment.

I'll probably make it so that for every 1 nrg you spend, you generate 1 waste (or maybe every 10 nrg.  Anyway, something like that.  Maybe user definable).  And waste and pwaste will be/are being split between child and parent like nrg and body are.
Title: Veggie waste feeding
Post by: Endy on September 18, 2005, 10:09:03 PM
I know the feeling. Transfering page after page sucks. After awhile I just began rewriting them to make it more fun.

Do any of the new enzymes allow waste digestion? I think we mentioned it but not sure what actually came of it.
Title: Veggie waste feeding
Post by: Numsgil on September 18, 2005, 10:34:01 PM
I don't even remember.  I think I sort of have an idea of how I want to go about it, and I'll probably allow waste to be digested...
Title: Veggie waste feeding
Post by: Old Henk on September 19, 2005, 11:56:14 AM
Quote
I don't even remember.  I think I sort of have an idea of how I want to go about it, and I'll probably allow waste to be digested...

What's the point of waste then? I mean, they call it waste because it is just that: waste, useless...
Digestable waste will lead to make-your-own-waste-then-eat-it-bots, I think.
I am not in favor of digestable waste. But then again, I'm no programmer  :)

I hope you don't take my complaining too personal...  :P

Henk
Title: Veggie waste feeding
Post by: PurpleYouko on September 19, 2005, 12:27:38 PM
In the real world one creature's waste is another's lunch buffet. Even more so when you include plants into the equation.

What we need to do is have various different nutrient --> energy + waste  pathways that are possible and to some degree mutually exclusive so that no creature can eat its own waste.

The enzyme specialization methods discussed way back will take care of this by only allowing a small number of the total available enzymes to co-exist within any given bot.
Title: Veggie waste feeding
Post by: Greven on September 19, 2005, 12:32:51 PM
But how do you think something up, so a bot dont use its own waste from producing energy to produce new energy. Do you know what I mean? How are you sure on that only specific enzymes can co-exist?
Title: Veggie waste feeding
Post by: Numsgil on September 19, 2005, 01:36:53 PM
I'm thinking along the lines of PY.  You can digest your own waste, but by doing so you'll be less efficient at digesting real food.

I'm thinking something like:

Every nrg used up produces 1 waste.  10 waste can be digested into 1 nrg.  Permanent waste (remember that, right?) cant be digested or transmitted (as it is now) and is generated by waste that isn't expelled (which would be different.)

Like every 10 cycles 1% of the total waste in the bot becomes permanent waste.  This would mean that bots that eat waste would generate permanent waste faster, which might not be a good thing...
Title: Veggie waste feeding
Post by: PurpleYouko on September 19, 2005, 03:00:35 PM
Quote
But how do you think something up, so a bot dont use its own waste from producing energy to produce new energy. Do you know what I mean? How are you sure on that only specific enzymes can co-exist?

I don't want to go into too much of this again but just imagine the following. (this is a very simplified model)

There are two types of food X and Y

A bot eats some food of type X

The bot has 10 possible slots for enzymes to exist in.

Each type of enzyme has a specific efficiency factor for converting either X or Y into energy with a small percentage being converted to waste.

Each enzyme has a maximum efficiency rating of 9.9% food --> energy and 0.1% food --> a different nutrient (waste).

If a bot has 5 enzymes for X and 5 for Y then it will convert 49.5% of its X type food to energy. The rest will be stored as Waste, this waste being a different type of food according to some rule (ie. X becomes energy +Y).

Waste is able to contain both X and Y type food but while stored in the robot as Waste, it is not usable by the bot's metabolism.

When the bot shoots waste out, it is proportionally split between type X and Y (so it is actually a kind of food really) depending on what  is contained in the robot's "waste tank" or "intestines" if you like.

I figure it will be inefficient for any given bot to only have 5 enzymes for a particular type of food so from an evolutionary standpoint they will prefer to have 10 of one type so if he has 10 X enymes then Y type food is inedible.

Now to complicate things add another half dozen types of food source (including photosynthesis) and a bunch more enzyme slots.
Every bot will eat one thing and poop out another. Efficiencies will be different depending on the number of enzymes present. Enzme types are controlled by mutations.

Should make a pretty diverse ecosystem.
Title: Veggie waste feeding
Post by: Greven on September 19, 2005, 03:48:00 PM
But if waste is a kind of food, it will always be possible for a bot to reuse its own waste as food, and thereby having a unlimited energy source, unless you make the pathways of the metabolism extremely complex and long

Something like this: (?)
With CAPITAL letters being food, and lower case enzymes:
A + a --> B
B + b --> C
C + c --> D
D + d --> E
E + e --> F
F + f --> G
G + g --> H
H + h --> J
J +  j --> A
So it is: A <=> J
If a bot has 10 enzyme slots, with 10 food types, the bot will have a unlimited energy supply. Therefore there must be more food types than the bot has enzyme slots, or else it is possible for the bot to do the above.

I HAVE read every little bit in the sub Forum about metabolism etc., and I still have a hard time understanding the basic's of the system, and for me this you state here about enzyme slots contradicts what it says in the other threads!
Title: Veggie waste feeding
Post by: PurpleYouko on September 19, 2005, 04:04:30 PM
Quote
But if waste is a kind of food, it will always be possible for a bot to reuse its own waste as food, and thereby having a unlimited energy source, unless you make the pathways of the metabolism extremely complex and long

I don't see it that way at all

For one thing even if the bot's waste has undigested but digestable food in it then it would have to shoot itself with a waste shot before it could eat the stuff. Not too easy to accomplish.

Secondly, even if he did shoot himself then there would be a much lower proportion of food that is usable by that bot, contained in the poop. This means that after a couple of times round the loop of eat --> poop --> eat --> poop, it will cost more to feed on it than the energy that is returned.

If a shot containing food X is eaten by a specialist X-Eating bot then he will be able to use 99.9% of it. The other 1% will be converted to waste as food type Y. When he has saved up 100 waste he poops it out and a Y eating bot intercepts it. This bot uses 99% of it for energy and begins building up waste type Z etc. etc.

There is no way a bot can ever survive on its own waste.
Title: Veggie waste feeding
Post by: Numsgil on September 19, 2005, 04:10:20 PM
It's a simple matter of estblishing entropy in converting A to B.  Waste converts to energy at a significant loss.  Then even if you eat your own waste, you're not generating that much energy.

It's mathematically provable that as long as there is some loss from the waste->nrg->waste cycle, the amount of energy you can gain is finite.
Title: Veggie waste feeding
Post by: PurpleYouko on September 19, 2005, 04:30:34 PM
Quote
I HAVE read every little bit in the sub Forum about metabolism etc., and I still have a hard time understanding the basic's of the system, and for me this you state here about enzyme slots contradicts what it says in the other threads!
Yes it does contradict other posts that I and others have made.

I was oversimplifying the concept of enzyme efficiency to explain it in easier terms.

the reality would be that enzyme would be bit patterns of varying lengths, all held in a binary string. Enzymes would be abble to overlap in such a string so that it would be very hard to program them manually.

Example.

011010110 may be defined as an enzyme that digests food X at an efficiency of 7.3%

The following string

01101011010110

Contains two such enzymes. they overlap and share several digits. If these two are present in a robot's bit pattern then its overall efficiency for converting  food X to energy will be 14.6%

01101011010110

and

01101011010110

Suppose there is another enzyme that converts X to energy at 1.3% efficiency. Its pattern is

101101 (shorter = less efficient)

You can also find one of these in the bit pattern above

01101011010110

so the bot's total efficiency will be 15.9%

Make sense?
Title: Veggie waste feeding
Post by: Old Henk on September 20, 2005, 08:22:15 AM
Quote
It's mathematically provable that as long as there is some loss from the waste->nrg->waste cycle, the amount of energy you can gain is finite.
Ok, then I'm with it  :)

PY, can a bot 'see' its own enzymes?
Title: Veggie waste feeding
Post by: PurpleYouko on September 20, 2005, 08:55:34 AM
Quote
PY, can a bot 'see' its own enzymes?
I am not quite sure which way we are going to go just yet. I would say that the enzymes would not be visible from the DNA directly. (ie. the robot cannot directly read them) However they will be visible to the programmer.

My idea is to put the enzyme bit string at the start of the robot text file a bit like the def command now. The difference is that it will be subject to mutations and will also be saved along with the robot DNA file.

I think enzymes should work behind the scenes automatically and not be directly controllable.
Title: Veggie waste feeding
Post by: Welwordion on September 20, 2005, 03:19:16 PM
Just a thought but you also could implement an enzyme system that works as following:
To produce an enyzme you need a certain amount of energy lets say 5 and you can store up to 500 enzymes. Every enzyme enables you to convert 10 units per cycle of a certain type of food into energy.
However enzymes itself are related to a certain food type such 1 enzyme destroys
1 enzyme per cycle that is related to the food type they digest(without the gain of energy)

Such with 100 enzymes of type X that digest type Y, 10 Y that digest type Z
and 40 Z that digest X
after one round you only would have: 60X 0Y 30Z

and after 2 more rounds  0X 0Y 30Z
Title: Veggie waste feeding
Post by: Numsgil on September 20, 2005, 04:21:16 PM
We could do it that way.  In fat, there are like 100 different ways we could do it, and none of them would be necessarily more or less correct than another.  Which is what the problem is.  How do we decide?
Title: Veggie waste feeding
Post by: shvarz on September 20, 2005, 04:26:39 PM
That's easy - you ask me and then do as I say :)
Title: Veggie waste feeding
Post by: PurpleYouko on September 20, 2005, 04:28:29 PM
:P
Title: Veggie waste feeding
Post by: Numsgil on September 20, 2005, 06:03:03 PM
How about all methods up for consideration must be largely based on something else that's already been done or at least discussed in a scientific paper somewhere?  I can comb through some ALife and A Chemistry archives and see what I come up with.

This way we aren't just randomly comming up with solutions that sound good to us.

I'll go reread that link shvarz gave a few months back...
Title: Veggie waste feeding
Post by: Endy on September 20, 2005, 06:34:30 PM
Whenever we come to a consensus on all the methods, we could just hold a vote on which is the "best" out of them all.

With a waste to nrg conversion method ou could make a waste feeder of a sort. The waste TF would allow you to feed off other bots' waste and convert your own waste back into food. Would still be limited in nrg like PY said just because there's only so much waste to go around.

(Is it just my imagination or is this place really active all the sudden :) )
Title: Veggie waste feeding
Post by: Numsgil on September 20, 2005, 06:57:59 PM
No, its gearing up for the release of 2.4.  It's been sort of dead while I sat on my hands for the last few months.

Speaking of which, damn there are alot of bugs I need to fix!  At least I know how to fix them all.
Title: Veggie waste feeding
Post by: Botsareus on September 20, 2005, 10:04:24 PM
How about we just make the avrage method. (I did not say I know how to avrage them correctly)
Title: Veggie waste feeding
Post by: Numsgil on September 20, 2005, 10:12:28 PM
You mean with ties?  I think I've figured that out.  I have an equation anyway, I still have to check o see what it does.