Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Обработчики событий





 

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

Для отношения матчинга определено четыре типа событий (рис. 21):

OnEstablish - установить событие резервирования в матчинге,

OnBreak - установить событие разрыва резервирования в матчинге,

OnMatchingFailed – агенты не соглашаются установить отношение матчинга,

OnReservationFailed – агенты устанавливают отношение матчинга, но резервирование не выполняется.

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

Object_Instance – агент, который является объектом в данном отношении матчинга,

Subject_Instance – агент, который является субъектом в данном отношении матчинга,

Matcher_Instance – матчер агентов.

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

 

Находясь в окне Edit matching condition, перейдите во вкладку Events, установите флаг активности события резервирования (рис. 21).

Рис. 21. Установка активности события резервирования

 

Свяжите с событием резервирования скрипт. Для этого нажмите на кнопку и в появившемся редакторе скриптов наберите тело скрипта (рис. 22). Параметрами скрипта – обработчика события резервирования, в соответствии с тем, как определены стороны отношения в матчинге, являются:

Object_Instance – агент самолета, который является объектом в данном отношении матчинга,

Subject_Instance – агент отправителя, который является субъектом в данном отношении матчинга.

 

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

with “ имя агента ” do

begin

действия с использованием атрибутов агента, к которым происходит обращение только по имени, - “ имя атрибута”

end;

 

Begin

; вычисление значений атрибутов агента самолета (вместо обращения

; "Object_Instance"."Airplane load" и т.п. используется

; "Airplane load" и т.п. Для обращения к атрибутам агента

; отправителя используется полная форма записи, например,

; "Subject_Instance"."_Sender volume". Для обращения к значениям

; атрибутов, вычисляемых матчером, также используется полная форма

; записи, например, "Matcher_Instance"."Current fee")

with "Object_Instance" do

Begin

; вычисление текущей загрузки самолета

"Airplane load":= "Airplane load" + "Subject_Instance"."_Sender

volume";;

; вычисление свободной грузоподъемности самолета

"Airplane free volume":= "_Airplane volume" - "Airplane load";;

; вычисление коэффициента загрузки самолета в процентах

"Usage level":= 100 * "Airplane load" / "_Airplane volume";;

; вычисление платы, полученной самолетом. Матчер запускает скрипт

; Calculate Current fee для вычисления значения платы от каждого

; отправителя, агент которого резервирует самолет. Значение

; атрибута Current fee очередного отправителя, разместившего груз

; на самолете, добавляется к суммарной плате, полученной самолетом

; от всех отправителей

"Airplane account":="Airplane account" +

"Matcher_Instance"."Current fee";;

; добавление идентификатора отправителя в список отправителей,

; грузы которых размещены на самолете. Add – встроенная функция

; матчера, которая выполняет эту операцию

"Sender names".Add("Subject_Instance"."_Sender name");

;Агент самолета получает от матчера значение тарифа за перевозку

; 1 кг груза, вычисленное с помощью скрипта Calculate Rent fee, и

; записывает это значение в соответствующий атрибут

"Rent fee":= "Matcher_Instance"."Rent fee";;

End;

; вычисление значений атрибутов агента отправителя (вместо обращения

; "Subject_Instance."Current fee" и т.п. используется

; "Current fee" и т.п. Для обращения к атрибутам агента

; самолета используется полная форма записи, например,

; "Object_Instance"."_Airplane name". Для обращения к значениям

; атрибутов, вычисляемых матчером, также используется полная форма

; записи, например, "Matcher_Instance"."Current fee")

with "Subject_Instance" do

Begin

; отправитель получает идентификатор зарезервированного им

; самолета

"SenderAirplane Name":= "Object_Instance"."_Airplane name";;

; отправитель получает от матчера значение платы за размещение

; груза, которое вычисляется с помощью скрипта

; Calculate Current fee

"Current fee":= "Matcher_Instance"."Current fee";;

End;

End;

Рис. 22. Редактор скриптов обработчика событий

 

 

2.3.7 Сохранение онтологий предметной области “Логистика воздушного флота”

 

Дерево концептов дескриптивной онтологии и онтологии виртуального мира предметной области “Логистика воздушного флота” приведено на рис. 23.

 

Рис. 23. Дерево концептов дескриптивной онтологии и онтологии виртуального мира предметной области “Логистика воздушного флота”

 

Сохраните созданные онтологии (дескриптивную онтологию и онтологию мира заказов/ресурсов) при помощи кнопки под именем Shared Airplanes ontology. Расширение .ocl будет добавлено автоматически. По умолчанию, файл онтологии будет размещен в разделе Ontology Samples.

Завершите работу с конструктором онтологий (File -> Close).

 







Дата добавления: 2015-10-19; просмотров: 461. Нарушение авторских прав; Мы поможем в написании вашей работы!




Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...


Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...


Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...


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

Решение Постоянные издержки (FC) не зависят от изменения объёма производства, существуют постоянно...

ТРАНСПОРТНАЯ ИММОБИЛИЗАЦИЯ   Под транспортной иммобилизацией понимают мероприятия, направленные на обеспечение покоя в поврежденном участке тела и близлежащих к нему суставах на период перевозки пострадавшего в лечебное учреждение...

Кишечный шов (Ламбера, Альберта, Шмидена, Матешука) Кишечный шов– это способ соединения кишечной стенки. В основе кишечного шва лежит принцип футлярного строения кишечной стенки...

МЕТОДИКА ИЗУЧЕНИЯ МОРФЕМНОГО СОСТАВА СЛОВА В НАЧАЛЬНЫХ КЛАССАХ В практике речевого общения широко известен следующий факт: как взрослые...

СИНТАКСИЧЕСКАЯ РАБОТА В СИСТЕМЕ РАЗВИТИЯ РЕЧИ УЧАЩИХСЯ В языке различаются уровни — уровень слова (лексический), уровень словосочетания и предложения (синтаксический) и уровень Словосочетание в этом смысле может рассматриваться как переходное звено от лексического уровня к синтаксическому...

Плейотропное действие генов. Примеры. Плейотропное действие генов - это зависимость нескольких признаков от одного гена, то есть множественное действие одного гена...

Studopedia.info - Студопедия - 2014-2025 год . (0.008 сек.) русская версия | украинская версия