Если нужен именно генетический алгоритм, то надо сделать так:
1. Создать случайную популяцию водителей, каждый со своим набором монет.
2. Прогнать этих водителей по маршруту.
3. Отбросить некоторый процент самых неудачливых водителей.
4. Оставшихся водителей "скрестить", "мутировать".
5. Повторять алгоритм, начиная с пункта два, пока результаты самых экономных водителей в популяции перестанут улучшаться.
Как-то так, наверно. Осталось придумать, как "скрещивать" и "мутировать".
"Скрещивать" можно, например, порождая нового водителя со случайным набором монет из карманов его "родителей". А "мутировать", отбирая случайную монету, и выдавая взамен её другу случайную.