I just took another go on Dembski's and Marks's Horizontal No Free Lunch Theorem, as KairosFocus referred to it at UncommonDescent:

On a Wrong Remark in a Paper of Robert J. Marks II and William A Dembski

Quote

Abstract: In their 2010 paper The Search for a Search - Measuring the Information Cost of Higher Level Search, the authors William A. Dembski and Robert J. Marks II present as one of two results their so-called Horizontal No Free Lunch Theorem. One of the consequences of this theorem is their remark: If no information about a search exists, so that the underlying measure is uniform, then, on average, any other assumed measure will result in negative active information, thereby rendering the search performance worse than random search. This is quite surprising, as one would expect in the tradition of the No Free Lunch theorem that the performances are equally good (or bad). Using only very basic elements of probability theory, this essay shows that their remark is wrong - as is their theorem.

I just took another go on Dembski's and Marks's Horizontal No Free Lunch Theorem, as KairosFocus referred to it at UncommonDescent:

On a Wrong Remark in a Paper of Robert J. Marks II and William A Dembski

Quote

Abstract: In their 2010 paper The Search for a Search - Measuring the Information Cost of Higher Level Search, the authors William A. Dembski and Robert J. Marks II present as one of two results their so-called Horizontal No Free Lunch Theorem. One of the consequences of this theorem is their remark: If no information about a search exists, so that the underlying measure is uniform, then, on average, any other assumed measure will result in negative active information, thereby rendering the search performance worse than random search. This is quite surprising, as one would expect in the tradition of the No Free Lunch theorem that the performances are equally good (or bad). Using only very basic elements of probability theory, this essay shows that their remark is wrong - as is their theorem.

I was just informed by Winston Ewert that there is a new erratum at the paper A Search for a Search which should address (some of) my points. Here is my first reaction. And does the Journal of Advanced Computational Intelligence and Intelligent Informatics know?

I just took another go on Dembski's and Marks's Horizontal No Free Lunch Theorem, as KairosFocus referred to it at UncommonDescent:

On a Wrong Remark in a Paper of Robert J. Marks II and William A Dembski

Quote

Abstract: In their 2010 paper The Search for a Search - Measuring the Information Cost of Higher Level Search, the authors William A. Dembski and Robert J. Marks II present as one of two results their so-called Horizontal No Free Lunch Theorem. One of the consequences of this theorem is their remark: If no information about a search exists, so that the underlying measure is uniform, then, on average, any other assumed measure will result in negative active information, thereby rendering the search performance worse than random search. This is quite surprising, as one would expect in the tradition of the No Free Lunch theorem that the performances are equally good (or bad). Using only very basic elements of probability theory, this essay shows that their remark is wrong - as is their theorem.

I was just informed by Winston Ewert that there is a new erratum at the paper A Search for a Search which should address (some of) my points. Here is my first reaction. And does the Journal of Advanced Computational Intelligence and Intelligent Informatics know?

Regarding ear stoppers, it wouldn't surprise me if one of these days that IDiots are found to have evolved a flap inside their ears that automatically and quickly closes at the first sign of any sort of reality trying to get in. Of course if such a flap were found the IDiots would claim that it's the result of intelligent design by their designer/creator, who did it so that they won't be plagued with hearing realistic challenges to their unsupported beliefs and assertions. :)

--------------Think not that I am come to send peace on earth: I came not to send peace, but a sword. - Jesus in Matthew 10:34

But those mine enemies, which would not that I should reign over them, bring hither, and slay them before me. -Jesus in Luke 19:27

I just took another go on Dembski's and Marks's Horizontal No Free Lunch Theorem, as KairosFocus referred to it at UncommonDescent:

On a Wrong Remark in a Paper of Robert J. Marks II and William A Dembski

Quote

