Skip to content

Repository files navigation

DockerPythonFastAPITypeScript

Календарный Оптимизатор Проекта

Описание

Проект "Календарный Оптимизатор" представляет собой алгоритм, разработанный для построения оптимального календарного плана. Алгоритм принимает на вход экспортированный JSON-файл из компонента Управления Проектами (PRJM) продукта Platform V Works::Projects (SPJ) и выдает оптимизированный план проекта, который можно загрузить обратно в исходную программу.

Особенности

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

Реализованные алгоритмы

Bandits

Алгоритм "Бандиты" представляет собой форму машинного обучения, где агент учится оптимизировать решения с течением времени. Он применен к данному проекту путем динамической корректировки распределения ресурсов на основе исторических данных для максимизации эффективности проекта.

Q-learning

Q-learning - это алгоритм обучения с подкреплением, используемый для принятия решений в неопределенной среде. В данном он использован для изучения и адаптации стратегий планирования проекта на основе прошлого опыта для достижения оптимальных результатов.

Многомерный Simulated Annealing с байесовской оптимизацией параметров

Simulated Annealing - это метаэвристический алгоритм оптимизации, вдохновленный процессом отжига в металлургии. Байесовская оптимизация применена для настройки его параметров эффективно. В данном проекте она помогла эффективно исследовать пространство решений для нахождения оптимальных планов проекта.

Как начать

Чтобы начать использовать сервис, просто зайдите на нашу веб-страницу.

Чтобы использовать сервис Календарного Оптимизатора, выполните следующие шаги:

  • Экспортируйте данные проекта из вашего компонента Управления Проектами в формате JSON.
  • Загрузите JSON-файл в сервис Календарного Оптимизатора.
  • Выберите критерии оптимизации (продолжительность, стоимость, использование ресурсов) и желаемые алгоритмы.
  • Получите оптимизированный план проекта, созданный сервисом.
  • Загрузите оптимизированный план обратно в ваш компонент Управления Проектами.

Техническая часть

Стек приложения

Python, Docker, TypeScript

Запуск приложения

Установка

Для запуска приложения сначала требуется скачать его исходный код с GitHub, используя Git. Убедитесь, что у вас установлен Git, следуя инструкциям для вашей операционной системы (Windows, Mac, Linux). После установки выполните следующую команду в терминале:

git clone https://github.com/karisDev/selectel-dinosaurs

Перед запуском приложения необходимо убедиться, что все значения переменных окружения в файле backend/.env заполнены корректно. Для этого скопируйте файл .env.example и вставьте валидные значения. Вы можете выполнить следующую команду в терминале для копирования:

bashCopy code

cp backend/.env.example backend/.env

Затем откройте файл backend/.env в текстовом редакторе и внесите необходимые значения для переменных окружения, такие как база данных, ключи API и другие конфигурационые параметры, которые могут быть необходимы для вашего приложения. После этого вы будете готовы к запуску вашего приложения.

Далее, для упрощения развертывания приложения, требуется установить Docker. Вы можете скачать и установить Docker и docker-compose с официального сайта Docker. После установки Docker выполните следующую команду в терминале, находясь в каталоге backend :

docker compose up -d

Это запустит приложение в контейнерах Docker, обеспечивая изоляцию и портативность.

После запуска приложения будет доступна техническая документация по ссылке http://<domain из .env>/docs

Команда

Лиза, Project Manager

Лиза, Backend

Ваня, ML

Женя, ML

Лёша, ML

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages