Одному программисту не нравилось, что его робот-пылесос “Roombah” слишком часто тычется в мебель и тратит слишком много времени на обход препятствий. Программист логично рассудил: вся проблема из-за того, что алгоритм поиска пути роботом не оптимален. Наверняка существуют гораздо лучшие решения.

Поскольку тратить месяцы на изучение алгоритмов поиска путей для робота-пылесоса программисту абсолютно не хотелось, то он решил эту задачу автоматизировать. И написал небольшую самообучающуюся программу – которая анализировала частоту срабатывания датчиков столкновения робота. Те варианты действий, при которых частота срабатывания датчиков снижалась, программа отмечала как “хорошие” (“вознаграждение”), а те, при которых повышалась, как “плохие” (“наказание”). Целью программы было максимизировать вознаграждение.
Результат: робот-пылесос начал ездить задним ходом, потому что сзади у него датчиков столкновения не было.
( Read more... )