Abstract: In their 2010 paper The Search for a Search - Measuring the Information Cost of Higher Level Search, the authors William A. Dembski and Robert J. Marks II present as one of two results their so-called Horizontal No Free Lunch Theorem. One of the consequences of this theorem is their remark: If no information about a search exists, so that the underlying measure is uniform, then, on average, any other assumed measure will result in negative active information, thereby rendering the search performance worse than random search. This is quite surprising, as one would expect in the tradition of the No Free Lunch theorem that the performances are equally good (or bad). Using only very basic elements of probability theory, this essay shows that their remark is wrong - as is their theorem.

I was just informed by Winston Ewert that there is a new erratum at the paper A Search for a Search which should address (some of) my points. Here is my first reaction. And does the Journal of Advanced Computational Intelligence and Intelligent Informatics know?

Regarding ear stoppers, it wouldn't surprise me if one of these days that IDiots are found to have evolved a flap inside their ears that automatically and quickly closes at the first sign of any sort of reality trying to get in. Of course if such a flap were found the IDiots would claim that it's the result of intelligent design by their designer/creator, who did it so that they won't be plagued with hearing realistic challenges to their unsupported beliefs and assertions. :)

I exchanged emails on this subject with Bob Marks back in 2010! Even before the paper was published in the first place, I had pointed out this problem - in private and in public. In Sep 2010, Bob Marks informed me that has a policy not to engage in correspondence with anyone publically critical of him or his work, as independent of the validity or invalidity of the details of the exchange, these things are best discussed thoroughly before any public pronouncements. So he willfully chose to ignore every unpleasant critic, on his own peril.

I just took another go on Dembski's and Marks's Horizontal No Free Lunch Theorem, as KairosFocus referred to it at UncommonDescent:

On a Wrong Remark in a Paper of Robert J. Marks II and William A Dembski

Quote

Abstract: In their 2010 paper The Search for a Search - Measuring the Information Cost of Higher Level Search, the authors William A. Dembski and Robert J. Marks II present as one of two results their so-called Horizontal No Free Lunch Theorem. One of the consequences of this theorem is their remark: If no information about a search exists, so that the underlying measure is uniform, then, on average, any other assumed measure will result in negative active information, thereby rendering the search performance worse than random search. This is quite surprising, as one would expect in the tradition of the No Free Lunch theorem that the performances are equally good (or bad). Using only very basic elements of probability theory, this essay shows that their remark is wrong - as is their theorem.

I was just informed by Winston Ewert that there is a new erratum at the paper A Search for a Search which should address (some of) my points. Here is my first reaction. And does the Journal of Advanced Computational Intelligence and Intelligent Informatics know?

Regarding ear stoppers, it wouldn't surprise me if one of these days that IDiots are found to have evolved a flap inside their ears that automatically and quickly closes at the first sign of any sort of reality trying to get in. Of course if such a flap were found the IDiots would claim that it's the result of intelligent design by their designer/creator, who did it so that they won't be plagued with hearing realistic challenges to their unsupported beliefs and assertions. :)

I exchanged emails on this subject with Bob Marks back in 2010! Even before the paper was published in the first place, I had pointed out this problem - in private and in public. In Sep 2010, Bob Marks informed me that has a policy not to engage in correspondence with anyone publically critical of him or his work, as independent of the validity or invalidity of the details of the exchange, these things are best discussed thoroughly before any public pronouncements. So he willfully chose to ignore every unpleasant critic, on his own peril.

Ignoring critics, whether in public or in private, is a skill that IDiots have thoroughly mastered.

I'm sure that Marks and the other IDiots never even consider that their assertions are or could be perilous, because to them being wrong just doesn't compute. They want to dictate and preach, not listen, discuss, learn, or be corrected.

From what I've seen Marks seems to be one of the most isolated IDiots (and willingly so).

--------------Think not that I am come to send peace on earth: I came not to send peace, but a sword. - Jesus in Matthew 10:34

But those mine enemies, which would not that I should reign over them, bring hither, and slay them before me. -Jesus in Luke 19:27

