Читайте также:
|
|
Собранные телевизионные приемники после сборки проходят испытания на станции технического контроля. Если в процессе контроля оказывается, что функционирование телевизора ненормально, его переправляют на участок наладки, после которой он вновь возвращается на станцию контроля для повторной проверки. После одной или нескольких проверок телевизор попадает в цех упаковки. Описанная ситуация иллюстрируется схемой, приведенной на рис. 2.38.
На одном месте на любом из стеллажей может храниться один телевизор, ожидающий контроля или наладки, соответственно. Телевизионные приемники попадают на станцию контроля каждые 5±2 мин. На станции работают Nk контролеров, каждому из них на проверку телевизора нужно 9±3 мин. Примерно 85 % телевизоров проходят проверку успешно и попадают в цех упаковки, остальные 15 % попадают на участок наладки, на котором работает один рабочий- наладчик. Наладка занимает 30+10 мин.
134
Часть 2. Имитационное моделирование
Оптимизация на имитационных моделях
135
Контролеры Рис. 2.38
Пусть каждый запуск имитационной модели моделирует один рабочий день (8 ч = 480 мин.).
Сформулируем задание на оптимизацию.
Каждый контролер получает заработную плату независимо от времени его полезной работы в течение рабочего дня. Поэтому администрация стремится к тому, чтобы коэффициент полезного действия (КПД) каждого контролера приближался к 1. КПД контролера оценивается как отношение полезного времени его работы, связанного с контролем телевизионных приемников, к продолжительности рабочего дня. Кроме того, администрация учитывает, что количество мест на стеллаже 1 (см. рис. 2.38) ограничено десятью. В этом смысле администрация интерпретирует оптимизацию системы контроля как определение такого количества контролеров, при котором их КПД приближается к 1 при ограничении на объем стеллажа 1.
Структура модели иллюстрируется рис. 2.39.
Ниже приводится описание переменных модели.
Имя переменной | Смысловое содержание | Тип переменной | Начальное значение |
State | Состояние наладчика: 0 - свободен, 1 - занят | Integer | |
Nk | Количество контролеров на станции контроля | Integer | |
Nek | Количество свободных контролеров | Integer | |
q | Текущая длина очереди перед станцией контроля | Integer | |
Qjnax | Максимальная длина очереди перед станцией контроля | Integer | |
Tsk | Общее полезное время занятости контролеров | Real | |
KPD | Коэффициент полезного действия контролера - отношение полезного времени к общему времени работы: KPD:=(Tsk/Nk)/480; | ||
clock | системная переменная | Real | |
duration | системная переменная | Real | |
objective | системная переменная | Real | |
run | системная переменная | Integer | |
seed | системная переменная | Integer | |
tag | системная переменная | Integer |
Блок 1 (TV) создает тэги, каждый из которых имитирует телевизионный приемник, поступающий на станцию контроля.
Блок 2 (technical control) имитирует станцию контроля, на которой работает Nk контролеров. Если все контролеры заняты, тэги-телевизоры становятся в очередь перед данным блоком и ждут, пока хотя бы один контролер не освободится.
Блок 3 (rapairing) — блок наладки. Если наладчик занят, тэги-телевизоры становятся в очередь перед данным блоком и ждут, когда он освободится. После наладки они отправляются на повторный контроль.
Блок 4 (wraping) — блок упаковки.
136
Часть 2. Имитационное моделирование
Оптимизация на имитационных моделях
137
objective:=Q_max+(l-KPD); haltQ |
Следующее описание определяет содержимое основных полей блоков разветвителей и очередей модели.
Блок 1. (tv construction) Mean Time: 5; Standard Deviation: 3; Release Condition: 1; Beginning Effect: tag += 1;
Разветвитель 1.
Decision Type: Multiple Routing condition: technical control: 1; tv construction: 1;
ОчередЬ 2 (technical control queue)
Sorting Order: FIFO Entering Effect: q+=l; if q>Q_max then Q_max:=q; Departing Effect: q—=1;
Блок 2. (technical control)
Mean Time: 9; Standard Deviation: 6; Release Condition: Nck>0; (Вхождение в блок возможно, когда свободен хотя бы один контролер.)
Beginning Effect: Nck-=1; Launch Effect: Tsk:=Tsk+duration;
Системная переменная duration определяет время, в течение которого тэг будет находиться в блоке. Обычно системная переменная duration используется в поле Launch Effect. В данном примере эта переменная используется для определения общего полезного времени контролеров путем накопления интервалов времени, потраченных на контроль телевизионных приемников.
Ending Effect: Nck+=1;
Разветвитель 2.
Decision Type: Probabilistic Routing condition: repairing: 0,15; wraping:
0,85;
Очередь 3 (rapairing queue) Sorting Order: FIFO
Блок 3. (rapairing) Mean Time: 30; Standard Deviation: 20; Time Distribution: Rectangular Release Condition: State==0; Begining Effect: State—I; Ending Effect: State:=0;
Блок 4. (wraping) Release Condition: 1;
Внесем в календарь событий операторы присваивания начальных _ значений переменным MS- модели, оператор определения переменной objective и оператор остановки прогона (halt) по истечении 8 рабочих часов (480 мин.).
Рис. 2.40. Начальное содержимое календаря событий для модели технического
контроля изделий
Количество свободных контролеров Nek устанавливается равным общему количеству контролеров Nk (ситуация перед началом работы). Выполнение оператора присваивания (Nck:=Nk) планируется с небольшой задержкой (0.001) сразу после запуска модели (ниже поясняется необходимость такой задержки).
Функция objective вычисляется после определения KPD непосредственно перед завершением прогона. Структура этой функции ориентирована на поиск такого количества контролеров (Nk), которое обеспечивало бы, с одной стороны, минимальную длину очереди (Q_max), а с другой — эффективную работу контролеров (KPD, близкий к единице). В структуре формулы: objective:=Q_max+(l—KPD) оба этих фактора достигаются при поиске такого значения Nk, при котором objective достигает минимума.
Определенная таким образом функция objective и будет определять целевую функцию оптимизации модели.
Заметьте, что в отличие от целевой ячейки электронной таблицы определенная здесь целевая функция оптимизации имитационной модели не имеет аналитической зависимости от варьируемой переменной Nk.
Запуск процесса оптимизации связан с выбором пункта Optimize из меню Micro Saint {Execute —> Optimize). Результатом этого выбора будет запуск приложения OptQuest и открытие главного окна OptQuest.
Определение оптимизационной задачи
Прежде всего необходимо создать новый файл с расширением ОРТ или открыть существующий файл, связанный с оптимизируемой имитационной моделью (подпункт New или Open пункта главного меню File, соответственно, рис. 2.41). В дальнейшем в таком файле будут храниться параметры оптимизации.
При создании нового файла, для того чтобы определить оптимизационную задачу, необходимо:
1) выбрать изменяемые переменные из переменных имитационной модели;
138
Часть 2. Имитационное моделирование
Оптимизация на имитационных моделях
139
Рис. 2.41. Главное окно OptQuest (исходное состояние)
2) указать — максимизировать или минимизировать целевую фун
кцию модели;
3) если необходимо, ввести дополнительные ограничения для из
меняемых переменных.
Выбор изменяемых переменных (Edit —> Variables) приведет к открытию окна рис. 2.42.
Двойной щелчок мыши в поле Select (рис. 2.42) изменяет статус переменной: Yes — переменная выбрана для изменения OptQuest, No — нет.
В поле Name отображаются имена переменных MS-модели. В полях Lower Bound и Upper Bound указываются соответственно возможная нижняя и верхняя границы для соответствующей переменной. Для облегчения поиска можно указать предполагаемые значения изменяемой переменной в колонке Suggested Value. Если предполагаемые значения выходят за границы или не удовлетворяют ограничениям, то они игнорируются. Тип переменной (Integer/Real) переносится в таблицу рис. 2.42 из MS-модели автоматически.
Установка параметров оптимизации (Edit —> Settings) в окне рис. 2.41 связана с определением вида оптимизации (поиск максимума или минимума целевой функции) и установкой количества прогонов модели (обычно выбирается один). Если выбирается большее количество запусков, то значение целевой функции усредняется по ко-, личеству запусков (см. рис. 2.48).
Ограничения (Edit —> Constraints) в окне рис. 2.41 устанавливаются только для входных переменных. OptQuest позволяет пользователю задавать произвольное число ограничений в виде линейной комбинации изменяемых переменных. Если предположить, что изменяемые переменные — это Xi (для i = 1,..., п), то любое ограничение может быть записано в следующей форме: al*Xl + а2*Х2 +... + ап*Хп # Ь, где ai и b — константы, а знак '#' заменяет одно из следующих отношений: '=', ':=', '= =' (отношения равенства) или '<=', '<','>=','>' (отношения порядка).
В нашем примере одна изменяемая переменная — число контролеров Nk. Мы задаем для нее единственное ограничение: Nk <= 6. Для этого случая окно ограничений будет выглядеть следующим образом (рис. 2.43).
Рис. 2.42.Таблица выбора изменяемых переменных
В этом окне представлен весь список переменных нашей имитационной модели. Из них мы должны выбрать только те переменные, которые для имитационной модели являются входными. Значения таких переменных не должны вычисляться или изменяться внутри MS-модели. Только OptQuest в процессе оптимизации может варьировать значениями этих переменных, ориентируясь на достижение оптимального значения целевой функции. В нашей)модели такой входной переменной является только одна — это переменная Nk, остальные зависят от нее (прямо или косвенно).
140 |
141 |
Оптимизация на имитационных моделях |
Часть 2. Имитационное моделирование Установка дополнительных опций
Меню Опций (Options) рис. 2.41 позволяет установить время оптимизации и выбрать вариант алгоритма оптимизации.
Опция «Ускоритель нейронных сетей» (Neural Network Accelerator) разработана, чтобы улучшить мощность поиска OptQuest'a. При использовании нейронной сети OptQuest собирает информацию о получаемых значениях целевой функции при различных значениях изменяемых переменных. Затем эта информация используется для обучения нейронной сети в процессе поиска. OptQuest автоматически определяет как много данных требуется и как часто нужно повторять обучение, основываясь на том, что время проведения имитации модели и время оптимизации ограничено пользователем.
В меню опции «Ускоритель нейронных сетей» 4 пункта:
1. No Neural Network (Без нейронной сети). Этот механизм поиска
на каждом шаге оптимизации (Simulation) формирует новые значения
входных переменных и отправляет их в имитационную MS-модель
для формирования оценки целевой функции objective. Использование
этого механизма предпочтительно для имитационных моделей с ма
лым количеством изменяемых переменных.
2. Conservative Neural Network (Консервативная нейронная сеть).
Этот алгоритм поиска связан с использованием консервативного пра
вила для того, чтобы отбрасывать потенциально плохие решения. Ис-
спользование этого пункта целесообразно, если на имитацию отведе
но относительно мало времени.
3. Aggressive Neural Network (Агрессивная нейронная сеть). Эта опция
предпочтительна для большинства моделей и указана по умолчанию.
4. Extremely Aggressive Neural Network (Экстремально агрессивная
нейронная сеть). Выбор этого пункта сильно ускоряет поиск, увели
чивая риск потерять некоторые хорошие решения. Рекомендуется для
моделей, имитация которых очень продолжительна и в которых до
статочно приближенного решения.
Дата добавления: 2015-07-16; просмотров: 57 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Часть 2. Имитационное моделирование | | | Запуск и остановка поиска |