Алгоритм решений

График производства оптимизируется с помощью математически обоснованного решателя смешанного целочисленного программирования (MIP). Запустив процесс оптимизации, вы определите, какие блоки и в какой период необходимо извлекать, чтобы достичь цели. По завершении, для каждой задачи заполняется атрибут Период добычи, рассчитываются начальная и конечная дата.

Эти даты обозначают вероятную последовательность горных работ, основанную на периоде, этапе, горизонтальных и вертикальных зависимостях. Таким образом, вы можете создавать подвижные изображения задач (анимацию), чтобы иметь представление о том, как будет выглядеть рудник в тот или иной момент в будущем.

Периоды

Использовать скользящее окно

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

Например:

Если временной горизонт составляет 14 лет, а вы выбираете раздвижное окно на 8 лет с наложением в 5 лет, вы разделите данную задачу на 3 меньшие части. Во время первой "проходки" процесса будут учитываться все выемочные блоки при временном горизонте в 8 лет. Это решение определит блоки, которые будут разрабатываться в первые 3 года (размер окна - наложение).

При второй "проходке" процесса эти блоки будут исключены из задачи, а решение определит блоки, которые будут разрабатываться в годы с 4-го по 6-й.

При последней "проходке" процесса будут заданы работы на период с 7-го по 14-й годы.

На практике данное решение, полученное с помощью чувствительных значений раздвижного окна, не будет сильно отличаться для решений по всем выемочным блокам всего временного горизонта. Тем не менее, разница в показателях роста производительности может быть значительной. Учитывая пример, приведенный выше, здравый смысл подсказывает, что знание того, какие блоки будут разрабатываться в годы с 9-го по 14-й, не будет значительно влиять на блоки, планирующиеся к разработке в годы с 1-го по 3-й.

Входная фильтрация

Максимальная продолжительность разделения (дни)

Если установить флажок и ввести значение в поле Максимальная длительность разделения задачи (дни), все задачи, длительность которых превышает длительность срока, будут внутренне разделены на «части» длительностью, равной длительности срока, и не более. Решатель назначает периоды для каждого разделения отдельно, что позволяет планировать задачи по периодам. значение по умолчанию для поля — [Авто], и используется продолжительность периода, указанная на вкладке Оптимизировать .

Разделения, созданные для одной задачи, образуют цепочку зависимостей, то есть каждое разделение должно быть обработано по порядку и не может произойти после следующего разделения. Решение о том, отрабатывать задачу или нет, по-прежнему принимается для каждой задачи в целом: либо отрабатываются все части задачи, либо ни одна. Например: если есть две задачи, t1 и t2 с зависимостью от t1 > t2, то первое разделение из t2 зависит от (не должно быть выполнено ранее) последнего разделения из t1.

Если количества сообщаются за периоды, то они накапливаются путем разделения; если задача разделена на периоды, то ее количественные значения распределяются по периодам в соответствии с общей длительностью разделения, назначенной каждому периоду.

Примечание: разделение задач является внутренним процессом оптимизации: фактические задачи в плане не подразделяются. При применении решения по оптимизации к плану начало каждой задачи назначается в начале периода, к которому относится ее первое разделение. Затем зависимости применяются как обычно, что может переместить задачи на более поздние сроки.

Округление малых коэффициентов

Предварительная обработка задач иногда приводит к очень малым значениям расчетных коэффициентов. Например, для атрибутов массы с типичными значениями в диапазоне 1000–10 000 (измеренных в тоннах) некоторые задачи могут иметь значения порядка 0,001 (килограммов). Включение этих очень маленьких значений вместе с большими значениями может создать дополнительную нагрузку на решатель и замедлить оптимизацию. Часто эти небольшие значения можно округлить до нуля, не влияя на результат оптимизации.

Установите этот флажок, чтобы значения коэффициентов ниже указанного числа были увеличены до этого числа в соответствии с точностью отображения десятичной дроби. Десятичная точность устанавливается на странице Планирование | Вкладка Календарный план в группе Атрибуты, когда Единицы назначаются атрибутам.

Введите значение допуска округления малого коэффициента в соответствующем поле или примите значение по умолчанию 0,0001.

Встроенный

Приложение включает встроенный алгоритм решений, который был оптимизирован, с поддержкой нескольких ядер процессора. Количество ядер, которое можно использовать, зависит от ограничений, которые заданны опцией Ограничить число ядер для работы приложения в меню во вкладке Ресурсы > Многоядерный процессор в форма Опции | Система | Опции системы.

