ИИ-исследования для оптимизации планирования в Rillsoft Project
Rillsoft ведёт практические ИИ-исследования реальных задач планирования. В центре внимания не универсальный ассистент, а ключевой вопрос любого плана проекта: как лучше согласовать ресурсы и сроки при ограничениях? Эта страница углубляет ИИ-направление из дорожной карты Rillsoft и описывает два конкретных исследовательских сценария автоматизированной оптимизации планирования.
Речь здесь идёт именно об оценке и разработке, а не о готовых обещаниях по продукту. Исследуется, как модель может научиться шаг за шагом превращать наивный исходный план в менее конфликтный и более реалистичный по ресурсам план.
Rillsoft оценивает методы обучения с подкреплением (PPO/Actor-Critic) в двух отдельных обучениях — для оптимального назначения персонала на задачи и для равномерного распределения загрузки ресурсов — с оценкой по объективному качеству плана, а не по простому воспроизведению существующей эвристики.
Как мы пришли к этому подходу
Инфраструктура данных, необходимая для этого исследования, в Rillsoft не нова и не умозрительна, а уже давно проверена.
Rillsoft уже долгое время использует случайно сгенерированные проекты для автоматизированного тестирования Rillsoft Project. С помощью больших и разнообразных случайных проектов функции планирования можно проверять систематически и воспроизводимо — на очень многих конфигурациях, которые вручную никогда не охватить. Эти автоматизированные тесты уже значительно улучшили функциональность и стабильность Rillsoft Project.
Именно отсюда и возникла идея ИИ-исследований: та же зрелая инфраструктура генерации, которая сегодня обеспечивает контроль качества, может поставлять реалистичные экземпляры проектов и в качестве обучающих данных для методов обучения — в любом количестве и с чётко определёнными начальным и целевым состояниями. Тем самым ядро данных исследования опирается на реально существующий, проверенный инструмент, и его не нужно сначала изобретать.
Почему планирование проектов хорошо подходит для оптимизации с поддержкой ИИ
Большие планы проектов — хорошая область применения для обучаемой оптимизации:
- Они содержат множество взаимозависимых решений о последовательностях, сроках и назначениях ресурсов.
- Наивный план ранних сроков — все задачи как можно раньше — создаётся быстро, но редко реалистичен.
- Хороший эталонный план в реальных проектах трудно создать вручную и именно поэтому он особенно ценен как цель обучения.
- Дефицит ресурсов делает планирование итеративным и подверженным конфликтам: один сдвиг вызывает последующие изменения.
- ИИ может помочь систематически осваивать хорошие стратегии перепланирования вместо того, чтобы искать их вручную для каждого плана заново.
С профессиональной точки зрения это классическая задача календарного планирования проектов при ограниченных ресурсах (RCPSP) с выравниванием ресурсов — класс задач планирования процессов и ресурсов, изучаемый десятилетиями.
Две отдельные задачи оптимизации
Хорошее планирование проектов объединяет два функционально разных вопроса, которые лучше решать по отдельности:
- Кто? Какой сотрудник выполняет какую задачу? (назначение ресурсов)
- Когда? В какой момент находится какая задача, чтобы загрузка оставалась равномерной? (выравнивание ресурсов)
Поэтому Rillsoft исследует два отдельных ИИ-обучения на одной и той же проверенной в эксплуатации инфраструктуре генерации — каждое со своим начальным состоянием, целевым состоянием и пространством действий. Оба следуют одному базовому принципу: сначала создать функционально хорошее целевое состояние, затем намеренно его ухудшить и дать ИИ научиться пути обратно — каждое со своей логикой повреждения.
| Аспект | Обучение A: назначение персонала | Обучение B: выравнивание загрузки |
|---|---|---|
| Функциональный вопрос | Кто выполняет какую задачу? | Когда находится какая задача? |
| Начальное состояние | задачи с ролями, без персонала | план ранних сроков с конфликтами |
| Целевое состояние | оптимальная расстановка персонала | равномерно распределённые сроки |
| Ключевое действие | назначить, переназначить, поменять персонал | сдвинуть задачу во времени |
Важно: обучение B опирается на базу данных обучения A (оно берёт его укомплектованный персоналом, распределённый план как исходный материал), но остаётся самостоятельной задачей обучения со своими начальным и целевым состояниями.
Обучение A — Оптимальное назначение персонала
Цель этого обучения — назначить плану без персонала функционально наилучшую расстановку по каждой задаче — на основе ролей и с учётом отпусков — так, чтобы все сотрудники были загружены равномерно и реалистично.
Как создаётся пара обучающих данных
Здесь тоже действует принцип «сначала целевое состояние, затем начальное»:
- Используется сгенерированный тестовый пул ресурсов — с достаточным числом ролей, персонала и сгенерированным планом отпусков для каждого сотрудника.
- Создаётся проект фиксированной длины (например, три месяца).
- Для каждого сотрудника создаётся задача и этому сотруднику она назначается; задача изначально длится в течение всей длительности проекта. Так каждый сотрудник оказывается задействован.
- Затем каждая задача разбивается на несколько задач — со случайной длительностью около 5–10 дней (функция Rillsoft Project «разбить на несколько задач»). Длительность части намеренно не делается слишком малой.
- Задачи с одинаковыми началом и окончанием объединяются для повышения сложности.
- Роли выводятся из назначенного персонала (функция Rillsoft Project «определить роли из персонала»). Тем самым получается целевое состояние: план, в котором все сотрудники загружены оптимально и с учётом отпусков.
- Наконец, весь персонал убирается из задач (функция Rillsoft Project «убрать персонал из задач»). Остаются задачи только с ролями — это начальное состояние, отправная точка для ИИ.
Начальное и целевое состояние
- Начальное состояние: задачи с ролями, но без конкретного персонала.
- Целевое состояние: те же задачи с оптимальной расстановкой персонала — равномерная загрузка, отпуска учтены.
- Действие ИИ: назначить задаче соответствующего роли доступного сотрудника.
- Допустимость: допустимым действием является только персонал с подходящей ролью и без коллизии с отпуском (маскирование).
Когда раннее назначение блокирует дальнейшее
Назначение — это не независимая задача по каждой задаче, а последовательное комбинаторное сопоставление. Локально правдоподобное назначение — сотрудник на задачу, которая «тоже подходит», — может оказаться блокирующим на протяжении нескольких шагов и помешать дальнейшим назначениям:
- Рано связанный сотрудник оказался бы единственным, кто мог бы покрыть более позднюю задачу в соответствии с ролью и без отпускной коллизии.
- Для этой более поздней задачи тогда не остаётся допустимой расстановки — тупик.
- Чисто жадно-направленные вперёд назначения усугубляют это, поскольку дефицитные специалисты слишком рано привязываются к некритичным задачам.
ИИ должен распознавать и устранять такие тупики, а не просто назначать дальше вперёд. С профессиональной точки зрения это различие между жадным сопоставлением и глобально оптимальным назначением: уже сделанное назначение должно быть отзывным, чтобы дефицитный специалист снова освобождался для задачи, которую только он может покрыть.
Устранение таких блокировок ориентируется на архитектурные идеи из оркестрации мультиагентных систем (например, Gas Town Стива Йегге, который ведёт работу персистентно и прослеживаемо как отзывный журнал). В применении к назначению персонала это означает:
- Назначения остаются отзывными: это прослеживаемые, отменяемые решения, а не окончательные фиксации, так что блокирующее назначение можно целенаправленно отменить.
- Глобальный взгляд вместо локального жадного выбора: ИИ учитывает будущую заполняемость дефицитных ролей, прежде чем рано связывать специалиста.
- Переназначение как обычное действие: блокирующая расстановка меняется, чтобы устранить узкое место, а не просто передавать дальше незаполненные задачи.
Поэтому в пространстве действий обучения A наряду с «назначить» есть также «переназначить/поменять» и «отменить назначение», а награда штрафует тупики и больше не заполняемые задачи — а не только качество загрузки текущего шага.
Обучение B — Равномерно распределить загрузку ресурсов
Цель этого обучения — пересоставить сжатый во времени, конфликтный план путём сдвига задач так, чтобы загрузка была распределена равномерно (выравнивание ресурсов), не нарушая логических зависимостей.
Как создаётся пара обучающих данных
- Отправная точка — укомплектованный персоналом, распределённый план из обучения A.
- Все существующие связи (отношения предшествования) удаляются.
- Создаются две вехи — одна в начале и одна в конце проекта.
- Создаются случайные конечные цепочки связей, исходящие из начальной вехи и заканчивающиеся в конечной вехе. Благодаря этому сеть задач остаётся корректно определённой и ацикличной. Это состояние и есть целевое состояние с равномерным распределением во времени.
- Затем все задачи сдвигаются на самые ранние возможные сроки начала. Хороший план тем самым намеренно наполняется конфликтами — он сжимается во времени и создаёт перегрузки. Это начальное состояние, передаваемое модели.
Начальное и целевое состояние
- Начальное состояние: план ранних сроков с перегрузками и конфликтами.
- Целевое состояние: ранее созданный, равномерно распределённый план.
- Действие ИИ: сдвигать задачи так, чтобы план приближался к целевому состоянию.
- Допустимость: сдвиги должны сохранять связи (начальную и конечную вехи, конечные цепочки) (маскирование).
Так модель целенаправленно осваивает задачу выравнивания: она возвращает наивный план ранних сроков в состояние, в котором загрузка ресурсов равномерна во времени.
Подход Actor-Critic
Планирование — это последовательная задача принятия решений: каждое перепланирование меняет состояние и влияет на следующее осмысленное действие. Именно для этого подходят методы Actor-Critic из обучения с подкреплением.
- Actor предлагает конкретные изменения плана — например, сдвинуть задачу, переназначить ресурс или изменить приоритет.
- Critic оценивает ценность этих изменений, то есть приближают ли они план к лучшему состоянию.
- Обе компоненты обучаются совместно. Благодаря этому модель осваивает не только жёсткие правила, но и стратегии улучшения.
В обоих обучениях используется одно и то же семейство Actor-Critic, только с разным пространством действий: при назначении персонала действия — это назначения, переназначения и отмены; при выравнивании загрузки — это временные сдвиги задач.
Несколько профессиональных уточнений:
- В качестве конкретного метода исследуется PPO (Proximal Policy Optimization) — устоявшийся метод Actor-Critic для больших дискретных пространств действий.
- Состояние планирования кодируется как граф задач (направленная сеть отношений предшествования), что подходит для графовых методов обучения для планирования.
- Допустимые действия маскируются, так что логические зависимости всегда сохраняются (гарантия допустимости). Тем самым функциональная логика планирования не нарушается.
- Подход следует парадигме «Learning to Improve» — итеративный ремонт плана исходя из начального состояния, а не однократная генерация плана с нуля.
Как оценивается качество плана
Чтобы улучшения не только заявлялись, но и измерялись, исследованию нужны чёткие критерии оценки. В частности, изучаются:
- количество и тяжесть конфликтов ресурсов,
- стабильность плана после перепланирования,
- срок окончания проекта или сдвиг сроков,
- качество загрузки по ресурсам,
- доля реалистично назначаемых задач,
- сравнение с эвристической базовой линией автоматического назначения персонала.
При этом награда специфична для каждого обучения: при назначении персонала важно качество назначения (равномерная загрузка, соответствие ролям, отсутствие незаполняемых задач или тупиков); при выравнивании загрузки важно качество выравнивания (равномерная загрузка во времени, снижение конфликтов, соблюдение сроков).
Решающим является разделение награды и диагностической метрики: награда при обучении — это объективное качество плана. Расстояние до эталонного плана служит исключительно для оценки, но никогда как цель обучения. Где это целесообразно, методы можно дополнительно сопоставлять с устоявшимися бенчмарками RCPSP (например, PSPLIB). Выдуманные показатели производительности без надёжной основы намеренно не используются.
Практическая польза для пользователей
Исследование остаётся близким к практике продукта. Возможные полезные эффекты:
- лучшая поддержка принятия решений в больших планах проектов,
- более быстрое выявление нереалистичных базовых линий,
- более обоснованные предложения при дефиците ресурсов,
- потенциал для последующей автоматизации и сценарного анализа,
- расширение существующей логики планирования — без замены «чёрным ящиком».
Темы напрямую связаны с ключевыми функциями Rillsoft: планирование ресурсов, планирование мощностей и мультипроектное управление.
Научный контекст
Подход опирается на устоявшиеся методы планирования процессов и машинного обучения. Следующие работы задают методический контекст (они не подтверждают наши собственные, ещё не достигнутые результаты):
- Kolisch, R.; Sprecher, A. (1997): PSPLIB – A project scheduling problem library. OR Software – ORSEP Operations Research Software Exchange Program. European Journal of Operational Research. Работа является центральной точкой отсчёта для бенчмарков RCPSP.
- Hartmann, S.; Briskorn, D. (2022): An updated survey of variants and extensions of the resource-constrained project scheduling problem. European Journal of Operational Research, 297(1), 1–14. Обзор систематизирует классические и расширенные варианты RCPSP.
- Zhang, C.; Song, W.; Cao, Z.; Zhang, J.; Tan, P. S.; Xu, C. (2020): Learning to Dispatch for Job Shop Scheduling via Deep Reinforcement Learning. Advances in Neural Information Processing Systems 33, NeurIPS 2020. Работа представляет графовые и RL-методы планирования.
- Mao, H.; Schwarzkopf, M.; Venkatakrishnan, S. B.; Meng, Z.; Alizadeh, M. (2019): Learning Scheduling Algorithms for Data Processing Clusters. Proceedings of ACM SIGCOMM 2019, 270–288. Работа показывает обучение с подкреплением для планирования при зависимостях в сложных системах.
- Chen, X.; Tian, Y. (2019): Learning to Perform Local Rewriting for Combinatorial Optimization. Advances in Neural Information Processing Systems 32, NeurIPS 2019. Работа значима для парадигмы итеративного улучшения существующих решений.
- Schulman, J.; Wolski, F.; Dhariwal, P.; Radford, A.; Klimov, O. (2017): Proximal Policy Optimization Algorithms. arXiv:1707.06347. Эта публикация описывает исследуемый здесь метод PPO в рамках семейства Actor-Critic.
Статус исследования и перспективы
Этот обзор исследований носит направляющий и необязательный характер. Он описывает оценочную и опытно-конструкторскую работу, а не гарантированные функции продукта или сроки релиза.
Тем самым Rillsoft следует надёжному, поэтапному пути к более интеллектуальной оптимизации ресурсов и сроков — опираясь на проверенное ядро планирования и испытанную инфраструктуру данных. Подробнее об общей картине дальнейшего развития см. в дорожной карте Rillsoft. Вам не хватает какой-то функции или вы хотите задать направление развития? Свяжитесь с нами.
