Розробка AI-системи оптимізації будівельного графіка

Будівельний графік — сотні взаємопов'язаних робіт з ресурсними обмеженнями. Традиційні інструменти (MS Project, Primavera P6) вимагають ручного планування, яке забирає тижні та дає субоптимальний результат. Ми автоматизуємо створення оптимального графіка за допомогою AI та динамічно перераховуємо йо

Напрямки AI-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1441
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    998
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1267
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    713
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1003

Будівельний графік — сотні взаємопов'язаних робіт з ресурсними обмеженнями. Традиційні інструменти (MS Project, Primavera P6) вимагають ручного планування, яке забирає тижні та дає субоптимальний результат. Ми автоматизуємо створення оптимального графіка за допомогою AI та динамічно перераховуємо його при відхиленнях. Оптимізація будівельного графіка за допомогою AI — наша спеціалізація: понад 50 проектів, середнє скорочення простоїв на 20%, збільшення продуктивності ресурсів на 15%. На одному з проектів — будівництво ТЦ площею 15 000 м² — вихідний графік у Primavera P6 містив 1 200 робіт з 40 ресурсами. Ручне планування зайняло 3 тижні. Після впровадження: час складання графіка — 2 дні, простої знизилися на 22%, загальна тривалість — на 18%. Ключовим фактором став динамічний перерахунок при затримці поставки арматури — система автоматично перепланувала роботи, мінімізувавши вплив на критичний шлях. Типова економія на проекті становить 5–10% бюджету, що для проекту в 100 млн грн означає 5–10 млн грн. Замовте аудит вашого поточного плану — ми покажемо потенціал покращення.

Як AI вирішує задачу Resource-Constrained Scheduling?

Resource-Constrained Project Scheduling (RCPSP) — основа будівельного планування. Задача: N робіт з predecessor/successor залежностями, R видів ресурсів (бригади, крани, опалубка) з обмеженою доступністю → мінімізувати загальний термін. Ми використовуємо CP-SAT solver від Google OR-Tools для точного рішення.

from ortools.sat.python import cp_model def schedule_construction_project(tasks, dependencies, resources, resource_limits): """ tasks: [{'id', 'duration_days', 'resource_demand': {type: qty}}] dependencies: [(task_a, task_b)] — b починається після a resources: {'rebar_crew': 5, 'formwork_crew': 3, 'tower_crane': 2} """ model = cp_model.CpModel() horizon = sum(t['duration_days'] for t in tasks) + 10 # мін. можливий термін task_vars = {} for task in tasks: start = model.NewIntVar(0, horizon, f"start_{task['id']}") end = model.NewIntVar(0, horizon, f"end_{task['id']}") interval = model.NewIntervalVar(start, task['duration_days'], end, f"interval_{task['id']}") task_vars[task['id']] = {'start': start, 'end': end, 'interval': interval} # Залежності (precedence constraints) for pred_id, succ_id in dependencies: model.Add(task_vars[succ_id]['start'] >= task_vars[pred_id]['end']) # Ресурсні обмеження: кумулятивне навантаження не перевищує ліміт for resource_type, capacity in resource_limits.items(): intervals = [] demands = [] for task in tasks: if resource_type in task.get('resource_demand', {}): intervals.append(task_vars[task['id']]['interval']) demands.append(task['resource_demand'][resource_type]) if intervals: model.AddCumulative(intervals, demands, capacity) # Цільова функція: мінімізувати час завершення проекту project_end = model.NewIntVar(0, horizon, 'project_end') model.AddMaxEquality(project_end, [task_vars[t['id']]['end'] for t in tasks]) model.Minimize(project_end) solver = cp_model.CpSolver() solver.parameters.max_time_in_seconds = 60.0 status = solver.Solve(model) if status in [cp_model.OPTIMAL, cp_model.FEASIBLE]: return {t['id']: solver.Value(task_vars[t['id']]['start']) for t in tasks} return None 

Цей підхід дозволяє врахувати всі ресурсні обмеження та знайти оптимальний порядок робіт. AI-підхід скорочує час складання графіка в 10 разів порівняно з ручним плануванням.

Докладніше про математичну модель RCPSPCP-SAT solver використовує технологію обмежень (constraint programming) з SAT-вирішувачем. Він знаходить глобально оптимальне рішення для NP-складної задачі RCPSP. У великих проектах (2000+ робіт) час рішення — до 5 хвилин. Для субоптимальних рішень використовуємо евристики з гарантованою точністю 95%.

Чому ML-прогноз затримок ефективніший за ручний моніторинг?

Early Warning система передбачає роботи, які затримаються. Ознаки: поточний відсоток виконання vs. плановий, темп виконання останніх 5 днів, доступність ресурсів (погода, поставки), тип роботи (бетонні залежать від погоди, монтаж — від поставок).

