Я довольно часто пишу про развитие, эволюцию, прогресс и прочие подобные продукты мыслительной деятельности накопленной человечеством по отношении к этому самому человечеству (мне это просто нравится), но сегодня я захотел рассказать о том, что такое генетические алгоритмы. Точнее даже не то, что это такое по сути, это отдельный разговор, а о том как они работают на конкретном примере. В качестве задачи я взял задачу Коммивояжера (задача поиска кратчайшего маршрута соединяющего некоторое количество контрольных пунктов, городов)...
Рассмотрим простую задачу на динамическое программирование, в которой построение ответа почти в два раза больше, чем само решение. Читаем условие: Задача не является продолжением или вариацией задачи 16. Лесенка, но решать будем тоже с помощью динамики. Считаем входные данные и сразу преобразуем их к числовым типам: Состоянием в динамическом программировании будет номер ступеньки, на которой стоит Вова. Чтобы узнать переходы, надо ответить на вопрос "Как Вова мог здесь оказаться?". Ответ очень простой - или с предыдущей ступеньки или через одну от неё...