1) да, рандомно, но теоретически существует такой алгоритм (последовательность команд), которая позволяет организму выживать как можно дольше в этом рандомном мире. Ну например: если сделать последовательность ходов такой, что траектория движения будет покрывать как можно большую площадь, и разбавить её операциями поедания с разных сторон, то шансы организма на выживание гораздо выше чем у организма, который ходит в одну сторону и ожидает пищу только слева.
2) Да, последовательность команд зациклена. Дело в том, что обучение производит не организм, а... программа, которая отбирает те организмы, которые выжили. Малая часть выбранных и размноженных организмов подвергается мутации, т.е. их последовательность команд изменяется. если изменение удачное, то этот организм, вероятно, попадёт в следующее поколение, и организмов с такой мутацией станет больше. Повторяя это много раз можно найти оптимальный алгоритм поведения бота. Скорее всего он будет коррелировать с алгоритмом генерации мира.
3) генетическое программирование это... не конкретный алгоритм, это скорее идея, которая имеет обязательные для выполнения шаги, но каждый шаг можно реализовать совершенно различными способами. Условия и команды здесь могут быть какими угодно, это всего лишь описание среды в которой производится оптимизация.