Gurobi

Приложение предоставляет интерфейс к хорошо известному коммерческому решателю Gurobi. Gurobi - один из нескольких коммерческих решателей на рынке, которые активно поддерживаются и улучшаются с течением времени. Хотя они имеют более высокую производительность и способны решать более сложные задачи, чем встроенный решатель, входящий в состав приложения, решение будет одинаковым или очень похожим, независимо от того, какой решатель вы выберете.

Примечание: Чтобы получить доступ к опциям Gurobi Solver, вам потребуется лицензия Gurobi или покупка времени в облачном сервисе Gurobi. Смотрите: Подготовка

Использовать системные настройки

При выборе этой опции заданные вами настройки будут перенесены во все проекты на одной машине. Это означает, что вам не нужно устанавливать настройки Gurobi для каждого нового проекта.

Использовать настройки проекта

Если были установлены системные настройки Gurobi (описанные выше), они будут отменены настройками проекта, которые вы зедсь задаете. Нажмите на кнопку Настройки, чтобы применить настройки, которые являются локальными для текущего проекта.

Критерии завершения (по окну)

Выберите, как алгоритм решений будет завершаться для каждого окна, на основе активных критериевм (выбранных галочкой), которые вы выбрали и указали.

Качество решения

(Необязательно.) Выберите для прекращения работы алгоритма при достижении указанного качества решения.

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

(Необязательно.) Укажите минимальное качество (0,00% <= x <= 100,00%) возможного решения, которое должно быть достигнуто до завершения работы алгоритма решений. Если не указано иное, качество решения по умолчанию составляет 95%.

Целевое значение

(Необязательно.) Выберите для прекращения работы алгоритма, если будет достигнуто указанное целевое значение (общая прибыль из извлеченных выемочных единиц).

Укажите минимальную общую прибыль, которая будет получена из выполнимого решения до прекращения работ алгоритма.

Улучшение целевого значения

(Необязательно.) Выберите для прекращения работы алгоритма решений, когда станет ясно, что для получения решений с более высокой общей прибылью может потребоваться значительное количество дополнительного времени.

Минимальный процент

(Только улучшение целевого значения.) Укажите минимальный процент улучшения в общей прибыли между последовательными решениями.

Максимум минут

(Только улучшение целевого значения.) Укажите максимальное количество минут времени обработки, которое можно использовать для получения минимального улучшения в общей прибыли.

Пример: настройки по умолчанию Минимальный процент = 0,01 и Максимум минут = 15 указывают, что, если улучшение общей прибыли между текущим и предыдущим решениями составляет менее 0,01% и требуется более 15 минут времени обработки для достижения этого улучшения, работу алгоритма необходимо остановить и использовать текущее выполнимое решение.

Минуты на прогон

(Необязательно.) Выберите, чтобы завершить работу алгоритма решений по истечении указанного количества минут.

Укажите максимальное количество минут времени обработки до завершения работы алгоритма.

Количество решений

(Необязательно.) Выберите, чтобы завершить работу алгоритма решений после того, как будет найдено указанное количество решений.

Укажите максимальное количество решений, которые будут найдены до завершения работы алгоритма.

Файл протокола

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

Завершение работы алгоритма решений вручную

Убедитесь, что приложение, для которого вы хотите завершить работу алгоритма решений, имеет активное окно Windows.

Нажмите клавишу ESC, чтобы вручную остановить решатель в любой момент. Вам будет предложено подтвердить прерывание обработки. Нажмите на «Да», чтобы разрешить алгоритму завершить работу при первой доступной возможности.

В зависимости от размера блочной модели, количества блоков в минимальной выемочной единице и настроек функции Проект | Опции | Система | Опции системы | Ресурсы > Многоядерный процессор > Ограничить число ядер для работы Micromine, завершение алгоритма может занять некоторое время. Если вам требуется доступ к решению, вероятно, вам придется набраться терпения во время этого процесса,

Подсказка: во время окончания работы алгоритма вы можете использовать Диспетчер задач Windows, чтобы отследить производительность компьютера и определить, сколько дополнительного времени может потребоваться для завершения процесса. Загрузка процессора и памяти будет уменьшаться по мере того, как алгоритм будет завершать работу каждого из своих процессов.

После того как работа алгоритма решений будет завершена, если будет доступно выполнимое решение с качеством не менее 30%, вам будет предложено следующее:

Нажмите на «Да» для обработки и загрузки текущего решения из алгоритма решений.

Вывод

Оптимизировать