Roadmap разработчика имитационных моделей в AnyLogic

от автора

Данная статья предназначена для начинающих разработчиков имитационных моделей в среде AnyLogic и всех интересующихся этим направлением. Мой рецепт специалиста построен на собственном опыте профессионального становления, а также обучении новичков данному ремеслу, но не является единственно верным и носит лишь ориентировочный характер. Итак, приступим.

Перво-наперво нужно понять, точно ли вы хотите этим заниматься. Для этого я советую сделать 2-3 демонстрационные модели. Это поможет вам не только определиться, но и ознакомиться с интерфейсом среды, плюс осознать разницу подходов при моделировании разных систем. Просто выберите 3 разные по сложности модели.

Основным языком данной среды является Java. В начале достаточно освоить процедурное программирование, хороший бесплатный курс есть на Хекслете по Java. Также среда позволяет встроить плагин Python. Такое решение подходит только для людей, которые уже хорошо знают Python и не хотят переходить на другой язык. Сами разработчики пишут в книге The Big Book of Simulation Modeling следующее:

«From the very beginning we did not want to invent a proprietary scripting language for AnyLogic. Moreover, the creation of AnyLogic was significantly inspired by Java, which we think is the ideal language for modelers.»

«Мы не стали придумывать свой язык программирования специально для AnyLogic. Более того, именно Java вдохновила нас на создание AnyLogic — мы считаем Java идеальным языком для тех, кто занимается имитационным моделированием».

Так что для тех, кто хочет профессионально заниматься разработкой в данной среде, всё же обязательно понимать именно Java.

Чтобы закрепить знания, следует практиковаться — именно для этого нужно попробовать модифицировать какую-нибудь существующую модель (вкладка «Примеры моделей») либо одну из демонстрационных, что делали на первом шаге. Это позволит начать думать не как исполнитель, а как творец.

Дальше стоит прочесть «AnyLogic за 3 дня: практическое пособие по имитационному моделированию». Здесь вы узнаете о трёх основных подходах имитационного моделирования, что позволит более архитектурно подходить к решению задач.

Дальнейшим шагом важно разобраться в ООП (объектно-ориентированном программировании) и Git. ООП важно изучить для углублённого понимания AnyLogic и агентного подхода в частности (на данный момент самого современного подхода моделирования). По первому существует множество книг и видео, но на этом этапе не стоит слишком углубляться — поэтому советовала бы прочесть главу, посвящённую Java, в книге Борщевского The Big Book of Simulation Modeling (библия для специалистов в данной области). По Git тоже подойдёт бесплатный курс на Хекслете. Приучить себя к контролю версий на начальных этапах очень важно: это не только поможет в дальнейших больших проектах работать в команде, но и научит вести проект в чистоте.

Когда за плечами уже есть база, пора применить её на практике — сделать проект с нуля. Главный вопрос: где взять осмысленное техническое задание? Придумать его с нуля новичку действительно трудно. Есть два пути: сгенерировать ТЗ с помощью ИИ или опереться на образец реальной промышленной задачи — на примере этого. Конечно, иногда удаётся получить задачу прямо в лаборатории, но такая возможность доступна не всем.

В зависимости от сложности проекта, который выпадет на вашу долю, ваших исходных навыков, общей мотивации и множества иных испытаний, которые приготовила для вас судьба, проект может занять как пару недель, так и полгода. Поэтому если чувствуете упадок сил, советую переключаться на теорию — там хранятся многие ответы для практики. Именно на этом шаге стоит прочитать от корки до корки The Big Book of Simulation Modeling и подтягивать общую математику на уровне университета (если не имеете высшего образования или подзабыли, очень рекомендую курс MathProfi— этого будет в полной мере достаточно для анализа результатов прогона модели и общей валидации).

Дальше уже дело техники — найти реальные проекты (или составить самому — на этом уровне это уже вполне возможно). Довести до результата 1-2 проекта, провалидировав в полной мере.

На этом этапе стоит решить, в какую стезю вы хотите уйти. Может, интересуют социальные взаимодействия, энергетика, логистика, физика, бизнес и финансы… Вообще много отраслей, но, углубившись в одну и обзаведясь компетенцией, вы сможете с полной уверенностью называть себя специалистом и стать тем, кого ищет бизнес, а не тем, кто в поиске работы.

Важное отступление для новичков: на данном пути без английского никак. Хорошо, если у вас имеется базовый B1, иначе придётся параллельно подтягивать это знание. Поскольку материалы по этой узкой области в большей части представлены на конференциях, в видео и т.д. Конечно, в наше время ИИ всё можно перевести, но это скажется на вашем дальнейшем профессиональном росте.

И да, ИИ не всегда выход. Он знает, какие подходы есть, но скорее всего будет сводить 90 процентов решений к коду, который, может, и решает задачу, но лишает смысла использовать именно AnyLogic. Вместо обращений к ChatGPT советую просто читать документацию AnyLogic — она довольно-таки неплохо написана. И пока вы ищете ответ именно на свой вопрос, узнаёте много нового, что после, возможно, приведёт к неожиданному решению.

Успехов в начинаниях. До новых встреч!

ссылка на оригинал статьи https://habr.com/ru/articles/1051184/