ECAL081 - Exercise 3 –
Frequently Asked Questions
Q: Do we have to use Scheme in the solution? Can we just
use Java?
A: You can create and run the GP in Java. The
individuals’ genotype should be a tree expressible in LISP language, but
if you wish you can implement them as, say, Java Trees and run them (fitness
calculations) in Java.
The LISP programs are just
the representation of the individuals. Remember to put the LISP
representation of the individuals in your report.
Q: Koza's paper notes that the robot might apply force
not coaxial with the center of gravity of the box, which will cause the box to
rotate.
What level of calculations are you expecting? Should I calculate the whole
scenario as force formulas (like in mechanic physics - cosinus
of the angles and so on...)
A: You can do it however you understand it, so it makes
sense. It does not have to be exactly like Koza's work (especially since he
does not spell out every detail). Reasonable calculations without going into
high level physics are just fine. We are interested in the GP process.
Q: On Koza’s paper it is written that "All sonar
distances are dynamically recomputed after each execution of a move or
turn."
Now the s00, s01,....s011,ss are all terminals i
understand what is the meaning of evaluate MF, TR, TL.
What is the meaning of
evaluate s07 if the answer is just compute the distance for the closest object
then why should the sonars recomputed each step ?
If the answer is just to
return its value - then it doesn't make any sense... I believe the robot
should use this information? Should it turn to this direction?
A: What I understand is that if you have just executed
MF (Move Forward), the value of S07 will now be different then before the MF
call. (same with other movement terminals: TR, TL)
So for instance, for the
individual:
(PROGN2 (PROGN2 S07 (MF)) S07)
The first S07 terminal (the one in bold) will be evaluated before the call to
(MF), and return a value, say 5. The second S07 terminal, will be evaluated after
the call to move forward, so the value will be different, because the robot has
already moved, so it can be, say, 3.5
Q: Can we increase the probability for a terminal MF,
even though Koza does not mention doing this? Our trees are very big with
relatively low number of movements (MF).
A: Yes, you may tweak the running parameters and
probabilities as you wish. You’re right, Koza did not
mention every detail in his implementation. You can do whatever you feel will
generate better solutions, as long as it is GP.