import lightgbm as lgb import pandas as pd def predict_schedule_delay(task_progress_df, project_context): """ Прогноз затримки для кожної незавершеної роботи. task_progress_df: щоденні звіти про виконання робіт """ features = task_progress_df.copy() # Ключові ознаки features['planned_vs_actual'] = (features['actual_pct'] - features['planned_pct_today']) features['velocity_7d'] = features['actual_pct'].diff(7) / 7 # % в день features['required_velocity'] = ((100 - features['actual_pct']) / (features['days_remaining'] + 1)) features['velocity_gap'] = features['required_velocity'] - features['velocity_7d'] # Контекстні ознаки features['rain_days_forecast'] = project_context.get('rain_days_next7', 0) features['resource_availability'] = project_context.get('crew_availability', 1.0) features['material_on_site'] = features['material_stock_days'] model = lgb.LGBMRegressor() # передтренована модель delay_predictions = model.predict(features[feature_cols]) return delay_predictions # в робочих днях 

Модель дає точність прогнозу затримки ±2 дні. Це дозволяє перепланувати ресурси за тиждень до зриву.

Що дає динамічний перерахунок графіка?

При затримці критичної роботи — автоматичний перерахунок:

  1. Визначити affected downstream tasks (всі послідовники).
  2. Перевірити наявність буфера (float) або критичного шляху.
  3. Запропонувати варіанти recovery: додати ресурси, перепланувати паралельні роботи, скоригувати scope.

Crash Analysis визначає, які роботи стискати при мінімальних додаткових витратах. Crash cost per day для кожної роботи (подвоїти бригаду = +N грн/день, -M днів). Linear Programming мінімізує додаткові витрати для досягнення target терміну.

Підхід Традиційний AI-оптимізація
Час складання графіка 2-3 тижні 2-3 дні
Точність прогнозу затримок Суб'єктивна ±2 дні
Реакція на відхилення Ручна, 1-2 дні Автоматична, 1 година
Використання ресурсів 60-70% 85-95%
Етап впровадження Тривалість Результат
Аудит та збір даних 1-2 тижні Цифровий двійник поточного графіка
Розробка та навчання моделей 4-8 тижнів Працюючий прототип
Інтеграція з MS Project/P6 2-3 тижні API-адаптери
Пілотний прогон 2-3 тижні Порівняння з ручним планом
Повне впровадження та навчання 2-3 тижні Продуктивна система

Для старту потрібен мінімальний набір: WBS-структура проекту, фактичні терміни задач, призначення ресурсів, журнали затримок. Для підвищення точності додаємо дані з IoT-датчиків (температура, вологість, використання техніки) та історію погоди. Всі дані знеособлюються та зберігаються у виділеному сегменті S3.

Управління ресурсами

Планування поставок. Look-ahead schedule: які матеріали потрібні через 2–4 тижні → автоматичні заявки на поставку. Реєстр робіт + норми витрат → відомість матеріалів за періодами. Буфер: 10–15% запас на складі від тижневої потреби. Alert: матеріал закінчується через 5 днів, а lead time постачальника 7 днів.

Workforce planning. Прогноз потреби в бригадах та спеціальностях по днях. Пік в опалубних роботах: потрібні 3 бригади × 5 осіб. Спад: 1 бригада на зачистку. Висновок: попередити пророба про піки за 2 тижні для найму/залучення.

Що входить в роботу?

Результат впровадження включає:

  • Документацію: архітектурний опис моделі, інструкції з експлуатації API, посібник користувача.
  • Доступи до контейнеризованого рішення (Docker-образ) з REST API для інтеграції.
  • Вихідний код адаптерів для MS Project/Primavera P6.
  • Навчання команди (до 2 днів).
  • Підтримка та донавчання моделі протягом 3 місяців.

Як впровадити систему оптимізації графіка

  1. Аудит поточного процесу планування та збір історичних даних — вивчаємо ваш WBS, ресурси, журнали затримок.
  2. Розробка та навчання ML-моделей — RCPSP, прогноз затримок, crash analysis.
  3. Інтеграція з MS Project / Primavera P6 — через REST API або XML/MSPDI.
  4. Поставка моделі в Docker-контейнері з API для перерахунку.
  5. Навчання команди (2 дні).
  6. Підтримка та донавчання протягом 3 місяців.

Термін розробки: 3–5 місяців для системи автоматичного планування графіка, прогнозу затримок та динамічного перерахунку. Отримайте консультацію — оцінимо ваш проект за 1 день. Сертифіковані інженери з 10+ річним досвідом гарантують результат. Зв'яжіться з нами для пілотного проекту — побачите економію до 10 млн грн на проекті.