Проектирование программного сервиса для оптимизации информационной системы виртуального предприятия
Выбор программных средств. Применение метода сравнения онтологий, реализация компьютерной программы для создания виртуального предприятия. Оптимизации выполнения распределенной задачи в рамках вычислительной системы с помощью онтологического подхода.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 10.12.2019 |
Размер файла | 1,7 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
-aВозможность создания бессмысленных, ошибочных утверждений.
Благодаря анализу, проведенному в таблице, представляется возможным сравнить и выбрать наиболее удобный и полный язык описания онтологий.
Во-первых, язык OWL создан на основе языка DAML+OIL, в котором планируется устранить все ограничения конструкций языка DAML+OIL. Также OWL позволяет вводить основные функции над множествами, такие ка: объединение, пересечение, дополнение и непересекаемость, что позволяет создавать взаимоисключающие классы.
Во-вторых, язык OWL обладает наибольшим набором возможностей, чем RDF, например, расширяет набор терминов. Более того, с помощью данного языка возможно создавать локальные ограничения области распространения, что уточняет описание и расширяет возможности в процессе создания онтологии.
Более того, язык OWL рекомендуется консорциумом Всемирной паутины, поскольку объединяет лучшие черты своих предшественников и дополняет своими преимуществами.
Приведенные выше аргументы позволяют утверждать, что язык описания онтологий OWL является хорошим выбором при построении онтологий, поскольку нельзя игнорировать его преимущества по сравнению с другими языками. Более того, на сегодняшний день продолжается улучшение языка, что говорит о его дальнейшей применимости, значимости и развитии. Более того, в рамках выбранного языка также необходимо определиться со средой проектирования онтологий, которых, на сегодняшний день, существует достаточно много.
1.5. Выбор инструментального средства обработки онтологий
Для разработки онтологий используются программные продукты, которые обеспечивают общую поддержу онтологического анализа. На сегодняшний день, существует большое количество инструментов, которые способны поддерживать основные функции онтологического анализа: визуализация, документирование, объединение, сравнение, импорт и экспорт онтологий различных форматов.
Рассмотрим основные программные продукты, представленные в таблице 1.3., с целью выбора наиболее оптимального в рамках данной работы для дальнейшего проектирования онтологий.
Таблица 1.3. Характеристика инструментальных средств построения онтологий
Редактор |
Доступность |
Архитектура ПО |
Основной язык представления |
Интерфейс пользователя |
Графические средства редактирования |
Хранение онтологий |
Методы моделирования |
Формат импорта/экспорта |
|
OntoEdit |
Свободная лицензия |
3-х уровневая |
OXML |
Локальное приложение |
Да |
Файлы |
Сложная таксономия и иерархия |
Импорт: OXML, RDF(S), DAML+OIL, FLogic. Экспорт: OXML, RDF(S), DAML+OIL, FLogic. |
|
OilEd |
Открытый код |
3-х уровневая |
DAML+OIL |
Локальное приложение |
Нет |
Файлы |
Сложная таксономия и иерархия |
Импорт: RDF(S), OIL, DAML+OIL, SHIQ. Экспорт: RDF(S), OIL, DAML+OIL, OWL, SHIQ DIG |
|
WebOnto |
Свободный доступ |
Клиент-серверная |
OCML |
Web-приложение на основе Java-апплетов |
Да |
Файлы |
Импорт: OXML, RDF(S). Экспорт: OXML, Ontolingua, RDF(S). |
||
Protege |
Открытый код |
3-х уровневая |
OKBC |
Локальное приложение |
Да |
Файлы, СУБД |
Сложна таксономия |
Импорт: XML, RDF(S), XMI, XML Schema. Экспорт: XML, RDF(S), XML Schema, FLogic, CLIPS, Java, XMI. |
|
Ontolingua |
Свободный доступ |
Клиент-серверная |
Ontolingua |
Web-приложение на основе HTML |
Нет |
Файлы |
Набор аксиоматизированных таксономий и отношений между ними |
Импорт: Ontolingua, KIF, CML, IDL. Экспорт: Ontolingua, KIF, LOOM, CLIPS, CML, Epikit, Prolog, IDL. |
Стоит отметить, что из предложенных программных продуктов, только Protйgй поддерживает язык OWL. Более того, Protйgй имеет достоинства перед другими инструментами. Во-первых, данный инструмент свободно распространяется, является свободным программным продуктом с открытым исходным кодом. Во-вторых, Protйgй один из немногих инструментов, который может хранить онтологии в базах данных, что позволяет управлять большими онтологиями. Более того, структура онтологий аналогична иерархической структуре класса. Так, что данный программный продукт имеет возможность генерировать формы получения знаний для введения экземпляров классов и подклассов.
Не менее важным достоинством Protйgй является простота инструкций для описания онтологий, большое количество справочных материалов, а также дружелюбный графический интерфейс, что позволяет при небольшом уровне квалификации разобраться в инструменте даже без привлечения специалистов.
Редактор Protйgй использует фреймовую модель представления знаний и имеет готовые плагины. Данные возможности позволяет использовать инструмент для редактирования моделей предметной области, которые описаны в различных форматах, например, UML, XML и так далее.
Подводя итог вышесказанному, необходимо еще раз отметить, что был проведен анализ различных подходов определения виртуального предприятия, что помогло сформулировать собственное определение. Также было охарактеризовано виртуальное предприятие, рассмотрены основные отличия от традиционного предприятия, что позволило вывить ключевые отличия и охарактеризовать виртуальное предприятие, как трансформирующееся предприятие, которое объединяется, с целью выполнения общей цели и расформировывается по окончании выполнения задачи.
Далее, были рассмотрены основные методы построения онтологий и охарактеризована онтология задачи, что поможет в рамках текущей работы построить необходимые онтологии. Также был проведен сравнительный анализ языков для построения онтологий, в результате чего, был выбран язык OWL, так как он соединяет в себе достоинства предыдущих языков, таких как RDF и DAML+OIL, а также дополнен преимуществами в сравнении с этими языками. На сегодняшний день, данный язык продолжают разрабатывать и совершенствовать, что также является преимуществом и именно язык OWL рекомендован к использованию консорциумом Всемирной паутины.
Далее, в рамках данной главы, были рассмотрены наиболее популярные и современные программные инструменты для построения онтологий, среди которых, путем сравнения по критериям, был выбран программный продукт Protйgй, поскольку он поддерживает язык OWL, обладает рядом преимуществ и, что немаловажно, достаточно прост в освоении без наличия специализированных знаний, так как имеет большое количество справочных материалов, а также удобный графический интерфейс.
Глава 2. Вычисление меры близости онтологий
Для реализации основной идеи данной работы необходимо описать предложенный метод сравнения онтологий, для того, чтобы выполнить отображение онтологии задачи на онтологию вычислительной системы, с целью получения коэффициента близости онтологий. Использование метода, предложенного в статье [28, 29] и охарактеризованного в п.2.1. предполагает трудоемкие математические вычисления. Таким образом, необходимо описать сам алгоритм, предложить способы его усовершенствования и реализовать программный инструмент для корректного и точного подсчета коэффициента близости онтологий.
2.1 Мера близости онтологий
Как уже было сказано, онтологии позволяют формализовать знания, связанные с описанием мира. Семантическую близость рассматривают между понятиями, терминами, экземплярами, отношениями и самими онтологиями. Когда несколько онтологий используются для одного приложения, необходимо, чтобы эти онтологии имели некоторое сходство, близость. Данный подход может упростить выбор онтологий, в случае разработки системы, которая использует их. Кроме того, это может помочь оценить эволюцию одной онтологии, путем сравнения ее различных версий.
На сегодняшний день, существует достаточное количество работ, посвященных оценке близости двух понятий в онтологии. Однако, не так много исследований, посвященных оценке близости между онтологиями. Например, подход для сравнения двух онтологий предложен в работах специалистов Ngom A., Kamara-Sangare F. [28, 29].
Данный алгоритм состоит из 5 шагов [29]:
1. Определение наборов (O1\O2), (O2\O1), (O1/\O2).
2. Оценка меры семантической близости между понятиями каждого набора, определенного на шаге 1.
3. Расширение онтологии O1 и O2, используя набор O1/\O2. На этом шаге, для каждого понятия с из O1/\O2 мы ищем их потомков xi (i прин N) в O1 (соответственно в O2) и добавляем их как потомков понятия с в O2 (соответственно в O1), если они не существуют в этой онтологии.
4. Далее, определяем O'1?O'2, которые представляют собой набор общих понятий 2 онтологий O'1 и O'2.
5. В результате, оцениваем сходство между онтологиями, используя шаг 2 и шаг4.
Для оценки семантической близости используется метрика, которая измеряется формулой [29]:
где функция - это среднее значение похожести отдельных концептов соответствующей онтологии.
, щ, б и в - параметры, которые позволяют учитывать значение близости по отношению к количеству понятий множеств и количеству понятий онтологий. Данные параметры вычисляются по следующим формулам:
,
где ni - количество понятий Оi, добавленных для расширения Oj.
Коэффициент целостности () онтологии O1 вычисляется по формуле:
Коэффициент целостности () онтологии O2 вычисляется по формуле:
Для вычисления меры похожести между отдельными элементами онтологий используется метод, предложенный в работе [18,19], вычисления выполняется в соответствии со схемой, представленной на рисунке 1.2.
Рисунок 1. 2. Иллюстрация меры похожести понятий (из работы [3]).
Таким образом, для вычисления меры похожести между отдельными элементами онтологий используется следующая формула [28]:
где c3 - это наиболее близкий общий родитель.
Таким образом, для оценки сходства между онтологиями используются наборы (O1\O2), (O2\O1) и (?), то есть различия между онтологиями O1 и O2 рассматриваются с помощью наборов (O1\O2), (O2\O1), а сходство между двумя онтологиями - с помощью набора (?). Рисунок 1.3. отображает расширение онтологий и . На данном рисунке 1.3. выделяется 3 части:
1. (O1\O2) = {A, C, E} - набор понятий, представленных в онтологии O1 и не представленных в онтологии O2.
2. (O2\O1) = {R, S, T, W, X, Y} - набор понятий, представленных в онтологии O2 и не представленных в онтологии O1.
3. (?) = {B, C, D, E, F, G} - набор понятий, представленных в и.
Рисунок 1.3. Представление расширения онтологий
Стоит отметить, что мера близости обладает следующими свойствами [29]:
1. Симметрична, то есть = .
2. Находится в промежутке от 0 до 1.
3. Если , то
Таким образом, вышеописанная модель сравнения онтологий является привлекательным средством для сравнения двух онтологий и выявления степени их семантической близости и был выбран, исходя из следующих положения, а именно:
1. Достаточно новый и мало используемый на практике способ.
2. Является одним из немногих методов, позволяющих сравнивать целые онтологии, а не отдельные понятия.
3. Может быть адаптирован для сравнения не только понятий, но и связей в онтологиях.
Стоит отметить, что, данный способ сравнения двух онтологий учитывает только лишь иерархическое наследование сущностей (классов), а более корректная модель, помимо наследования сущностей, должна также учитывать и связи между сущностями. Следовательно, необходимо доработать алгоритм, для более корректного подсчета эквивалентности онтологий.
Для того, чтобы получить более точное сравнение онтологий, необходимо, чтобы при сравнении учитывалось не только наследование сущностей, но и связи между сущностями. Например, пусть в обеих онтологиях присутствует понятие «Узел» и рассмотрим 2 ситуации:
1. в обеих онтологиях в понятии «Узел» определена связь с понятием «Характеристика»;
2. в одной онтологии в понятии «Узел» определена связь с понятием «Мощность», а в другой - с понятием «Расположение».
Очевидно, что в первом случае понятие «Узел» является более «общим» для двух онтологий, чем во втором случае. Таким образом, возникла идея расширить модель сравнения онтологий для возможности учета подобных связей в понятиях. Для этого переопределим величину (количество элементов, мощность множества) для пересечения онтологий, и будем рассчитывать ее как взвешенную сумму с учетом связей. А именно, для каждого понятия , входящего в пересечение онтологий вычислим величину:
.
где - это количество совпадающих связей для сущности в обеих онтологиях;
- это общее количество связей, которое имеет сущность в онтологии .
- это общее количество связей, которое имеет сущность в онтологии .
Соответственно в формуле (2,3) в определениях коэффициентов и произведем замену
Как можно видеть из данной формулы, при полном совпадении связей общих сущностей в двух онтологиях, мы получим ту же самую величину, что и в исходной модели (простая сумма числа общих сущностей), а для случая только частичного совпадения связей, данная величина будет иметь меньшее значение, то есть значения коэффициентов и будут меньше, а значит снизится и степень похожести онтологий, рассчитываемая по формуле (1), как можно увидеть при анализе числителя и знаменателя дроби в (1).
2.2 Программная реализация инструмента для вычисления меры близости
1.1 Программная реализация инструмента для вычисления меры близости
Для сравнения онтологий в рамках приведенной модели в п.2.1., была разработана программа на языке программирования python, которая реализована в виде самостоятельного python модуля simont.py. Для того, чтобы сравнить онтологии, необходимо правильно задать онтологии в json-файле. Далее показан пример корректного задания онтологии.
{
"Thing": {
"Дерево": {
"Ветка": {
"$links": ["Цвет"],
"Лист": {
"$links": ["Цвет", "Толщина"] }}},
"Цвет": {},
"Толщина": {}}}
В корне любой онтологии должна быть задана сущность Thing. Для каждой сущности может быть задано любое число дочерних сущностей, а также список ссылок на другие сущности посредством опционального слова «$links». Так в приведенном, примере корневая сущность «Thing» содержит три дочерних сущности «Дерево», «Цвет» и «Толщина». В свою очередь, «Дерево» содержит дочернюю сущность «Ветка», а «Ветка» содержит «Лист». При этом у сущности «Ветка» существует связь с сущностью «Цвет», а у сущности «Лист» существует две связи: «Цвет» и «Толщина».
Модуль программы simont.py содержит объявление класса Entity, представляющего отдельную сущность онтологии, и функцию run, которая вызывается при запуске модуля из командной строки, и осуществляет расчет степени близости двух онтологий из указанных json-файлов.
Ниже приведены основные моменты реализации программы для сравнения двух онтологий. Во-первых, были созданы экземпляры класса Entity для сущности верхнего уровня Thing и созданы расширенные онтологии и выведены в виде деревьев, например:
ont_1_ext_2 = ont1.copy().ext(ont2) # O1, расширенная O2
ont_2_ext_1 = ont2.copy().ext(ont1) # O2, расширенная O1
После данных операция осуществляется расчёт коэффициентов для меры близости онтологий и расчет степени похожести двух понятий:
sim_1_ext_2 = ont_1_ext_2.calc_sim()
sim_2_ext_1 = ont_2_ext_1.calc_sim()
В результате, осуществляется меры похожести по формуле () следующим образом:
sim = (t * sim_1_ext_2 + I2) + (w * sim_2_ext_1 + I1)
sim = sim / (sim + a * sim_1_sub_2 + b * sim_2_sub_1)
После расчета основных коэффициентов и общей формулы расчета выводятся результаты по сравнению двух онтологий в следующем формате:
print('N1 = %d'%N1)
print('N2 = %d'%N2)
print('n1 = %d'%n1)
print('n2 = %d'%n2)
print('I1 = %-5.2f'%I1)
print('I2 = %-5.2f'%I2)
Необходимо также отметить, что для того, чтобы учесть связи при сравнении онтологий используется среднее взвешенное. Тем самым, в программу добавляется расчёт среднего взвешенного, что в итоге, будет влияет на итоговый результат подсчета эквивалентности. Подробный код программы представлен в Приложении А.
Подводя итог, необходимо отметить, что подход, предложенные специалистами по сравнению онтологий показался достаточно интересным и имел свои достоинства для его использования. Однако, данный подход учитывает только иерархическое наследование сущностей (классов), а более корректная модель, помимо наследования сущностей, должна также учитывать и связи между сущностями. Следовательно, оригинальный подход был дополнен для целей данной работы за счет учёта связей между классами. Как результат, была разработана программа на языке программирования python, которая позволяет автоматически рассчитывать меру близости двух онтологий.
Глава 3. Проектирование онтологий
Глава 3. Проектирование онтологий
Как уже было сказано, поиск эффективного решения распределенной задачи в рамках вычислительной системы (виртуального предприятия) сводится к построению онтологии виртуального предприятия и онтологии задачи, что позволит оценить меру близости двух онтологий. В случае, если эквивалентность онтологий (по подобию изоморфизма графов) будет достигнута, можно будет говорить об эффективном распределении задачи в рамках вычислительной сети, подобно получению изоморфизма графов вычислительной сети и распределенного приложения (см. п. 1.3.).
3.1 Проектирование онтологии виртуального предприятия
Как уже было сказано, виртуальное предприятие - это гибкая структура, динамично подстраивающаяся и адаптирующаяся для решения конкретной задачи, включающей в себя временное или постоянное объединение географически разобщенных людей, групп или организаций, функционирование которых осуществляется за счет применения информационных технологий с использованием коммуникационных средств [30]. В рамах нашей работы, виртуальное предприятие рассматривается как вычислительная система, состоящая из узлов, которые соединяются с помощью каналов связи в единую функционирующую систему. С этой точки зрения осуществляется формализация виртуального предприятия в рамках предметной области.
Для построения онтологии в Protйgй, необходимо определить основные классы и подклассы и отобразить их через добавление на вкладке Classes [31]. Внешний вид вкладки отражен на рисунке 3.1.
Рисунок 3.1. Вкладка Classes для добавления классов онтологии.
Таким
аким образом, были выделены и отображены на вкладке Classes следующие классы и подклассы:
· Устройство - вычислительные устройства вычислительной сети. Основными подклассами является кластер, состоящий из вычислительных узлов, и облако, в котором могут выполняться облачные вычисления и к которому можно обращаться за готовыми сервисами(программами) для реализации каких-либо функций.
· Каналы связи - компоненты, с помощью которых осуществляется обмен данными между вычислительными устройствами, к каналам связи могут относится коммуникационное оборудование.
· СУБД - система управления базами данных, с помощью которых узлы обращаются за получением данных к БД.
· Программно-аппаратное обеспечение - совокупность устройств прикладного программного обеспечения и операционной системы, для управления вычислительными узлами.
Классы добавляются с помощью нажатия на кнопку «Addsubclass», а подклассы с помощью клика по классу-родителю и добавлению его подкласса. В результате чего, было получено дерево иерархии объектов, представленное на рисунке 3.2.
Рисунок 3.2. Иерархия классов
При создании классов можно также выделить те, которые будут являться абстрактными, то есть классы, у которых не может быть экземпляров. Например, в данном случае класс «Устройство» является абстрактным, поскольку больше служит для обобщения, чем для связи с какими-то конкретными сущностями. Таким образом, класс Устройство не может сам по себе иметь экземпляров без более конкретного определения. Тип класса, абстрактный (Abstract) или конкретный (Concrete) задается через роль, что представлено на рисунке 3.3.
Рисунок 3.3 Выбор роли класса
Далее задаются свойства-отношения, определяющие отношения между экземплярами классов (между объектом и субъектом). Свойства - отношения задаются через вкладку Object Properties. На данной вкладке отображаются основные свойства для вычислительных узлов, которые могут обращаться к БД, использовать облако для использования сервисов и иметь каналы связи и программное обеспечение. На вкладке «Data properties» были заданы основные атрибуты классов. Например, Доменом (Domains) может являться «Узел1», то есть субъектом, а в качестве диапазона (Ranges) выступает Облако, которое является объектом. На рисунке 3.4. отображен пример заполнения вкладки со свойствами объектов.
Рисунок 3.4. Пример заполнения вкладки Project Properties
После того, как основные свойства-отношения заданы, заполняются свойства-данные, которые определяют характеристики экземпляров классов и задаются на вкладке «Data Properties». Например, каждый вычислительный узел имеет свою оперативную память и ОС, что можно отобразить на вкладке свойства-данные. Пример представлен на рисунке 3.5.
Рисунок 3.5. Пример заполнения вкладки «Data Properties»
Для визуализации полученной онтологии был построен Онтограф с помощью вкладки «Ontograf». Стоит отметить, что в рамках данной работы онтологии намеренно не усложнялись, для того, чтобы в последующем было возможно опробовать метод сравнения онтологий и сделать это наиболее корректным образом. Таким образом, полученная онтология виртуального предприятия отображена на рисунке 2.2.
Рисунок 3.6. Онтограф виртуального предприятия
3.2 Проектирование онтологии задачи
В рамках данной работы необходимо было выбрать распределенную задачу, которую возможно решить в рамках виртуального предприятия. За основу была взята задача имитационного моделирования, в рамках которой была рассмотрена онтология модели «Супермаркет». Данная задача обладает некоторыми преимуществами, которые позволили выбрать ее, как наиболее подходящую: простота реализации и интенсивная коммуникация между агентами. Для построения онтологии данной задачи был выбран также, как и в оригинальной работе, агентный подход. Объекты представляют из себя интеллектуальных агентов, автономно функционирующих и обладающих целенаправленным поведением. Отметим, что в случае распределенных систем в качестве агентов могут рассматриваться динамические (мобильные) агенты, представляющие из себя вычислительные процессы, способные свободно перемещаться по сети Интернет (удаленно исполняемые программы).
Основные агенты в данной модели следующие:
1. Охранник супермаркета.
2. Кассир1.
3. Кассир2.
4. Покупатель.
Таким образом, основных агентов отобразили как отдельные сущности и получили первоначальный вид онтологии, представленный на рисунке 3.7.
Рисунок 3.7. Заполнение онтологии основными агентами задачи
Как уже было сказано, каждый из агентов обладает целенаправленным поведением, может выполнять конкретные действия, а именно:
1. Охранник супермаркета.
· может заподозрить посетителя в краже товара.
2. Кассир1.
· Может отлучиться на технологический перерыв.
· Может помочь с кассой Кассиру 2.
· Может позвать Кассира 2 заменить его на рабочем месте.
3. Кассир2.
· Может обслужить покупателя.
· Может Заменить Кассира 1 на рабочем месте.
· Может позвать Кассира1 помочь с кассой
· может отлучиться на технологический перерыв;
4. Покупатель.
· Может своровать товар.
· может купить товар.
На основе данной модели была построена онтология задачи. В рамках данной работы нас интересуют, по большей мере, взаимодействующие процессы. Следовательно, в онтологии отображаем только такие процесса. Основные классы отображены на рисунке 3.8.
Рисунок 3.8. Иерархия классов онтологии задачи
Далее были отображены основные свойства и в результате чего была получена онтология, представленная на рисунке 3.9. Готовая онтология, для удобства, представлена в виде онтографа.
Рисунок 3.9. Онтограф задачи
3.3 Вычисление меры близости двух онтологий
1.1 Вычисление меры близости двух онтологий
С целью вычисления меры близости двух онтологий, необходимо преобразовать данные онтологии. Как уже было сказано, виртуальное предприятие представляет собой вычислительную систему, состоящую из отдельных узлов, имеющих собственные вычислительные мощности. Задача, описанная в п.2.2. состоит из отдельных взаимодействующих процессов и решается в рамках виртуального предприятия. Таким образом, наложим одну онтологию на вторую (онтологию задачи на вычислительную систему).
Пусть на каждом отдельно узле виртуального предприятия располагаются разные агенты, а именно:
· На объекте «Узел 1» располагается агент «Кассир 1».
· На объекте «Узел 2» располагается агент «Кассир 2».
· На объекте «Узел 3» располагается агент «Охранник»
· На объекте «Узел 4» располагается агент «Покупатель».
Результат отображен на рисунке 3.10.
Рисунок 3.10. Отображение агентов на узлах виртуального предприятия
Пусть действия, выполняющиеся агентами, в рамках данной работы являются конкретными подпрограммами, которые могут выполняться на каких-либо узлах или располагаться в облаке, как сервисы, к которым будут обращаться узлы. К таким образом, отображение сервисов в облаке отображено на рисунке 3.11.
Рисунок 3.11. Отображение сервисов в облаке
Как результат, отображение одной онтологии на другую позволяет нам получить следующую схему, которая представлена на рисунке 3.12.
Рисунок 3.12. Отображение задачи на виртуальное предприятие (Ситуация №1)
Таким образом, для подсчета коэффициента близости онтологий, данные онтологии записываются в json-файл и для онтологии виртуального предприятия онтология выглядит следующим образом:
{"Thing": {
"Узел1": {
"$links": ["Замена_на_раб.месте", "Помощь_с_кассой", "Технологический перерыв"], "Кассир1": {}},
"Узел2": {
"$links": ["Замена_на_раб.месте", "Помощь_с_кассой", "Технологический перерыв", "Обслуживание"], "Кассир2": {}},
"Узел3": {
"$links": ["Воровство"], "Охранник": {}},
"Узел4": {
"$links": ["Воровство", "Обслуживание"], "Покупатель": {}},
"Облако": {
"Воровство": {},
"Замена_на_раб.месте": {},
"Обслуживание": {},
"Помощь_с_кассой": {},
"Сообщение о краже": {},
"Технологический перерыв": {}}}}
Онтология задачи была подготовлена и записана в файл для сравнения следующим образом:
{
"Thing": {
"Кассир1": {
"$links": ["Замена_на_раб.месте", "Помощь_с_кассой", "Технологический перерыв"]},
"Кассир2": {
"$links": ["Замена_на_раб.месте", "Помощь_с_кассой", "Технологический перерыв", "Обслуживание"]},
"Охранник": {
"$links": ["Воровство"]},
"Покупатель": {
"$links": ["Воровство", "Обслуживание"]},
"Облако": {
"Воровство": {},
"Замена_на_раб.месте": {},
"Обслуживание": {},
"Помощь_с_кассой": {},
"Сообщение о краже": {},
"Технологический перерыв": {}}}}
После того, как отологии были подготовлены к сравнению, была высчитана мера близости двух онтологий, результаты которой представлены на рисунке 3.13.
Рисунок 3.13. Результат сравнения онтологий (Ситуация №1)
Таким образом, при таком построении онтологии был получен коэффициент 0,91. Данный коэффициент считается достаточно высоким, что говорит о большой схожести двух онтологий. Для того, чтобы считать данное распределение задачи в рамках виртуального предприятия оптимальным, необходимо сделать операции над онтологиями, чтобы посмотреть, как изменится коэффициент.
В рамках данной работы была реализована идея перенести наиболее часто взаимодействующие процессы на один узел, а те процессы задачи, которые общаются намного реже на другой вычислительный узел. Предполагается, что при таком раскладе, по аналогии со статической балансировкой, процессы в рамках системы должны выполняться наиболее эффективно и коэффициент эквивалентности должен быть выше (по подобию с изоморфизмом графов). Поскольку, мы используем онтологии, то необходимо было их перестроить и проверить предположение, высчитав новый коэффициент близости.
Таким образом, если мы переносим наиболее взаимодействующие процессы на один узел, то в нашем случае такими процессами являются «Кассир1» и «Кассир2» и они будут выполняться на «узле1», а менее взаимодействующие процессы на «Узле2». Данное отображение задачи на виртуальное предприятие будет выглядеть как показано на рисунке 3.14.
Рисунок 3.14. Отображение задачи на виртуальное предприятие (Ситуация №2)
Таким образом, онтология виртуального предприятия в json-файле будет выглядеть следующим образом:
{ "Thing": {
"Узел1": {
"$links": ["Замена_на_раб.месте", "Помощь_с_кассой", "Технологический перерыв", "Обслуживание" ], "Кассир1": {}, "Кассир2":{}},
"Узел2": {
"$links": ["Воровство", "Обслуживание"], "Охранник": {}, "Покупатель": {}},
"Облако": {
"Воровство": {},
"Замена_на_раб.месте": {},
"Обслуживание": {},
"Помощь_с_кассой": {},
"Технологический перерыв": {}}}}
При повторном сравнении онтологии виртуального предприятия, были получены следующие результаты, представленные на рисунке 3.15..
Рисунок 3.15. Результаты сравнения онтологий (Ситуация №2)
Стоит отметить, что при изменении онтологий, полученный коэффициент равен 0,95. Для выводов и заключения был проведен еще один эксперимент, где наиболее часто взаимодействующие процессы были расположены на одном узле, а процессы, обладающие меньшим количеством связей, разнесены по разным узлам (стоит отметить, частота обмена информацией не учитывается). Таким образом, «Кассир1» и «Кассир2» располагались на «Узле1», «Охранник» на «Узле2», «Продавец» на «Узле3». Таким образом, наложение двух онтологий будет выглядеть как представлено на рисунке 3.16.
Рисунок 3.16. Отображение задачи на виртуальное предприятие (Ситуация №3)
Таким образом, новая онтология для виртуального предприятия в json-файле выглядит следующим образом:
{"Thing": {
"Узел1": {
"$links": ["Замена_на_раб.месте", "Помощь_с_кассой", "Технологический перерыв", "Обслуживание"], "Кассир1": {}, "Кассир2": {} },
"Узел2": {
"$links": ["Воровство"], "Охранник": {}},
"Узел3": {
"$links": ["Воровство", "Обслуживание"], "Продавец": {}},
"Облако": {
"Воровство": {},
"Замена_на_раб.месте": {},
"Обслуживание": {},
"Помощь_с_кассой": {},
"Технологический перерыв": {}}}}
Расчет меры близости двух онтологий отображен на рисунке. Таким образом, мера близости двух онтологий получилась равна коэффициенту 0,92.
Рисунок 3.15. Результат сравнения онтологий (Ситуация №3)
Для удобства и наглядности отобразим все 3 эксперимента в одной таблице, для того, чтобы проанализировать и прокомментировать полученные результаты. Сравнительная таблица результатов представлена ниже.
Таблица 3.1. Сравнение результатов
Номер эксперимента |
Мера близости онтологий |
|
Эксперимент №1 |
0,91 |
|
Эксперимент №2 |
0,95 |
|
Эксперимент №3 |
0,93 |
Таким образом, можно сделать вывод, что эксперимент № 2 обладает самым высоким коэффициентом 0,95. Поскольку данный коэффициент ближе всего к 1, то можно сделать вывод, что при установленных данных с введенными в рамках данной задачи ограничениями, онтологии получились наиболее схожими. Это произошло ввиду того, что при перенесении наиболее часто общающихся процессов на один вычислительный узел удалось сократить количество коммуникаций между узлами, а также сократить количество сущностей онтологий, что также является значимым при расчёте меры близости онтологий. Что касается ситуации №1, то можно сделать вывод, расположение каждого агента на отдельном узле наименее эффективно, более того, это еще можно обосновать тем, что добавление дополнительных узлов предполагает увеличение стоимости вычислительной системы.
Как уже было сказано, статическая балансировка предполагает, что если структуру вычислительной системы представить графом G (V, E) (V- множество вычислительных узлов, E - множество линий связей между узлами), а взаимодействующие процессы, реализующие распределенный алгоритм некоторой распределенной задачи, в виде графа G1 (V1, E1) (V1 - множество процессов, E1- множество cвязей между взаимодействующими процессами), то для решения распределенной задачи необходимо выполнить отображение F: G1G. Для того, чтобы получить эффективную (по скорости) работу распределенного алгоритма, необходимо добиться изоморфизма графов G1 и G (за счет снижения издержек на коммуникации). По аналогии с графами, в рамках данной работы было выдвинуто предположение о возможности балансировки нагрузки посредством представления знаний о структурных характеристиках в виде онтологий. Как результат, максимально полученный коэффициент позволяет сделать вывод о том, что онтологии получились практически эквивалентными, а, следовательно, в рамках данной работы получилось наиболее эффективное (по скорости) распределение задачи в рамках вычислительной системы.
Таким образом, в рамках данной главы была сделана попытка реализовать статическую балансировку, посредством использования онтологий и вычисления коэффициента близости онтологий по предложенной формуле в п.2.1. Изначально были построены онтологии виртуального предприятия и онтология задачи. Далее, для того, чтобы сравнить онтологии, было выполнено отображение одной онтологии на другую и с помощью реализованной программы на языке python был выполнен подсчет коэффициента близости онтологий. С целью изменения коэффициента, были выполнены операции над онтологиями и удалось достичь наиболее высокого коэффициента близости двух онтологий, который равен 0,95. Высокая близость двух онтологий позволяет говорить о том, что за счет сокращения коммуникаций возможно оптимизировать выполнения распределенных алгоритмов распределенной задачи в рамках вычислительной системы. Исследования, проведенные в рамках конкретной работы, не являются законченными и требуют дальнейшего развития. В полной мере не учтены некоторые характерные особенности распределенных вычислений и требований к ним (скорость, надежность, стоимость), однако возможность использования знаний как о вычислиельной среде, так и о задачах, которые решаются с ее применением может существенно облегчить работу виртуальных предпритий и внести существенный вклад в проектирование их архитектуры.
Заключение
Как уже было сказано, информационные технологии, развиваясь, повсеместно охватывают все сферы жизни общества и используются как инструмент развития бизнеса. Развитие информационных технологий приводит к видоизменению существующих форм организации бизнеса, к появлению виртуальных организаций.
Виртуальное предприятие (ВП) - предприятие, состоящее из сообщества географически разделенных работников, которые взаимодействуют в процессе производства, используя преимущественно электронные средства коммуникаций. В рамках данной работы, виртуальное предприятие рассматривается как распределенная вычислительная система, где вычислительные средства одной организации представляют собой отдельный вычислительный узел. Для реализации распределенных задач в рамках виртуального предприятия необходимы знания о структурных характеристиках предприятия и структурных характеристиках распределенных алгоритмов, реализующих эти задачи. Таким образом, в работе предпринята попытка хранить эти знания в онтологиях (онтология вычислительной системы и онтология задачи). Проектирование онтологий осуществлялось с помощью программы Protйgй, поскольку она отличается своей простотой инструкций для описания онтологий, большим количеством справочных материалов, а также дружелюбным графическим интерфейсом, что позволяет при небольшом уровне квалификации разобраться в инструменте даже без привлечения специалистов.
Таким образом, были построены онтология ВП и онтология ИС. На основе оригинального алгоритма из работы [28] было проведено сравнение онтологий и вычисление коэффициента близости.
Сравнение онтологий позволило оценить степень схожести онтологий. Путем проведения операций над онтологиями, был получен высокий коэффициент схожести равный 0,95. Коэффициент схожести получился высоким, следовательно, онтологии близки (аналогично тому, как изоморфны графы G и G1). Высокая близость онтологий позволяет говорить о том, что онтологии эквивалентны, а, следовательно, получено оптимальное (по скорости) распределение задачи в рамках ВП.
Стоит отметить еще раз, что проведенные исследовани не являются законченными, поскольку не были учтены характерные особенности распределенных вычислений и требований к ним, например, скорость, надежность или стоимость. Однако, попытка использования знаний о вычислительной среде и задачах, которые решаются в ней, может дать возможность и внести вклад в проектирование архитектуры виртуального преприятия.Исследования, проведенные в рамках конкретной работы, не являются законченными и требуют дальнейшего развития. В полной мере не учтены некоторые характерные особенности распределенных вычислений и требований к ним (скорость, надежность, стоимость), однако возможность использования знаний как о вычислиельной среде, так и о задачах, которые решаются с ее применением, может как существенно облегчить работу виртуальных предпритий, так и внести существенный вклад в проектирование их архитектуры. Данная работа обладает практической значимостью и может быть использована для дальнейших попыток оптимизации выполнения распределенных задач, посредством использования онтологий.
Библиографический список
1. Кузнецов Ю. В., Мелякова Е. В. Формирование и развитие виртуальной организации //Научный журнал НИУ ИТМО. Серия «Экономика и экологический менеджмент». - 2015. - №. 4.
2. Артемьева И.Л., Князева М.А., Купневич O.A. Моделирование процесса оптимизации последовательных программ с использованием модели онтологий // Искусственный интеллект. Т. 3.- 2002.- С. 467473.
3. Артемьева И.Л., Князева М.А., Купневич O.A. Модель онтологии предметной области "Оптимизация последовательных программ". 4.2. Термины для описания процесса оптимизации // НТИ. Сер. 2. 2003. -№ 1. - С. 22-29.
4. Миков А. И., Замятина Е. Б. Распределенные системы и алгоритмы //Интуит. ру. - 2008.
5. Демина А.В., Алексенцева О.Н. Распределенные системы: учебное пособие для студентов обучающихся по направлению подготовки 38.03.05 Бизнес-информатика. - Саратов: Саратовский социально-экономический институт (филиал) РЭУ им. Г.В. Плеханова, 2018. - 108с.
6. Котухов А. В., Фещенко А. А., Хорошко В. В. Распределенные информационные системы и сети. - 2017.
7. Манюшис А., Смольянинов В., Тарасов В. Виртуальное предприятие как эффективная форма организации внешнеэкономической деятельности компании //Проблемы теории и практики управления. - 2003. - №. 4. - С. 89-93.
8. Пономарев И. П. Виртуальная организация: предпосылки возникновения новой организационной формы //Менеджмент в России и за рубежом. - 2001. - С. 16-23.
9. Davidov W.H., Malone M.S., The Virtual Corporation. New York: Harper, 1993.
10. Byrn J.A. The Virtual Corporation. Business Week. 8, February, 1993, 98--103.
11. Martin J., Cybercorp: The New Business Revolution. 1996, 115--125, 3--33. New York: Amacom.
12. Henderson J. C., Venkatraman N. Strategic alignment: a model for organizational transformation through information technology //Transforming organizations. - 1992. - С. 97-117.
13. Кастельс М. Информационная эпоха: экономика, общество и культура/Пер. с англ. под науч. ред. ОИ Шкаратана //М.: ГУ ВШЭ. - 2000. - Т. 608. - С. 97.
14. Райзберг Б. А., Лозовский Л. Ш., Стародубцева Е. Б. Современный экономический словарь. - Издательский Дом" Инфра-М", 2004.
15. Балашов А. П. Теория менеджмента: учеб. пособие //М.: Вузовский учебник: ИНФРА-М. - 2014.
16. Митраков А. А. Алгоритмы синхронизации агентов в системе моделирования «BETTER». - П., 2013. - 114 с.
17. Митраков А. А. Применение знаний для синхронизации агентов в параллельном дискретно-событийном моделировании //Прикладная информатика. - 2015. - №. 1.
18. Миков А.И., Замятина Е.Б., Осмехин К.А. Метод динамической балансировки процессов имитационного моделирования. Труды Второй Всероссийской научной конференции «Методы и средства обработки информации». М.: Изд-во МГУ, 2005.
19. Хританков А. С. Модели и алгоритмы распределения нагрузки //Информационные технологии и вычислительные системы. - 2009. - №. 2. - С. 65-80.
20. Миков А. И., Замятина Е. Б., Козлов А. А. Оптимизация параллельных вычислений с применением мультиагентной балансировки //Труды международной научной конференции «Параллельные Вычислительные Технологии». Нижний Новгород-Челябинск, Изд. ЮУрГУ. - 2009. - С. 599-604.
21. Клещев, А. С. "Роль онтологии в программировании. Часть 1. Интерактивное проектирование информационных объектов //Информационные технологии. - 2008.
22. Клещев А. С. Роль онтологии в программировании. Часть 2. Интерактивное проектирование информационных объектов //Информационные технологии. - 2008.
23. Скворцов Н. А. Специфика подходов к отображению онтологий Specificity of Ontology Mapping Approaches //Труды семинара «Знания и Онтологии* ELSEWHERE* 2009», ассоциированного с 17-й международной конференцией по понятийным структурам. - С. 91.
24. Найханова Л. В. Основные аспекты построения онтологий верхнего уровня и предметной области //" Интернет-порталы: содержание и технологии". Выпуск 3./Редкол.: АН Тихонов (пред.) и др.; ФГУ ГНИИ ИТТ" Информика".-М.: Просвещение, 2005. - ФГУ ГНИИ ИТТ" Информика".-М.: Просвещение, 2005, 2005. - С. 452-479.
25. Hovy E. Презентации Ontologies: lecture 1, lecture 2 Issues of Content, lecture 3 Methods for Automated Ontology Building //Information Sciences Institute University of Southern California., с XX летней школы им. В. Матезиуса по лингвистике и семиотике (7-12 марта 2005 г., Карлов университет). - 2015.
26. Noy N. F. et al. Ontology development 101: A guide to creating your first ontology. - 2001.
27. Cоловьев В. Д. и др. Онтологии и тезаурусы //Электронная книга. - 2006.
28. Ngom A., Kamara-Sangare F., & Lo M. Proposition of a Method for Assessing Similarity between Two Ontologies. - 2017.
29. Ngom A., Kaladzavi G. , Kamara-Sangare F., & Lo M. Assessing Similarity Value between Two Ontologies/ IC3K 2018. Proceedings of the 10th International Joint Conference on Knowledge Discovery.- 2018. - P.343-350.
30. Схиртладзе А. Г., Скворцов А. В., Чмырь Д. А. Проектирование единого информационного пространства виртуальных предприятий. - Directmedia, 2017. - 616 с.
31. Муромцев Д. И. Онтологический инжиниринг знаний в системе Protйgй //СПб: СПб ГУ ИТМО. - 2007. - Т. 62.
32. Идиатуллин А.Р. Инструментарий проектирования информационно-аналитических систем управления на основе онтологических моделей и методов формализованного представления предметной области организации: дис. на соиск. уч. степ к. е. н.: 08.00.13/ Идиатуллин Александр Рамзильевич - М., 2011. - 138 с.
33. Карпов Ю. Г. Моделирование агентов - новая парадигма в имитационном моделировании //Санкт-Петербургский государственный политехнический университет. - 2005.
34. Бойко И. П., Евневич М. А., Колышкин А. В. Экономика предприятия в цифровую эпоху //Российское предпринимательство. - 2017. - №. 7.
35. Бородакий Ю. В., Лободинский Ю. Г. Эволюция информационных систем. Современное состояние и перспективы. Монография. - 2011.7
36. Горюнова В. В., Горюнова Т. И. Использование языка UML для моделирования и представления онтологий специализированных предметных областей //Труды объединённой научной конференции" Интернет и современное общество". - 2017. - С. 28-31.
Приложение А.
Программный код
import sys
import json
import datetime
import numpy as np
def run():
'''
Основная функция, осуществляющая расчет близости онтологий и вывод результата.
'''
# Выводим "приветствие" программы
print('\n\n\n')
print('-'*25 + ' Сравнение онтологий')
print('Расчет | %s\n\n'%datetime.datetime.now())
# Прочитываем json-файлы, содержащие описания двух онтологий
# и создаем экмпляры класса Entity для сущности верхнего уровня Thing
# все остальные понятия будут дочерними сущностями в соответствующих классах
with open('./%s.json'%sys.argv[1], 'r', encoding='utf-8-sig') as f:
ont1 = Entity('Thing', json.load(f)['Thing'])
with open('./%s.json'%sys.argv[2], 'r', encoding='utf-8-sig') as f:
ont2 = Entity('Thing', json.load(f)['Thing'])
# Создаем расширенные онтологии
ont_1_ext_2 = ont1.copy().ext(ont2) # O1, расширенная O2
ont_2_ext_1 = ont2.copy().ext(ont1) # O2, расширенная O1 (= ont_1_ext_2)
ont_1_sub_2 = ont1.copy().sub(ont2) # O1 без O2
ont_2_sub_1 = ont2.copy().sub(ont1) # O2 без O1
# Печатаем онтологии в виде дерева
print('\nОнтология №1')
print(ont1.show())
print('\nОнтология №2')
print(ont1.show())
print('\nОнтология №1 + №2')
print(ont_1_ext_2.show())
print('\nОнтология №1 - №2')
print(ont_1_sub_2.show())
print('\nОнтология №2 - №1')
print(ont_2_sub_1.show())
# Вычисляем коэффициенты для формулы похожести онтологий
N1 = ont1.calc_N()
N2 = ont2.calc_N()
n1 = ont1.calc_n(ont2)
n2 = ont2.calc_n(ont1)
I1 = 1. / (1. + n2)
I2 = 1. / (1. + n1)
# t = (N1 + n2) * 1. / (N1 + n1 + n2)
# w = (N1 + n2) * 1. / (N2 + n1 + n2)
c = card(ont1, ont2)
t = c / (N1 + n1 + n2)
w = c / (N2 + n1 + n2)
a = n1 * 1. / N1
b = n2 * 1. / N2
# Вычисляем степень похожести концептов в соответствующих онтологиях
# (average value of similarity between concepts)
sim_1_ext_2 = ont_1_ext_2.calc_sim()
sim_2_ext_1 = ont_2_ext_1.calc_sim()
sim_1_sub_2 = ont_1_sub_2.calc_sim()
sim_2_sub_1 = ont_2_sub_1.calc_sim()
# Вычисляем итоговую степень похожести двух онтологий по формуле из статьи
sim = (t * sim_1_ext_2 + I2) + (w * sim_2_ext_1 + I1)
sim = sim / (sim + a * sim_1_sub_2 + b * sim_2_sub_1)
# Выводим результаты по степени похожести двух онтологий
print('\nСтепень похожести - параметры')
print('N1 = %d'%N1)
print('N2 = %d'%N2)
print('n1 = %d'%n1)
print('n2 = %d'%n2)
print('I1 = %-5.2f'%I1)
print('I2 = %-5.2f'%I2)
print('t = %-5.2f'%t)
print('w = %-5.2f'%w)
print('a = %-5.2f'%a)
print('b = %-5.2f'%b)
print('sim 1 + 2 = %-5.2f'%sim_1_ext_2)
print('sim 2 + 1 = %-5.2f'%sim_2_ext_1)
print('sim 1 - 2 = %-5.2f'%sim_1_sub_2)
print('sim 2 - 1 = %-5.2f'%sim_2_sub_1)
print('\nСтепень похожести - результат')
print(' = %-8.5f'%sim)
print('-'*25)
print('\n\n\n')
def card(ont1, ont2):
'''
Расчет взвешенного пересечения онтологий с учетом связей.
'''
res = 0.
names1 = ont1.names_full()
names2 = ont2.names_full()
for name in names1:
if not name in names2:
continue
item1 = ont1.get(name)
item2 = ont2.get(name)
n1 = len(item1.links)
n2 = len(item2.links)
nc = 0
for link in item1.links:
if link in item2.links:
nc+= 1
val = 1.
if n1 != 0 or n2 != 0:
val*= nc / max(n1, n2)
res+= val
return res
class Entity:
'''
Класс, представляющий отдельную сущность в онтологии.
name - отображаемое имя сущности, links - список ссылок на другие сущности, children - список дочерних сущностей (каждая сущность сама является экземпляром класса Entity и может также иметь дочерние сущности).
'''
def __init__(self, name, tree_sub=None):
'''
Конструктор класса. Входные параметры - отображаемое имя сущности и поддерево дочерних сущностей в форме словаря.
'''
self.name = name
self.links = (tree_sub or {}).get('$links', [])
self.children = []
for name, t in (tree_sub or {}).items():
if name == '$links':
continue
# Для каждой дочерней сущности создаем экземпляр класса
# и добавляем его в список детей
self.children.append(Entity(name, t))
# При вычитании онтологий могут удалиться понятия верхнего уровня,
# но при этом сохраниться вложенные понятия более низкого уровня,
# Для учета такого случая вводим флаг is_del, которым будем помечать
# "удаляемые" понятия
self.is_del = False
def get(self, name):
'''
Возвращает дочернюю сущность по полному имени (с учетом иерархии).
...Подобные документы
Создание образа диска с помощью программного продукта Nero для резервного копирования, распространения программного обеспечения, виртуальных дисков, тиражирования однотипных систем. Возможности Alcohol 120%, Daemon Tools для эмуляции виртуального привода.
курсовая работа [188,9 K], добавлен 07.12.2009Анализ существующих программных средств для автоматического отображения онтологий, их практического применения в зависимости от поставленной задачи и сложности входных онтологий. Отображение сложных онтологий с помощью алгоритма повышенной точности.
дипломная работа [1,5 M], добавлен 14.06.2012Цель создания информационной системы. Автоматизированная информационная система "Строительное предприятие". Использование вычислительной техники и программного обеспечения для создания автоматизированной информационной системы управления на предприятии.
курсовая работа [2,5 M], добавлен 04.01.2011Анализ виртуального пространства и реальности. Особенности информационной культуры субъектов виртуального пространства. Телевидение, кабинные симуляторы, системы "расширенной" реальности и телеприсутствия. Настольные ВР-системы, социальные сети.
презентация [6,0 M], добавлен 15.11.2017Применение вычислительной техники и локальных сетей для автоматизации документооборота, создания массивов информации. Структура информационной системы предприятия и средства управления. Формирование топологии сети и расчет ее экономической эффективности.
курсовая работа [72,7 K], добавлен 16.11.2009Анализ предметной области. Разработка генетического алгоритма для оптимизации инвестиций. Спецификация требований и прецедентов. Проектирование пользовательского интерфейса информационной системы. Модели данных, используемые в системе и их взаимодействие.
дипломная работа [2,1 M], добавлен 24.08.2017Основные определения, необходимые для разработки алгоритма распределения программных модулей по вычислительным модулям вычислительной сети. Распределение операторов вычислительной системы с распределенной памятью для информационно-логической граф-схемы.
курсовая работа [2,1 M], добавлен 08.01.2016Функционирование систем массового обслуживания с разными типами заявок. Построение математической модели, постановка задачи оптимизации среднего времени ожидания. Решение задачи оптимизации системы. Разработка программного кода для оптимизации системы.
дипломная работа [581,7 K], добавлен 27.10.2017Логическая и физическая схема действующей компьютерной сети. Проблемы, решение которых актуально для предприятия. Базы данных задач и работ бизнес-процессов. Структура информационной системы. Проектирование подсистемы "Управление основным производством".
курсовая работа [4,8 M], добавлен 17.12.2011Создание виртуального бизнес-центра в виде портала "Proffis". Реализация потребности вести единые списки объектов бизнеса у множества компаний. Проектирование архитектуры подсистемы WebList. Типы пользователей системы: администратор, лидеры и операторы.
дипломная работа [2,0 M], добавлен 23.03.2012Проектирование программы для предприятия ООО "Чудо свечи" в среде программирования Borland Delphi. Произведение расчета системы методом аддитивной оптимизации. Требования к функциям, выполняемым системой, к программному и аппаратному обеспечению.
курсовая работа [2,8 M], добавлен 27.02.2015Установка структурированной кабельной системы в одноэтажном офисном здании. Расчет количества информационных розеток. Администрирование компьютерной сети и выбор топологии. Основные задачи оптимизации локальных сетей. Проектирование аппаратной станции.
курсовая работа [950,8 K], добавлен 25.03.2015Проектирование информационной системы предприятия "Ниссан-Авто" с помощью табличного процессора Excel. Условия для выполнения расчетной части. Макросы, используемые в программе. Создание проекта по разделам: база данных, сводная таблица, график.
контрольная работа [3,6 M], добавлен 16.01.2011Разработка конфигурации службы. Исследование вычислительной эффективности алгоритма оптимизации. Программная реализация клиент-серверного приложения. Алгоритм решения непрерывной задачи загрузки рюкзака. Подключение веб-сервиса к клиентскому приложению.
курсовая работа [1,4 M], добавлен 21.01.2017Понятие электронных курсов. Описание программных и языковых средств разработки. Технология создания компьютерной обучающей системы, пакета вопросов в редакторе Excel. Разработка интерфейса ЭС. Организация диалога пользователя с экспертной системой.
дипломная работа [10,8 M], добавлен 20.06.2014Теоретические основы метода оптимизации. Разработка компьютерной системы для решения задач многомерной безусловной оптимизации методом Хука-Дживса с минимизацией по направлению. Описание структуры программы и результаты ее отладки на контрольных примерах.
курсовая работа [595,4 K], добавлен 13.01.2014Развитие информационного бизнеса, электронной коммерции на основе Интернет. Описание предметной области, процессов и типичного хода событий при создании информационной системы виртуального предприятия. Калькуляция разработки электронной торговли.
курсовая работа [872,8 K], добавлен 22.05.2015Понятие алгоритма, его свойства и способы описания. Схемы алгоритмических конструкций: линейная, разветвляющаяся, циклическая. Особенности и применение электронных таблиц Excel. Задачи, решаемые с помощью системы Mathcad. История создания языка Pascal.
курсовая работа [601,9 K], добавлен 20.11.2010Анализ современного рынка программных продуктов. Понятие виртуального тура и возможности его применения. Изучение программного обеспечения и технологии создания виртуальных туров. Панорамный снимок и виртуальная брошюра. Настройка параметров панорамы.
курсовая работа [3,5 M], добавлен 22.03.2016Проектирование информационной системы "Учёт работы поликлиники": анализ программных продуктов, описание диаграмм бизнес–процесса, описание IDEF0, DFD, IDEF3 диаграмм потоков данных и документирования процессов посредством AllFusion Process Modeler r7.3.
курсовая работа [2,5 M], добавлен 20.08.2012