Delist.ru

Мониторинг и управление реализацией промышленной продукции в условиях конкуренции (18.09.2009)

Автор: Мазуренко Сергей Владимирович

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

Желание i-го игрока образовать связь ij можно описать переменной xijout, которая равна единице, если игрок i хочет образовать связь ij, и нулю в противном случае. Индекс «out» при переменной показывает, что связь ij по отношению к игроку i является исходящей. Если xijout равна единице, будем говорить, что игрок i имеет предложение к игроку j.

Аналогично можно определить переменную xinij , говорящую о том, что игрок i согласен на образование дуги ji от игрока j. Индекс «in» говорит о том, что дуга ji является входящей по отношению к игроку i. Если xinij равно единице, будем говорить, что игрок i принимает предложение игрока j.

Действие xi игрока в сетевой игре представляет пару xi=(xjout, xini) векторов xjout=(xj1out,…, xjnout), xjin=(xj1in,…, xjnin), . Множество всевозможных пар этих векторов обозначим через Xi0 .

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

Тогда в каждой конкретной игре множество Xi допустимых действий i-го игрока будет подмножеством множества Xi0 .

Обстановка x?i для i-го игрока представляет пару а x-i=(xout-i, xin-i) ?матриц размера n((n-?1), элементами которых являются компоненты допустимых действий xoutij, xijinвсех игроков, кроме i-го. Профиль действий x складывается из действия игрока xi и его обстановки x-i, в этом случае будем считать, что x=?(xi, x?-i ) .

Пусть реализовался некоторый профиль действий x=?(xout, xin ) . Тогда, если мы считаем, что для образования связи ij необходимо и достаточно согласия обоих игроков, результирующая сеть g определяется поэлементным умножением матрицы xout на транспонированную матрицу xin , т.е. g=?xout(?xinT . Множество сетей, достижимых при заданном множестве профилей действий X, обозначим через G(X).

В результате стратегическую модель сетевой игры можно определить как совокупность ?множества игроков N, их функций выигрыша fi((), i ??N и множеств допустимых действий

Xi (?Xi0, i(N.

Для организации выполнения фонового процесса в сценарий вводятся дополнительные фрагменты 3-х типов:

создающие (C) — создают фоновый процесс;

б). Наступление события связано с изменением состояния некоторого ресурса, которым может быть сам фоновый процесс или любой другой объект.

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

Pk, Pm — фоновые процессы. Пунктирными стрелками с закрашенным наконечником показаны управляющие действия, связанные с созданием и уничтожением фоновых процессов. Пунктирными стрелками с наконечником в виде уголка показаны сообщения от фоновых процессов, сигнализирующие о наступлении ожидаемого события. Жирными стрелками показано взаимодействие между фрагментами основной нити сценария и фоновыми процессами, а также взаимодействие фоновых процессов между собой.

Общая схема организации выполнения и взаимодействия фоновых пользовательских процессов

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

Организация параллельных пользовательских процессов

а) б) в)

а) с принудительным уничтожением фонового процесса;

б) с ожиданием самостоятельного завершения фонового процесса;

в) комбинированный вариант завершения.

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

  Программная реализация МНОГОРОЛЕВЫХ деловых игр

В четвертой главе диссертации рассматриваются вопросы построения программного комплекса автоматизации и моделирования системы управления реализацией промышленной продукции в условиях конкуренции с использованием многоролевых деловых игр (ДИ).

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

По умолчанию для получения информации о параметрах организационно-структурной среды многоролевой ДИ параметрами каркаса используется файл BGInfo.bgi. bgi-файл является базой данных Microsoft Access, состоящей из следующих таблиц: BG – содержит информацию об экземплярах ДИ и ограничениях на их количество; Roles – содержит информацию о предусмотренных в ДИ ролях и ограничениях на количество их экземпляров.

Для обеспечения синхронизации процессов в локальной сети в качестве блокирующей переменной используется файл нулевого размера. Наличие файла сигнализирует о том, что ресурс занят, отсутствие – что свободен.

Выполнена программная реализация функций:

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

Параметры:

FileName: String – путь и имя создаваемого файла.

Результат: (Boolean) признак успешного создания файла по окончании ожидания.

DeleteSyncFile – удаляет файл с указанным именем. Удаление файла приводит к разблокированию других процессов, ожидающих возможности занятия ресурса.

Параметры:

FileName: String – путь и имя удаляемого файла.

Результат: (Boolean) признак успешного удаления файла.

CreateSyncFile – создает в локальной или сетевой папке файл нулевого размера с указанным именем. Создание файла приводит к снятию блокировки ожидающих его появления других процессов.

Параметры:

FileName: String – путь и имя создаваемого файла.

загрузка...