Here's what I would do if professor Luke was out of town and I
didn't have anyone to ask:
I would have a Auction object in the Problem. when an Individual is
evaluated, it registers with the Auction and that's it.
When enough inds registered, the register method also starts the auction
simulation, and then it assigns fitness based on scores to all the
registered inds. (register means adding them to an array)
So it's not that the first one starts the auction, it's the last one. :P
If your auction runs with all individuals in the population, skip the
next part. You got to make sure that the population size is a multiple of
number of agent in the auction. I.e. if your auction runs with 10 agents and your
population size is 1003, the last three will not be evaluated. you're
gonna say "what kind of idiot makes the population 1003". But if you study
the effect of changing auction size, you still have the problem, cause 1000 does not
divide by 11, 12, 13... If you change the pop size along with auction size
the comparison is invalid, cause the search method is different. So you
may want to fill the last auction with unsuspecting already-evaluated
Of course, you impose a spatial relationship in your population.
Individual 1 competes with individuals 2..10, but not with individual
11...1000. It's like having 100 populations. If you don't like it, you got
to randomize the population.
1. have the entire population register to 1 auction broker. When everybody
is in, the broker would randomize the list of inds before starting individual
2. you could go look inside ecj and write your own Evaluator, as Liviu
On Mon, 25 Apr 2005, Mehdi Khoury wrote:
> I am actually trying to program an evolving multi agent auction.
> The multi agent auction is just triggered by invoking a runIt() method...
> It gives me back a bunch of files containing the performances of every
> individual after running for 20 seconds.
> So here is my problem : I don't want to run one whole auction for every
> single individual evaluation.
> I just want the first individual evaluation to start the auction, then all
> the others would not start their own auction, but would wait for that the
> one auction to be finished, and would take their results from the output
> files resulting from this one auction.
> Any idea of how to proceed ?
> Thanks in advance...
> Mehdi Khoury.