Проблематика
Состав команды
Проблемы технического долга
Интерфейс ввода данных
Механизм буферов
Оптимизация загрузки
Учёт приоритетов
Плавность производства
Обработка конвейеров
Переналадки
Проверка буферов
Валидация входных данных
Спасибо за внимание!
1.59M

Оптимизация загрузки

1.

Отчёт по итогам производственной практики:
Оптимизация загрузки
универсального производства
Наставник команды: Прутковский Б.Е., Операционный директор ЗАО «Kraftway Corp PLC»
Участники команды:
• Владислав Мокрушин
• Полянский Андрей
• Коваленко Михаил
• Поздышев Эрик
• Будько Алина
17.07.2025

2. Проблематика

ЗАКАЗЧИК
Прутковский Борис Евгеньевич
Операционный директор АО «Kraftway Corp PLC»
ПРОБЛЕМА
Необходимо произвести нагрузочное тестирование готового решения и
разобрать бэклог первой версии оптимизатора
АЛЬТЕРНАТИВА
На данный момент формирование плана производства происходит вручную
отделом планирования
ОБОСНОВАНИЕ
ПОТРЕБНОСТИ
Текущий процесс планирования является непрозрачным и не имеет полного
обоснования, что затрудняет процесс оценки эффективности производства
2

3. Состав команды

Полянский Андрей
Владислав Мокрушин
Руководитель проекта,
Разработчик
Аналитик
Коваленко Михаил
Поздышев Эрик
Будько Алина
Аналитик данных
Аналитик данных
Бизнес-аналитик
3

4. Проблемы технического долга

1.
2.
3.
4.
5.
6.
7.
8.
9.
Интерфейс ввода данных,
Механизм буферов,
Оптимизация загрузки производства,
Учет приоритетов и сроков заказов,
Плавность производства,
Обработка конвейеров,
Переналадки (use_changeovers),
Проверка начальных буферов,
Валидация входных данных.
4

5. Интерфейс ввода данных

1. Интерфейс ввода данных
Проблема:
Не передаются параметры дат в приложение для расчёта. Расчетный период
жестко зафиксирован как 7 дней при отсутствии аргументов.
Решение:
● Добавление в пользовательский интерфейс
отвечающей за начало и конец расчёта.
● Передача этих параметров в оптимизатор.
отдельной
части,
5

6. Механизм буферов

Проблема:
При активации use_buffers=True возникают ошибки баланса: уравнения
BufBal не учитывают временные лаги между стадиями, что приводит к
отрицательным значениям запасов. Ограничения BufMax и BufNonNeg
работают некорректно.
Решение:
● Ввести явные переменные для "производства в буфер" и "потребления из
буфера".
● Добавить проверку неотрицательности через промежуточные
переменные.
6

7. Оптимизация загрузки

Проблема:
Модель производит избыточную продукцию из-за отсутствия ограничений на
финальные буферы. Не реализовано требование B[b,p,T-1] = 0 для
нефинальных буферов, что позволяет накапливать незавершенное
производство без потребления.
Решение:
● Добавить ограничение для очистки буферов в конце периода.
7

8. Учёт приоритетов

Проблема:
Приоритеты из файла заказов не влияют на планирование сроков
выполнения. Штрафы shortfall_j рассчитываются без учета задержек
относительно даты заказа. Нет взвешивания штрафов по формуле.
Решение:
● Внедрить взвешенные штрафы в целевую функцию.
8

9. Плавность производства

Проблема:
Низкие веса switch_penalty (0.5) и parallel_penalty (0.2) не предотвращают
частую смену продуктов. Штраф за колебания выпуска delta_q не включен в
целевую функцию, что приводит к "рваному" графику с резкими скачками
производства.
Решение:
● Увеличить веса: switch_penalty=1.0 → 2.0 (штраф за смену продукта
на участке), parallel_penalty=0.2 → 0.5 (штраф за одновременное
производство разных продуктов на одном участке).
● Добавить штраф за колебания выпуска.
9

10. Обработка конвейеров

Проблема:
Не реализована поддержка конвейерных линий, где операции строго
последовательны и синхронизированы. Этапы типа "Конвейер" требуют
специальных ограничений для синхронизации времени начала/окончания
операций между станциями.
Решение:
● Ввести переменные порядка операций seq_{p,s1,s2,t} и ограничения
10

11. Переналадки

Проблема:
Механизм переналадки не интегрирован с основной моделью. Переменная
Changeover_time не влияет на доступное время производства, а формулы не
проверены на корректность.
Решение:
● Добавить ограничение потребления времени переналадки.
● Связать с переменными start через бинарные индикаторы смены
продукта.
● Провести верификацию на тестовых данных с известным временем
переналадки.
11

12. Проверка буферов

Проблема:
Начальные значения буферов (Start_size_buffer) загружаются без проверки
на:
● Отрицательные значения.
● Превышение Max_size_buffer.
● Согласованность между связанными буферами.
Решение:
● Добавить валидацию при загрузке данных.
12

13. Валидация входных данных

Проблема:
Отсутствует обработка критических ошибок в данных: NaN в числовых
полях, Конфликты (например, Actual_rate > Nominal_rate), Отсутствующие
изделия в маршрутных картах.
Решение:
Реализовать многоуровневую проверку: Базовый слой, Логическая
валидация, Консистентность.
13

14.

Пример исходных данных
Stage
number
Step
Area
Actual
rate
Max size Changeover
Buffer before
buffer
time
1
Распаковка
Распаковка
1,00
100
10
2
Сборка
Конвейер
1,00
100
10
3
Предустановка
Цианы
1,00
100
10
4
Установка ПО
Цианы
1,00
100
10
5
Тестирование
Цианы
1,00
100
10
6
Разливка ПО
(откат)
Цианы
1,00
100
10
7
Постпроверка
Цианы
1,00
100
10
8
ОТК
ОТК
1,00
100
10
9
Упаковка
Упаковка
1,00
100
10
Buffer after
ЗЦС (начало) Буфер сборки
Буфер
тестирования
Буфер
Буфер
тестирования предустановки
Буфер
Буфер
установки ПО тестирования
Буфер
Буфер
тестирования разливки ПО
Буфер
Буфер
разливки ПО постпроверки
Буфер
Буфер ОТК
постпроверки
Буфер
Буфер ОТК
упаковки
Буфер
ЗЦС (конец)
упаковки
Буфер сборки
14

15.

План производства
Start
End
Area
Product
2025-06-06 08:00
2025-06-06 08:10
Raspakovka
Al'tair-003N_(foto)
1
3
2025-06-06 08:00
2025-06-06 08:10
Raspakovka
Rubezh-N
1
11
2025-06-06 08:00
2025-06-06 08:10
Stapel'
Al'tair-003N_(foto)
2
1
2025-06-06 08:10
2025-06-06 08:20
Konvejer
Rubezh-N
2
1
15
Stage Quantity

16.

Максимум выпуска
16

17.

Узкие места
17

18.

Выполнение заказов
18

19.

Равномерность выпуска
19

20.

Загрузка рабочих мест
20

21. Спасибо за внимание!

21
English     Русский Rules