Releases after DevLog #8:
v0.6.0-alpha.1
Створено NuGet пакет / бібліотеку — ProjectK.Optimization, що містить у собі математичний ройовий алгоритм GWO (Grey Wolf Optimization) та абстракції для вирішення оптимізаційних проблем. Це двигун, що допомагає реалізувати новий функціонал у додатку.
Єдиний алгоритм — безліч можливостей!
Архітектурно бібліотека побудована так, що в БЛ додатку потрібно створити Solver існуючої проблеми, підготувати дані та цільову функцію проблеми (для нового функціоналу v0.6.0 проблема вже вшита в бібліотеку, через абстракцію IOptimizationProblem), підготувати дані для неї, заінжектити IOptimizer (абстракція над алгоритмом GWO) і передати в нього проблему. Далі алгоритм виконує свою роботу і повертає результат.
Нижче можна ознайомитись з алгоритмом — раніше я працював над науковими роботами та статтями на цю тему, тому вирізав частину презентації з конференції.
https://www.canva.com/design/DAG6p4rMsMc/Kr3-r1vU4znQ75g9T17vVA/edit
Бібліотека вже оновлена до версії 1.1.0 з покращенням структури, безпеки та багатопотоковості.
Ціль версії 0.6. Це новий функціонал, про яку йшла мова вище! Тепер життя зв’язкових та комендантів стане трошки простіше. Всі, хто вказані, як КВ — підтягнуться в планування таборів. Тут потрібно вибрати для кожного виховника дату, котру він буде зайнятий протягом періоду пошуку табору, а також його важливість, і відбувається чудо — нам повертається оптимальна дата для проведення табору.
Цей компонент я буду допрацьовувати та покращувати, адже перспектива в ньому є.
Отож, було реалізовано два компоненти - список сесій планування та створення нової сесії. На бекенді ці дані опрацьовує ProjectK.Optimization.
PlanningSession, PlanningParticipant, ParticipantBusyRange.ProjectK.Optimization.