While I was looking up use of PyQtGraph in PySide, I ran across an example program in an unfamiliar language. A little probing led me to the website for Julia, a new (2013 FOSS release) programming language for scientific and technical computing. The language is dynamic, but uses just-in-time (JIT) compiler technology to achieve benchmark tests within 2x the time C code takes. There's an IDE, Julia Studio, that I am finding useful. Emacs and the command line work just fine as well.

As an initial exercise, I ported my "minimal weasel" program from Python to Julia. The result is a 46-line program. This is slightly longer than the Python version because I'm using a line each for the Julia convention of closing a block with "end". Python uses indentation to indicate block closure.

There are a few noteworthy differences from Python. First, Julia is a base-1 language. Arrays start with index 1. Second, Julia's dynamic variable creation requires that a type be provided for declaration of empty arrays. Julia can figure out the type itself for an array that is assigned at least one element, but the programmer has to give a type in order to start with no elements at all. The type system in Julia is apparently one big reason why the developers are able to obtain the good benchmark results. Third, while I have not taken advantage of it here, Julia's syntax allows for expressions to be closer to mathematical notation. "1 + 2x" in Julia is legal, where in Python one would have to have, "1 + 2*x".

I'm planning on porting a more complex program to Julia to see how it performs compared to PyPy.

My MacBook Pro suffered a mainboard failure some time ago, and I just bit the bullet to get it fixed. That was the development machine for my Avida work. I thought that too much bit rot might have rendered things uncompilable on Linux anymore, but I'm happy to say my initial pessimism was unfounded, and I now have a running Linux executable.

I should note just what I'm talking about here. Back in 2009, I presented a paper with my colleagues at Michigan State University titled, Cockroaches, drunkards, and climbers: Modeling the evolution of simple movement strategies using digital organisms. I'm working toward taking the next steps in this research. To do that, I needed to get my tools up to date. Where I have the computing power now is in an 8-core desktop running Ubuntu Linux, so I was aiming to get my code compiled there. That's happened just this week. I've been running tests to make sure I'm getting results as I did back in 2009. And the newly-compiled system is, I'm pleased to say, showing the evolution of gradient-ascent effective methods just as the runs in 2009 did.

As a recap, I'm using a version of Avida that I extended to permit movement of organisms in the Avida world grid. Avida's normal mode of operation puts an organism in a specific cell in the world grid, and there it stays for its entire life. I wrote Avida CPU instructions for "tumble", "move", and "sense-diff-facing". The "tumble" instruction simply rotates the organism to a new random facing in its grid cell. A facing is always toward another adjacent grid cell, so for an interior grid cell there are eight legal facings, five legal facings on an edge, and three at each corner grid cell. The "move" instruction puts the organism executing it into the cell that it currently faces. (If there is another organism in that cell, they swap cells.) The "sense-diff-facing" instruction puts the difference in the amount of a specified resource between the current grid cell and the faced grid cell into one of the Avida registers. The run is seeded with the default classic Avida organism. This is an organism whose only functionality is to make a copy of itself. None of the codes associated with movement is included in the initial organism. Mutation is the only way those instructions can enter the genome at the outset.

The environment is defined with a positively rewarding resource, with a peak in the resource set off-center in the world grid. This was done so that the peak resource would not be on an edge or diagonal of the world grid.

The run also includes a 2% cost to the organism for each move instruction that it executes.

The updates are set to permit about three Avida instructions to be executed per-organism per-update. The runs go on for two million updates. The total population is capped at 200 Avidians, so the world grid has about 2% of its grid cells filled with Avidians at any time.

During the run, each grid cell has a count of the number of visits it receives from Avidians. I output these visit counts every 5000 updates. I then plot a surface map of the difference in visits between each update and the one prior, which shows in aggregate the movement of the population for 5000 updates. It becomes very clear when a gradient-ascent effective method, or "climber", becomes the dominant class of organism in the population. I have a few plots to show the transition from "drunkard" dominant to "climber" dominant, and from "climber" to a more efficient "climber".

The results show the evolution of a useful algorithm from scratch. Part of what I did in the work at MSU was in collaboration with Jacob Walker to use the evolved organisms as robotic controllers, which we did with both a Roomba Create robot and a Lego Mindstorms robot. We used a point light source to create a "resource peak" that the robot displayed phototropic behavior toward with the "climber" organisms loaded.

This isn't about adjusting weights of some existing model. This is about evolution creating algorithms that did not exist before, based on nothing more than having a resource to exploit, the ability to take a step, to change direction randomly, and to sense differences in the local environment. (Very local, just to the extent of where a move instruction would take the organism were it executed, and only so far as to give a relative difference, not an absolute number.) There's no reward system other than "organisms do better if they go where resources are more abundant". There's nothing in the system to prefer inclusion of the new instructions, and there's actually a cost associated with executing the "move" instruction. And yet, time and again, this system can produce effective methods in the provably optimal class of gradient ascent algorithms.

--------------"But it's disturbing to think someone actually thinks creationism -- having put it's hand on the hot stove every day for the last 400 years -- will get a different result tomorrow." -- midwifetoad

There's a section on "future work" in the paper. What I'm hoping to do next is to move on to building environments with both a positive and a negative "resource", so that the organisms will need to evolve both appetitive and aversive responses. If that comes together quickly enough, a colleague has pointed out a conference submission deadline at the end of March.

While I did stress that the genomic content of the initial organism, and thus the Avidian population, could only acquire the new instructions via mutation, once an ancestral organism had one or more of those, they would be passed down to offspring with the usual frequency. And any effects they had on the organism could yield a difference in fitness, driving the usual selective processes. I think saying mutation was the only operative process goes too far. Not including the instructions in any way in the initial organism simply eliminates the possibility that I as experimenter set up a particular outcome by whatever arrangement of movement-relevant instructions might be set in that initial organism.

One question I was asked at SSCI in 2009 was why use Avida and not something like Echo. And while the efficient answer is that when one is at the Devolab, one is usually going to be using Avida, I did survey the available software at the time for applicability to the question I was looking at. The software systems allowing for agent movement all treated movement as a primitive property, often requiring some fixed movement strategy be defined for the agents a priori. I was interested in looking at what evolution could do given just the sort of capabilities underlying movement as seen in organisms like E. coli, but without specifying how those capabilities were used. And that kind of question was not what the other software packages could address.

While I did stress that the genomic content of the initial organism, and thus the Avidian population, could only acquire the new instructions via mutation, once an ancestral organism had one or more of those, they would be passed down to offspring with the usual frequency. And any effects they had on the organism could yield a difference in fitness, driving the usual selective processes. I think saying mutation was the only operative process goes too far. Not including the instructions in any way in the initial organism simply eliminates the possibility that I as experimenter set up a particular outcome by whatever arrangement of movement-relevant instructions might be set in that initial organism.

One question I was asked at SSCI in 2009 was why use Avida and not something like Echo. And while the efficient answer is that when one is at the Devolab, one is usually going to be using Avida, I did survey the available software at the time for applicability to the question I was looking at. The software systems allowing for agent movement all treated movement as a primitive property, often requiring some fixed movement strategy be defined for the agents a priori. I was interested in looking at what evolution could do given just the sort of capabilities underlying movement as seen in organisms like E. coli, but without specifying how those capabilities were used. And that kind of question was not what the other software packages could address.

Excellent stuff, and something I'm really interested in despite having no time to work on any more ...

I'm not intimately familiar with Avida but a few things jumped to mind whilst reading the description:

Quote

A facing is always toward another adjacent grid cell, so for an interior grid cell there are eight legal facings, five legal facings on an edge, and three at each corner grid cell.

I would say that there should be no illegal facings, just an inability to move when facing an edge – this would prevent a bias towards movement back to the centre – A bit like breeding E. coli in a jar: They cannot pass through the glass container but they could repeatedly bump against it until they die. By having illegal facings you are, in one sense, providing them with obstacle avoidance behaviour for free.

Quote

The "sense-diff-facing" instruction puts the difference in the amount of a specified resource between the current grid cell and the faced grid cell into one of the Avida registers.

What if this was expanded to be a “sense X,Y diff” instruction where X and Y can be any of the surrounding cells, or your own cell? The values for X and Y would be heritable. (And I don't know what you do about sensing the cell in front of you when facing the edge of the world)

Perhaps if you wanted to add an interesting twist you could turn that into something like "Z=F(X,Y)" where X and Y are as described above but the function F is a heritable operand (Add, Subtract Multiply Divide or Modulo) - you might even include bit shifting as a possible operand? Z=X<<Y or Z=X>>Y

The point would be to provide multiple pathways for this sensory apparatus to work - and for it to fail to work.

Expanding on this a bit more (if it is worth doing) you could allow for more distal sensing - maybe a Z=F((A,B)(X,Y)) instruction where A and B, and X and Y, are relative cell co-ordinates, perhaps capped to a maximum range of +/- 5. If you did this then I would be tempted to add a cost for longer range sensing (You need more energy to grow those longer whiskers!)

Quote

The environment is defined with a positively rewarding resource, with a peak in the resource set off-center in the world grid.

Can you make this more complex and dynamic? Perhaps try something more akin to a simple hydrothermal vent model:

A source (of the resource) pops up at a random location and begins churning out the ‘resource’, creating a gradient. Eventually the source is exhausted and the gradient disappears. You can have a maximum of x sources in the world at any time and when the number of sources is less than x a new source has some probability of appearing at a new random location.

It would also be nice to have a negative resource – something that causes harm but which is not simply a lack of positive resource – using the same hydrothermal vent model you could have a second resource whose intensity costs or harms an agent. This should result in a much more interesting and dynamic resource landscape for the agents to navigate.

I'm not sure if this should be a sense-able resource (something the agent can sense) of if it just causes harm without the agent realising -- Something I'm not clear on with Avida: can the agent sense its own 'energy' and as a result tell if it is being rewarded or harmed?

I am tempted to suggest actually defining a spectrum of resources (some good, some bad) but this would require many more methods for the agent to sense them (and makes for a much more complex research project). What I am thinking of here (and it is a vague thought without any of the important details) is to include potential routes by which an agent can gain an advantage by combining certain resources in certain ratios – it can create a more potent energy source than the ones it absorbs passively – This would, of course, be balanced by the potential for agents to combine resources into fatal concoctions.

While I did stress that the genomic content of the initial organism, and thus the Avidian population, could only acquire the new instructions via mutation, once an ancestral organism had one or more of those, they would be passed down to offspring with the usual frequency. And any effects they had on the organism could yield a difference in fitness, driving the usual selective processes. I think saying mutation was the only operative process goes too far. Not including the instructions in any way in the initial organism simply eliminates the possibility that I as experimenter set up a particular outcome by whatever arrangement of movement-relevant instructions might be set in that initial organism.

One question I was asked at SSCI in 2009 was why use Avida and not something like Echo. And while the efficient answer is that when one is at the Devolab, one is usually going to be using Avida, I did survey the available software at the time for applicability to the question I was looking at. The software systems allowing for agent movement all treated movement as a primitive property, often requiring some fixed movement strategy be defined for the agents a priori. I was interested in looking at what evolution could do given just the sort of capabilities underlying movement as seen in organisms like E. coli, but without specifying how those capabilities were used. And that kind of question was not what the other software packages could address.

Excellent stuff, and something I'm really interested in despite having no time to work on any more ...

I'm not intimately familiar with Avida but a few things jumped to mind whilst reading the description:

Quote

A facing is always toward another adjacent grid cell, so for an interior grid cell there are eight legal facings, five legal facings on an edge, and three at each corner grid cell.

I would say that there should be no illegal facings, just an inability to move when facing an edge – this would prevent a bias towards movement back to the centre – A bit like breeding E. coli in a jar: They cannot pass through the glass container but they could repeatedly bump against it until they die. By having illegal facings you are, in one sense, providing them with obstacle avoidance behaviour for free.

Avida giveth, and Avida taketh away. Facing is very basic to the software. Illegal facings, when exercised, terminate the program with an ugly "bus error" message.

On the other hand, the world geometry options are (or I should say "were", I haven't checked the latest code) grid, torus, and clique. I have no idea what clique does. Torus, though, wraps the edges of the world grid. Using torus would solve the illegal facing issue, since every cell would then be an interior cell. However, I also thought of torus as giving Avidians something for free, since on a relatively prime grid size I think movement on the diagonal will give the organism access to a lot of the grid, if not all of it.

Quote (BillB @ Jan. 23 2014,04:32)

Quote

The "sense-diff-facing" instruction puts the difference in the amount of a specified resource between the current grid cell and the faced grid cell into one of the Avida registers.

What if this was expanded to be a “sense X,Y diff” instruction where X and Y can be any of the surrounding cells, or your own cell? The values for X and Y would be heritable. (And I don't know what you do about sensing the cell in front of you when facing the edge of the world)

As I recall it, access to adjoining cells is entirely defined by facing. It would be nice to have X,Y addressable during the run, but as I recall, it doesn't work that way.

I think this issue, among others, led a colleague of mine to give up on modifying the Avida grid system entirely, and instead implemented a separate arena-style system that was instantiated on a per-organism basis, what she referred to in the planning stages as "dream-a-grid". Many of the things that I am describing as constraints would not be in her codebase. (Her Avidians evolved such things as perfect maze-running, but she had a complex system of markers that when correctly sensed and acted upon would lead to that.) The tradeoff, though, is that her movement experiments were all about individual performances, and no interaction between members of the population would be possible. I'm thinking in terms of future experiments possibly having a larger role for competition.

Quote (BillB @ Jan. 23 2014,04:32)

Perhaps if you wanted to add an interesting twist you could turn that into something like "Z=F(X,Y)" where X and Y are as described above but the function F is a heritable operand (Add, Subtract Multiply Divide or Modulo) - you might even include bit shifting as a possible operand? Z=X<<Y or Z=X>>Y

The point would be to provide multiple pathways for this sensory apparatus to work - and for it to fail to work.

Expanding on this a bit more (if it is worth doing) you could allow for more distal sensing - maybe a Z=F((A,B)(X,Y)) instruction where A and B, and X and Y, are relative cell co-ordinates, perhaps capped to a maximum range of +/- 5. If you did this then I would be tempted to add a cost for longer range sensing (You need more energy to grow those longer whiskers!)

There was already code in Avida for distinguishing resources. This was based on a label system, where several bases in the genome get interpreted as a label, so what the organism gets when it processes a sensory instruction is heritable. All the sensory instruction does is put a value into an Avidian CPU register. What happens to it after that has to evolve, too.

Like I said above, I don't know that distant sensing has an obvious implementation pathway.

Quote (BillB @ Jan. 23 2014,04:32)

Quote

The environment is defined with a positively rewarding resource, with a peak in the resource set off-center in the world grid.

Can you make this more complex and dynamic? Perhaps try something more akin to a simple hydrothermal vent model:

A source (of the resource) pops up at a random location and begins churning out the ‘resource’, creating a gradient. Eventually the source is exhausted and the gradient disappears. You can have a maximum of x sources in the world at any time and when the number of sources is less than x a new source has some probability of appearing at a new random location.

The current way I define a resource gradient is quite cumbersome. I have a Perl script that set up CELL declarations in the environment config for every cell in the grid. I do have code for a method to establish a resource gradient at runtime, but that's not yet tested. Yes, I'd like to have a moving resource at some point. I don't think it will be the first thing out the gate.

Quote (BillB @ Jan. 23 2014,04:32)

It would also be nice to have a negative resource – something that causes harm but which is not simply a lack of positive resource – using the same hydrothermal vent model you could have a second resource whose intensity costs or harms an agent. This should result in a much more interesting and dynamic resource landscape for the agents to navigate.

I'm not sure if this should be a sense-able resource (something the agent can sense) of if it just causes harm without the agent realising -- Something I'm not clear on with Avida: can the agent sense its own 'energy' and as a result tell if it is being rewarded or harmed?

The "detrimental resource" is likely the first thing out the gate. There's some issues on how this gets implemented, but I think I see a way forward on that that won't impact what I've already done too much.

As far as the Avidians sensing whether they are doing well or not, I think the answer is "no". The system scheduler assigns cycles based on merit, so poorly performing Avidians are also slowly performing Avidians. As far as I know, permitting an Avidian to have access to some transformation of its own merit would require setting up an instruction to do just that. Plus, an absolute value for merit wouldn't be terribly useful. In the first hundred updates, a merit of 0.29 would be excellent, but then pretty miserable not so much further into the run. What would be useful to the Avidian is some relative number related to their ranking in the population. I don't know of any biological correlate to that, though.

Quote (BillB @ Jan. 23 2014,04:32)

I am tempted to suggest actually defining a spectrum of resources (some good, some bad) but this would require many more methods for the agent to sense them (and makes for a much more complex research project). What I am thinking of here (and it is a vague thought without any of the important details) is to include potential routes by which an agent can gain an advantage by combining certain resources in certain ratios – it can create a more potent energy source than the ones it absorbs passively – This would, of course, be balanced by the potential for agents to combine resources into fatal concoctions.

Actually, the sensing system is already label-based, so multiplying the resources could be done without any particular hassle for the programmer. What it would do to the Avidians... that's an experiment.

The first experiment was pretty much a stab in the dark. We set up something that hadn't been tried, and we didn't know whether we were posing a challenge outside the scope of what could be evolved in Avida. Now that we know that Avidians can evolve movement strategies, including ones in an optimal class of strategies, we can raise the bar some.

Thanks for the detailed reply. I think I might try and find some time to familiarise myself with Avida ... I have, in the past, sketched out a framework for doing experiments like this myself but based on what you have written I think my system would not be possible to impliment in Avida.

I might go back over my early notes and see if there is anything sensible I can summarise here.

A thought occured after my last post - would it be possible to have the resource inflict a penalty when it is above a certain level? Think of it like a nutrient rich gradient coming from a hydrothermal vent - if you get too close to the source you literaly start to cook. There would be an optimal distance (A habitable zone?), and I would expect to see the resulting pattern of activity to appear as a ring rather than a point (referring to your plots above)

The fundamental choice to be made, given the available information, is not whether chance provides a better explanation than design, but whether natural laws provide a better explanation than a design.

Sig worthy

--------------Any version of ID consistent with all the evidence is indistinguishable from evolution.

At 45', I had to stop for a moment, as there is such an amusing elementary mistake on the slides which the eminent Dr. Dr. uses... And, as 1/2 != 3/5, Dr. Dr. Dembski gets as wrong result - which is, as he says - " typical for these search-for-a-search situations". I couldn't agree more.

At 45', I had to stop for a moment, as there is such an amusing elementary mistake on the slides which the eminent Dr. Dr. uses... And, as 1/2 != 3/5, Dr. Dr. Dembski gets as wrong result - which is, as he says - " typical for these search-for-a-search situations". I couldn't agree more.

At 45', I had to stop for a moment, as there is such an amusing elementary mistake on the slides which the eminent Dr. Dr. uses... And, as 1/2 != 3/5, Dr. Dr. Dembski gets as wrong result - which is, as he says - " typical for these search-for-a-search situations". I couldn't agree more.