Разработка экспертной системы подбора параметров игрового сервера
Этапы проектирования экспертной системы для подбора параметров игрового сервера, компоненты веб-приложения. Реализация программного обеспечения, размещение его на хостинге, тестирование и проверка результатов. База знаний, экспертная система в приложении.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 01.09.2018 |
Размер файла | 5,6 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.Allbest.ru/
Размещено на http://www.Allbest.ru/
Пермский филиал федерального государственного автономного образовательного учреждения высшего образования
Национальный исследовательский университет
Высшая школа экономики
Факультет экономики, менеджмента и бизнес-информатики
Кафедра информационных технологий в бизнесе
Направление подготовки 38.03.05 Бизнес-информатика
Выпускная квалификационная работа
Тема:
Разработка экспертной системы подбора параметров игрового сервера
Студент: Исмаилов В.А.
Руководитель Д.Б. Кузнецов
Старший преподаватель
Пермь, 2018 год
Оглавление
- Аннотация
- Введение
- Глава 1. Анализ задачи создания экспертной системы
- 1.1 Основные понятия
- 1.2 Актуальность проблемы
- 1.3 Обзор аналогов
- Глава 2. Проектирование экспертной системы
- 2.1 Бизнес-процессы
- 2.2 Проектирование приложения
- 2.2.1 Этап идентификации
- 2.2.2 Этап концептуализации
- 2.2.3 Механизм логического вывода
- 2.3 Проектирование приложения «Server-Selector»
- 2.3.1 Концепция
- 2.3.2 Стек технологий
- 2.3.3.Компоненты веб-приложения
- Глава 3. Реализация приложения экспертной системы
- 3.1 Реализация базы знаний
- 3.2 Реализация веб-приложения
- 3.2.1 Вёрстка веб-страницы
- 3.2.2 База знаний и экспертная система в приложении
- 3.2.3 Основной скрипт веб-приложения
- 3.3 Результат разработки приложения
- Заключение
- Библиографический список
- Приложения
Аннотация
Данная выпускная квалификационная работа на тему «Разработка экспертной системы подбора параметров игрового сервера», написан в соответствии с учебным планом факультета «Бизнес-информатика» научно-исследовательского университета «Высшая школа экономики», утвержденным в государственном стандарте высшего профессионального образования «Направление 380305 Бизнес-информатика» Исмаиловым Вячеславом Алексеевичем.
Текст отчета о проделанной работе состоит из введения, заключения и трех содержательных глав. В первой главе представлены основные теоретические понятия, результаты анализа, выводы о необходимости создания своего программного инструмента. Во второй главе представлены этапы проектирования экспертной системы для подбора параметров игрового сервера, для решения конкретной проблемы. В третьей главе уже происходит реализация программного обеспечения и размещение его на хостинге, а также тестирование и проверка результатов.
Текст работы состоит из 61 страницы из них 35 - основного текста, в нем содержится три таблицы и 28 иллюстраций. Библиографический список содержит 19 наименований.
Введение
Игровая индустрия, в наши дни, является одной из самых быстроразвивающихся отраслей. Постоянно выходят новые видеоигры, в которых представляются новые технологии, новые возможности графики, новые форматы взаимодействия с игроком. Новые игры более требовательны к персональным компьютерам или серверным машинам, на которых игровая платформа запускается. Игровые процессы несут за собой нагрузку на оборудование и чем выше уровень реалистичности графики в игре или чем больше пользователей одновременно подключается к игровому серверу и взаимодействует друг с другом, тем выше нагрузка на машины и тем производительнее оборудование должно быть.
Из-за этого возникает проблема как у пользователей видеоигр, так и у предпринимателей, владельцев игровых серверов, которые предоставляют игрокам возможность играть в выбранную ими игру в многопользовательском режиме.
В данной исследовательской работе рассмотрена, именно, вторая проблема, со стороны владельцев серверов. Создавая игровой сервер, для того, чтобы пользователи могли к нему подключаться и играть на нем в свою любимую игру, а предприниматель, в последствии получал доход с игровых преимуществ на его сервере, владелец сервера должен помнить о нагрузке, которая будет идти на игровую машину. В зависимости от того, насколько сильная или наоборот слабая нагрузка будет приходится на игровой сервер, нужно принимать решение о приобретении или аренде более, или менее производительной машине.
Без специальных знаний в области вычислительной техники или опыта сборки комплектующих для серверной машины очень сложно подобрать именно ту серверную сборку, которая в последствии необходима будет проекту для его нормального существования. Без обращения к эксперту, который мог бы проконсультировать и дать рекомендации по приобретению той или иной серверной машины, незнакомый с этой отраслью человек, может совершить ошибку при выборе и купить или арендовать машину, которая будет недостаточно мощная и создаст неудобства для игроков или же наоборот, серверная сборка может быть слишком мощной, чем необходима для работы проекта, что выразится в неоправданных расходах для основателя.
В ходе данной работы была проанализирована проблема, которая присуще пользователям, которые выбирают серверную машину для своего проекта, но не имеют необходимых знаний о технических характеристиках комплектующих серверов и по этой причине вынуждены обратиться к специалисту, чтобы получить консультацию и сделать более грамотный выбор.
Была поставлена задача разработать программное обеспечение, в виде экспертной системы, которая смогла бы заменить эксперта при выборе серверной сборки для игрового проекта. При этом, пользователю бы не требовалось специальных знаний для совершения выбора, а программа могла бы помочь пользователю сделать более грамотный выбор, как с точки зрения необходимой мощности, так и соответствующей стоимости.
Глава 1. Анализ задачи создания экспертной системы
В данной главе изложены все основные идеи и понятия, которые были изучены и проанализировать, для того, чтобы перейти к проектированию и созданию приложения «Server Selector», которое призвано помочь в выборе серверной машины для игрового проекта пользователям, которые не сильны в технических характеристиках серверов. Также выявлена актуальность данной проблемы и был проведен обзор аналогов данного решения.
1.1 Основные понятия
Экспертная система - программа, способная заменить частично или полностью эксперта в той или иной области для решения проблемы, которая стоит перед пользователем системы [1]. В случае данной исследовательской работы, перед пользователем стояло именно такого рода проблема, когда необходим совет эксперта в выборе игрового сервера. Выбор технической части для игрового проекта - не самая простая задача, для её исполнения в грамотном виде необходима достаточная теоретическая база и опыт специалиста. Несмотря на то, что экспертные системы появились очень давно, они по-прежнему занимают важное место на когнитивной ветви интеллектуальных систем [2] и не утратили актуальности в сфере рекомендательных систем [3].
Кроссплатформенная система - программное обеспечение, которое способно функционировать на различных операционных системах: Microsoft Windows, Linux и других. Частично такая задача решается представлением рабочей программы в виде веб-приложения, которое открывается в интернет-браузере, тем самым любая операционная система, в которую возможно установить интернет-образователь будет поддерживать программное обеспечение, которое было написано в виде веб-страницы.
Во время работы с сервером на машину поступает непрерывный поток информации о состоянии игровых персонажей, координаты объектов, построек (если таковые предусмотрены игровым механизмом), здоровье персонажа, игровые команды, част игроков. Нужно понимать, что всю информацию необходимо обрабатывать и отправлять обратно пользователю, для этого серверной машине необходимо задействовать оперативную память. Главная сложность перед пользователем состоит в том, как много потребуется оперативной памяти для целей его игрового проекта.
Помимо оперативной памяти на сервере так же присутствует внешняя память. На ней хранятся данные о сервере, исполняемые файлы, сама операционная система сервера и так же база данных для сохранения игрового процесса игроков. Но зачастую для полноценного функционирования необходимо делать резервное копирование, как игрового процесса пользователей или их покупок в игровом магазине для получения игровых преимуществ. Резервные копии необходимы для того, чтобы этот процесс не был безвозвратно потерян и, в случае чего, был восстановлен. В этом случае так же неизвестно на этапе планирования сколько именно внешней памяти потребуется для того, чтобы обеспечить необходимое количество резервных копий и их объем.
Существует масса способов посчитать необходимый объем внешней памяти и сколько необходимо оперативной памяти для полноценной работы сервера без каких-либо неудобств для игроков. Но без необходимых познаний теоретической базы в области технических характеристик игровых серверов, велик шанс совершить ошибку при выборе серверной машины. Можно купить или арендовать для проекта недостаточно мощную машину, что может привести к некорректной работе всех серверных программ, так же вызвать массу неудобств для игроков, что в итоге может привести к закрытию сервера. С другой стороны, пользователь может приобрести или взять в аренду сервер, который будет превосходить его потребности и функционал сервера будет, просто, не использован, но пользователь обязуется заплатить за этот функционал, независимо от того пользуется он или нет. Всё это может привести к неоправданным издержкам, которые могли бы, возможно, выражаться в виде чистой прибыли игрового проекта, но в силу некорректного выбора серверного оборудования этого не происходит.
1.2 Актуальность проблемы
Как было ранее обозначено, игровая индустрия постоянно растет и развивается. Создается больше новых игр, и разработчики постоянно привлекают интерес игроков к многопользовательскому режиму игры. У многих игроков и пользователей возникает желание создать свой игровой сервер, для того, чтобы, просто, играть своей компанией или же кто-то хочет построить на этом дело, которое сможет приносить доход.
И в первом, и во втором случаях требуется хотя бы базовые знания о технических характеристиках серверных машин, для того, чтобы совершить грамотный и осознанный выбор, чтобы не переплатить или же, наоборот, не выбрать недостаточно мощный сервер.
Так или иначе, для того, чтобы сделать правильный выбор, необходимы знания, которыми типичные пользователи, как правило, не обладают, необходимым объемом знаний в области технических характеристик серверного оборудования. Поэтому, для того, чтобы сделать сбалансированный выбор серверной машины, нужно обращаться к эксперту, что может привести к дополнительным затратам и потраченному времени. Или же нужно будет тратить время на самостоятельное изучение свойств игровых серверов, что опять же скажется на потраченном времени, для кого-то из пользователей это вообще может быть слишком сложно для понимания.
Выходит, что нет решения, в том случае, если нет возможности, заниматься изучением технических особенностей оборудования для игрового сервера и нет финансовых средств для найма эксперта в этой области. Поэтому было принято решение создать программное обеспечение, которое бы смогла подобрать игровой сервер для того или иного проекта и при этом заменить эксперта. В этом случае больше всего подходит вариант с созданием именно экспертной системы, так как, экспертная система должна задать пользователю, который не знает о технических характеристиках игровых серверов ничего, в понятно представленной для него форме.
Основываясь на вопросах, заданных пользователю, экспертная система, имеющая список правил, которые позволят дать пользователю конкретный сервер, подходящий под требования пользователя наилучшим образом.
По мере заполнения пользователем формы, экспертная система будет получать ответы на список вопросов, которые необходимы для того, чтобы пройти по базе знаний и выбрать наиболее подходящий вариант для пользователя. Эта база знаний и заменит эксперта в данной области. При всем этом необходимо получать от экспертной системы такой ответ, который бы был достаточный по мощности, если это необходимо или наоборот не стоил слишком больших денег, если не нужно.
Так же некоторым пользователям мало получить, просто, информацию о сервере, который им подходит. Поэтому экспертная система должна предлагать пользователю сразу приобрести наиболее подходящий ему вариант, то есть ссылаться на провайдера игровых серверных машин.
1.3 Обзор аналогов
Было проведено исследование, в ходе которого были найдены аналогичные решения выше поставленной проблемы, но все они в той или иной мере не соответствовали требованиям или не покрывали всю проблему целиком.
Например, сервис «CompareGameHosting» (см. Рис. 1), предлагает сервера для различных конкретных игр, которые поддерживают многопользовательский режим, но нет дополнительных конфигураций, которые бы смогли точно подобрать серверную машину под определенные нужды пользователя [4].
Рис. 1. Интерфейс сервиса CompareGameHosting в выборе сервера для игры Minecraft
Та же проблема присуще сервису «GameServerHost» [5] (см. Рис. 2), с помощью данного сервиса можно выбирать различные видеоигры и сравнивать цены у разных провайдеров, но детальный подбор характеристик отсутствует, единственный параметр, который можно поменять при выборе сервера - это количество игроков, которые будет вмещать в себя сервер, что недостаточно для грамотного выбора игрового сервера.
Рис. 2 Интерфейс сервиса GameServerHost
Существуют и другие решения, в которых, все-таки, присутствует детальный список отдельных компонентов, например, сервис «Our Servers» [6] (см. Рис 3). Данный сервис позволяет подбирать сервера только для игры Minecraft. То есть, данный сервис не подходит для выбора параметров сервера для других игр.
Рис. 3 Интерфейс сервиса «Our Servers»
Сервисов, которые позволяют выбрать сервер под определенную игру, не мало. Но даже если, рассматривать их как альтернативные варианты решения проблемы, зачастую выбор серверов не так велик и спектр иногда наполнен необъективными и не совсем понятными параметрами, как, например, отсутствие полных ограничений в сервисе «Host Horde» [7] (см. Рис. 4), но на самом деле не ясно, что скрывается за этим полным снятием ограничений.
Рис. 4. Услуги сервиса «Host Horde»
По окончании сравнения аналогов, становится ясно, что полного решения проблемы, которая была поставлена в ходе данного исследования, нет. Большинство сервисов не предоставляют возможности детального подбора игрового серверного оборудования. В одних случаях нет возможности детально подобрать параметры и выбрать для себя наиболее подходящий вариант. Другие сервисы не предоставляют возможности выбора игры и дают только параметры для одной игры. Третий случай, это когда уже имеющиеся сервисы предоставляют не объективные варианты, не поясняя, что скрывается за их понятиями, такими как «Неограниченное количество игроков», так как ограничение предусмотрено самим игровым механизмом.
В тоже время решение на основе экспертной системы позволит получить более конкурентоспособное решение, так как с одной стороны, будет учитывать и различные игры, и их параметры, включая те параметры, которые также зависят от других параметров, так и с другой стороны, за счёт того, что в экспертной системе ключевую роль играют знания, будет способно передавать опыт и знания эксперта в решение задачи и позволит в дальнейшем решать новые задачи за счёт изменения базы знаний.
Так же общая проблема всех изученных, в ходе исследования, сервисов в том, что они используют устаревший дизайн и их интерфейс не всегда сразу понятен пользователю.
Было решено учесть все недостатки проанализированных аналогов и спроектировать программное обеспечение, которое отличалось бы своим удобством использования и максимально полезным функционалом для пользователя, который хочет выбрать игровой сервер для своего проекта.
2. Проектирование экспертной системы
В данной главе изложены все этапы проектирования экспертной системы, также описаны технологии, использованные при создании приложения «Server-Selector», которое поможет пользователю при выборе параметров игрового сервера.
2.1 Бизнес-процессы
Для того, чтобы проанализировать, как именно проектировать приложение таким образом, чтобы оно удовлетворяло требованиям пользователя, были спроектированы бизнес-процессы, которые отображают все процессы, совершаемые пользователем до внедрения в процесс выбора серверной машины экспертной системы подбора параметров игрового сервера (см. Рис 5).
Рис. 5 Бизнес-процесс до внедрения экспертной системы
Очевидно, что перед пользователем стояла цель приобретения игрового сервера, но для того, чтобы ему этого достичь, пользователю придется проделать ряд дополнительных действий, которые затребуют времени. Задача экспертной системы упростить данный процесс и ускорить его, чтобы пользователю не приходилось проводить время в изучениях технических особенностей, поиске провайдеров и самостоятельном выборе серверной машины.
Приложение, проектируемое, в ходе данного исследования призвано упростить и ускорить данный бизнес процесс, путем автоматизации нескольких шагов в данном бизнес-процессе (см. Рис 6).
Рис. 6. Бизнес-процесс после внедрения экспертной системы
2.2 Проектирование приложения
Разработка прототипа ЭС состоит из трёх основных этапов [8].
Первый этап - этап идентификации. На данном этапе проектирования ЭС требуется определить ключевые понятия, набор переменных, их типы и допустимые значения, а также входные и выходные данные ЭС.
Второй этап - этап концептуализации. На данном этапе определяются взаимосвязи между выделенными на предыдущем этапе понятиями.
Также на этапе проектирование экспертной системы требуется определить тип базы знаний в экспертной системе и механизм логического вывода.
2.2.1 Этап идентификации
Рекомендуемый сервер зависит от игры, размещённой на нём, и некоторых параметров у этой игры. При этом у различных игр могут быть различные параметры, влияющие на нагрузку на сервер и, как следствие, влияющие на рекомендуемый сервер.
Разрабатываемый прототип экспертной системы поддерживает рекомендации серверов для трёх игр: Rust [9], Minecraft [10] и Counter Strike 1.6 [11]. Параметры данных игр описаны ниже (см. Таблица 1).
Таблица 1
Список параметров игр
Параметры игры |
Область значений параметра |
|
Rust |
||
Максимальное количество игроков |
10-200 |
|
Среднее количество игроков |
10-200 |
|
Максимальное количество построек у одного игрока |
1-5 |
|
Как часто обнуление карты в месяц |
1-3 |
|
Поддержка онлайн магазина |
Да / Нет |
|
Количество модов на сервере |
1-5 |
|
Minecraft |
||
Игровой режим |
Мини-Игры / Выживание |
|
Максимальное количество игроков |
10-200 |
|
Среднее количество игроков |
10-200 |
|
Максимальное кол-во построек у одного игрока |
1-5 |
|
Как часто обнуление карты в месяц (WIPE) |
1-4 |
|
Поддержка онлайн магазина |
Да / Нет |
|
Количество модов на сервере |
1-10 |
|
Использование Текстур-Пака |
Нет (0) / SD (1) / HD (2) |
|
Counter Strike v. 1.6 |
||
Игровой режим |
Классический / Моды |
|
Максимальное количество игроков |
2-30 |
|
Среднее количество игроков |
2-30 |
|
Количество модов на сервере |
1-3 |
|
Поддержка онлайн магазина |
Да / Нет |
Кроме того, владельцы серверов часто пользуются услугой резервного копирования для сохранности своих данных. В этом случае требуется также знать, нужна ли клиенту такая опция и сколько раз в неделю требуется делать резервную копию. Услуга резервного копирования предоставляется отдельно от виртуального сервера и не зависит от выбранного клиентом сервера.
Цель консультации - порекомендовать клиенту сервер. С учётом услуги резервного копирования, итоговый результат консультации - это некоторой сервер с ссылкой на его аренду, и информация о том, какой требуется диск для резервных копий, если требуется.
Список серверов, которые могут быть порекомендованы пользователю, представлены в Таблица 2.
Таблица 2
Список серверов
Сервер |
RAM |
Disc |
CPU |
Цена,Евро / мес. |
|
EX40 |
32 ГБ DDR3 |
2 x 240 ГБ HDD |
Intel® Core™ i7-4770 |
38.59 |
|
EX40-SSD |
32 ГБ DDR3 |
2 x 240 ГБ SSD |
Intel® Core™ i7-4770 |
46.02 |
|
EX41 |
32 ГБ DDR4 |
2 x 500 ГБ HDD |
Intel® Core™ i7-6700 |
51.50 |
|
EX41-SSD |
32 ГБ DDR4 |
2 x 500 ГБ SATA 6 Гбит/с |
Intel® Core™ i7-6700 |
58.50 |
|
PX61-SSD |
64 ГБ DDR4 ECC |
2 x 480 ГБ SSD |
Intel® Xeon® E3-1275 v5 |
69.92 |
|
R730 DX151 |
64 ГБ DDR4 ECC |
2 ТБ SATA 6 Гбит/с |
Intel® Xeon® E5-2600 v3 |
152.22 |
|
PX91-SSD |
128 ГБ DDR4 ECC |
4 x 6 ТБ SATA 3 Гбит/с |
Intel® Xeon® E5-1650 v3 |
108.08 |
|
R730 DX291 |
128 ГБ DDR4 ECC |
2 ТБ SATA 6 Гбит/с |
Два Intel® Xeon® E5-2600 v3 |
223.02 |
|
PX121-SSD |
256 ГБ DDR4 ECC |
2 x 480 ГБ SSD |
Intel® Xeon® E5-1650 v3 |
137.83 |
Каждый сервер также имеет изображение и URL-ссылку на страницу его аренды.
В результате на данном этапе можно выделить следующие переменные экспертной системы (см. Таблица 3).
Таблица 3
Таблица переменных экспертной системы
Имя |
Тип |
Значения |
Комментарий |
|
GAME |
Вводимая |
Rust / CS16 / Minecraft |
Название игры |
|
MODS |
Вводимая |
0-10 |
Количество модов на сервере |
|
MODETYPE |
Вводимая |
Классический (0) / Моды,Мини-игры (1) / Выживание (2) |
Режим игры |
|
MODELOAD |
Вычисляемая |
0-2 |
Уровень нагрузки от модов |
|
BUILDS |
Вводимая |
0-5 |
Количество построек одного игрока |
|
AVRP |
Вводимая |
10-200 |
Среднее кол-во игроков |
|
MAXP |
Вводимая |
10-200 |
Максимальное кол-во игроков |
|
LOAD |
Вычисляемая |
1-3 |
Уровень вычислительной нагрузки |
|
TEXTYPE |
Вводимая |
Нет(0) / SD(1) / HD(2) |
Тип текстур |
|
TEXTLOAD |
Вычисляемая |
0-2 |
Уровень нагрузки от текстур |
|
RAM |
Вычисляемая |
1-4 |
Уровень объёма оперативной памяти |
|
CPU |
Вычисляемая |
1-3 |
Уровень процессора |
|
DISKV |
Вычисляемая |
1-3 |
Уровень диска по размеру памяти |
|
DISCT |
Вычисляемая |
HDD/SSD |
Тип диска |
|
DISС |
Вычисляемая |
Код диска |
Диск |
|
ONLINESHOP |
Вводимая |
Да / Нет (0 / 1) |
Есть ли поддержка онлайн магазина |
|
WIPE |
Вводимая |
1-3 |
Количество сбросов карты или результатов в неделю |
|
BUSUP |
Вводимая |
Да / Нет (0 / 1) |
Есть ли поддержка резервного копирования |
|
BUWEEK |
Вводимая |
0-3 |
Количество резервных копий в неделю |
|
BUD |
Вычисляемая |
1-4 |
Номер диска |
|
SERVER |
Вычисляемая |
Список серверов |
Сервер |
|
ORDER |
Вычисляемая |
Совокупность серверов и дисков резервного копирования |
Цель консультации |
2.2.2 Этап концептуализации
Все выделенные понятия на экспертной системе можно связать при помощи причинно-следственных связей. В совокупности с небольшим числом понятий было решено разрабатывать один из самых простых типов экспертных систем - продукционную экспертную систему, основанной на правилах вида ЕСЛИ-ТО [12]. Такой тип экспертной системы наиболее прост в реализации, хорошо подходит к задачам с небольшим ограниченным числом понятий с причинно-следственными связями и отлично подходит для рекомендательных систем.
В результате этапа концептуализации был построен концептуальный граф, показывающий зависимость различных переменных друг от друга (см. Рис. 7). Причинно-следственная связь направлена снизу-вверх.
Рис. 7. Концептуальный граф экспертной системы
2.2.3 Механизм логического вывода
Также на этапе проектирования требуется определить параметры механизма логического вывода.
В нашем случае получилось, что результат зависит в основном от одних и тех же запрашиваемых переменных. Исключение составляют несколько переменных, которые различны у различных игр, а также пара параметров, необходимость которых также зависит от других параметров. Например, число модов в игре Counter Strike требуется знать только, если выбран режим Моды, число резервных копирований в неделю только, если требуются резервное копирование, а такой параметр, как наличие текстур и их качество - есть только у игры Minecraft.
В этом случае достаточно будет использовать самый простой механизм логического вывода - прямой логический вывод. Для упрощения реализации было решено применять вариант прямого логического вывода, при котором все правила последовательно просматриваются с первого до последнего за один проход вне зависимости о того, какие правила срабатывают. Такой логический вывод можно реализовать при помощи последовательных простых условных операторов на любом процедурном языке.
2.3 Проектирование приложения «Server-Selector»
2.3.1 Концепция
Было решено, что экспертная система реализуется в виде веб-приложения и его кроссплатформенной версии для настольных компьютеров. При этом база знаний экспертной системы не большая, а механизм логического вывода не сложный. В этом случае приложение может быть реализовано в виде «толстого клиента», когда вся база знаний и логический вывод будут находиться и выполняться на стороне клиента, то есть в браузере пользователя. В этом случае экспертная система - одностраничный веб-сайт, состоящий только из клиентской части. Такое решение имеет следующие преимущества:
1. Скорость работы. При работе приложения не потребуется загружать новые страницы отправлять запросы на сервер, кроме как для загрузки непосредственно веб-страницы. При любой скорости интернета пользователя приложение будет работать одинаково быстро.
2. Низкие требования к серверу. В этом случае сервер требуется лишь для доставки файлов веб-страницы клиенту, но не требуется ни СУБД, ни исполнения программного кода на стороне сервера.
3. Возможность создать настольную версию.
4. Возможность работы без Интернет-соединения. В этом случае сохранённое приложение или версия для настольного компьютера может работать и без Интернет соединения.
Недостатками в данном случае является независимость от сервера, которая позволяет третьим лицам не санкционированно использовать данный продукт, и открытость исходного кода, в том числе базы знаний. Так как в данной работе не стояло целей защиты продукта от несанкционированного использования, этот недостаток можно опустить, хотя для защиты базы знаний и исходного кода можно применить обфускацию кода.
2.3.2 Стек технологий
Основой клиентской части веб-приложения всегда выступают традиционные технологии:
· Язык разметки гипертекста HTML.
· Каскадные таблицы стилей CSS.
· Язык сценариев веб-страниц JavaScript.
При этом, так как задачи поддержки устаревших версий интернет-браузеров не требуется, можно использовать последние версии HTML5 и CSS3.
Вёрстка и дизайн веб-страниц - не самая простая задача. Требуется разрабатывать дизайн страницы, верстать при помощи HTML и CSS, учитывая при этом как особенности различных браузеров и их версий, так и необходимость адаптации верстки к дисплеям различных разрешений. Для упрощения данной задачи широко применяются UI фреймворки. Самый распространённый такой фреймворк - Bootstrap от Twitter. В Server-Selector в качестве UI фреймворка решено использовать Materializecss [13] -фреймворк, позволяющий легко создавать интерфейс веб-страниц в стиле Material Design [14]. Это современный стиль дизайна хорошо знакомый многим пользователям, так как он используется компанией Google в мобильной операционной системе Android [15].
Важной частью современного интерфейса являются иконки. Materialize поставляется со стандартным набором иконок для Material Design. К сожалению, число иконок в данном наборе невелико. Было решено использовать более обширный набор иконок от одной из самых популярных открытых библиотек для иконок - Font-Awesome [16].
Экспертная система - не простая веб-страница, на которой отображена статичная информация или формы. Наилучшим решением будет то, при котором приложение управляется базой знаний экспертной системы: знаниями об играх, их параметрах и серверах. Существуют различные так называемые реактивные JavaScript фреймворки, позволяющие разрабатывать веб_приложения с двусторонней привязкой данных к интерфейсу. Так интерфейс генерируется в связи с данными, а данные зависят от пользовательских форм. Сейчас существует три наиболее распространённых фреймворка: ReactJS от Facebook, AngularJS от Google и VueJS от Alibaba.
ReactJS и AngularJS - большие фреймворки, которые также ставят цель решить часть проблем разработки веб-приложений большими командами. В нашем случае лучше подходит небольшой прогрессивный фреймворк VueJS, подходящий для постепенного и простого внедрения в разрабатываемое приложение [17].
Одна из поставленных задач - создание настольных версий приложения для различных платформ. Для решения этой задачи решено использовать технологию Electron [18]. Это технология на базе NodeJS - версии JavaScript для исполнения его в среде операционной системы, которая позволяет с минимальными затратами создать настольные приложения из одностраничного веб-приложения для различных операционных систем.
2.3.3 Компоненты веб-приложения
Веб-приложение состоит из следующих исполняемых модулей (см. Рис. 8):
Рис. 8. Компоненты приложения
1. Подключаемые библиотеки: jquery.js, materializecss.js, vue.js
2. Servers.js - модуль, содержащий знания о серверах и дисках резервного копирования.
3. Games.js - модуль, содержащий знания об играх и их параметрах.
4. Expert-System.js - модуль, содержащий основную часть базы знаний экспертной системы и выполняющий механизм логического вывода.
5. Script.js - модуль, содержащий основную логику веб-приложения.
3. Реализация приложения экспертной системы
3.1 Реализация базы знаний
База знаний продукционной экспертной системы состоит из множества продукций, правил вида ЕСЛИ-ТО. При этом в случае нашего прямого логического вывода механизм логического вывода может быть реализован при помощи стандартных конструкций ветвления и исполнения простого процедурного кода.
Фрагмент базы знаний, являющийся исполняемым кодом, представлен на Рис. 9.
Рис. 9. Фрагмент базы знаний в реализации экспертной системы
Вся база знаний, состоящая из более ста правил, находится в Приложении Д.
Основная часть экспертной системы реализована в модуле Expert-System.js.
Данный модель содержит три функции:
1. bw(param, a, b) - логическая функция, которая возвращает истину, если значение param находится между a и b. Такое условие часто требовалось при реализации экспертной системы (см. Рис. 10).
2. init - функция инициализации, которая устанавливала начальные значения для выводимых переменных (см. Рис. 11).
3. ExpertSystem(d) - основная функция экспертной системы, осуществляющаяО логический вывод и содержащая базу знаний, фрагмент которой был представлен в Рис. . Данная функция получает в качестве аргумента объект, содержащий рабочую память экспертной системы, и возвращает эту же рабочую память с изменениями в результате логического вывода.
Рис. 10. Код со вспомогательной функцией bw
Рис. 11. Кода с функцией init инициализации логического вывода
3.2 Реализация веб-приложения
3.2.1 Вёрстка веб-страницы
Веб-приложение содержит один HTML файл - index.html. Данный файл содержит около 160 строк и активно использует фреймворк VueJS для генерации разметки содержимого.
Вся веб-страница обёрнута в блок #app, содержимое которого обрабатывается фреймворком VueJS (см. Рис. 12).
Рис. 12. Разметки блока веб-приложения #app
Внутри данного блока находится три компонента: блок навигации, основной блок и подвал веб-страницы (см. Рис. 13).
Рис. 13. Разметка с основными компонентами: навигация, основной блок и «подвал»
Блок main содержит два блока: блок с анимацией, отображаемой при загрузке, и основной блок с содержимым веб-приложения. Основной же блок содержит два блока: блока с выбором игры и блоком с рекомендацией сервера к выбранной игре (см. Рис. 14).
Рис. 14. Разметка основного блока веб-страницы
Выбор игры реализован с помощью стандартного виджета фреймворка Materializecss - карусели (см. Рис. 15).
Рис. 15. Разметка компонента «Карусель» для выбора игры
Консультация после выбора игры представлена блоком из трёх колонок: колонки с выбранной игрой, колонки с параметрами игры и колонки с информацией о рекомендуемом сервере (см. Рис. 16). Тут же активно используются возможности адаптивной верстки в Materialize. Размер колонки зависит от размера экрана (s - мобильные устройства, l - планшеты и небольшие ноутбуки и xl - большие экраны компьютеров) и занимает некоторую долю из 12 долей всей ширины. Также добавляется отступ, зависящий от разрешения экрана (offset), и скрытие элемента.
Рис. 16. Разметка колонок в консультации
Наиболее интересная из этих колонок - это колонка с блоком с параметрами игры, который генерируется из описания параметров игры. Внутри данного блока циклически генерируются все элементы форм для ввода параметров игры, зависящие от типа этого параметра (см. Рис. 17).
Рис. 17. Разметка блока с параметрами игры
При вёрстке также активно использовались элементы типа card из Material Design.
Полный код html разметки находится в Приложении А.
Единственный пользовательский файл каскадных таблиц стилей styles.css также находится в Приложении Б. Данный файл не представляет большого интереса и содержит лишь 75 строк вспомогательных стилей, таких как:
1. Основные стили, устанавливающие приложение по размеру экрана с прокруткой в центральной части.
2. Небольшие изменения в отступах и размерах элементов для экономии пространства
3. Увеличение размера элемента «Карусель».
4. Пара css анимаций, использующихся при переходе между состояниями.
Другие стили не требовались, так как при вёрстке активно используются стили фреймворка Materializecss.
3.2.2 База знаний и экспертная система в приложении
В двух файлах: games.js и servers.js содержатся знания о играх с их параметрами и доступных серверах с дисками резервного копирования.
Файл games.js содержит знания об играх и их параметрах. Эти знания представлены массивом объектов, по одному объекту на каждую игру. Каждый объект содержит знания о названии игры, её изображении, параметрам, начальных значений параметров и функции check, которая проверяет, что введённые параметры не противоречат здравому смыслу.
Описание знания о параметрах игры также представлено массивом объектов, содержащих знания об: имени переменной данного параметра, отображаемого названия, типа параметра и знания, различные для различных типов параметров. Также для каждого параметра известно, зависит ли он от другого параметра.
Всего поддерживаются 3 типа параметров:
1. Range - элемент типа ползунок для выбора числового значения в некоторым диапазоне.
2. Select - элемент выбора значения из списка значений.
3. Check - элемент типа флажок для биполярных параметров.
На Рис. 17 представлен фрагмент кода, описывающего игру Minecraft, в котором есть примеры всех описанных особенностей и атрибутов.
Рис. 18. Фрагмент кода, описывающего доступные игры и их параметры
Знания о доступных серверах хранятся подобным образом в виде ассоциативного массива Servers с объектами, содержащих знания о имени, изображении, цене сервера, его параметрах и ссылка на заказ (см. Рис. 19). Аналогичным образом в этом же модуле хранятся знания о дисках резервного копирования.
Рис. 19. Фрагмент кода, описывающий сервер и его параметры
Полный код всех файлов также содержится в Приложении Г.
3.2.3 Основной скрипт веб-приложения
Основной скрипт приложения - script.js - отвечает за инициализацию VueJS приложения (см. Рис. 20).
Ключевую роль в управлении VueJS приложением играют данные. В нашем приложении данные представлены:
1. Массивом доступных серверов и дисков.
2. Рекомендуемым сервером.
3. Рекомендуемым диском резервного копирования.
4. Массивом доступных игр и их параметрами.
5. Установленными значениями параметров игры.
6. Флагом, определяющего, находится ли приложение в состоянии загрузки или уже готово к работе.
Также основной скрипт описывает три метода VueJS приложения:
1. selectGame - выбор игры. Осуществляет выбор игры и переход между состояниями приложения (выбор игры и консультация).
2. chooseServer - запуск консультации. Осуществляет запуск логического вывода и получение результата.
3. initCarusel - инициализация элемента «Карусель». Необходимо выполнять инициализацию каждый раз, когда она вновь отображается на экране.
Рис. 20. Объект с данными, управляющими состоянием VueJS приложения
Полный код доступен в Приложении В.
Для реализации приложения для настольного компьютера было достаточно к исходному коду добавить два файла:
1. app.js - скрипт, инициализирующий запуск веб-приложения как настольного приложения при помощи Electron. Данный файл полностью взят из документации Electron [19], изменены лишь ограничения на размер окна.
2. Package.json - файл конфигурации, необходимый для работы electron приложения, в котором установлено, что описанный выше скрипт app.js является точкой входа в приложение.
3.3 Результат разработки приложения
Вначале пользователь видит веб-приложение в состоянии загрузки, при котором загружаются все скрипты, а также инициализируется VueJS приложение. В случае достаточно быстрого интернета или повторной загрузки страницы, когда всё необходимое есть в кэше, приложение инициализируется практически мгновенно, иначе отображается анимация загрузки (см. Рис. 21).
Рис. 21. Интерфейс приложения в состоянии загрузки
После загрузки приложение пользователь видит карусель с доступными играми (см. Рис. 22).
Рис. 22. Интерфейс элемента «карусель» в выборе игры
После выбора игры пользователь попадает на страницу консультации (см. Рис. 23), где может вернуться обратно к списку игр или заполнить форму с параметрами игры и пройти консультацию, получив рекомендуемый сервер и диск для резервного копирования.
В случае, если экспертная система не смогла подобрать подходящий сервер, выдаётся соответствующее сообщение (см. Рис. 24).
Рис. 23. Интерфейс консультации
Рис. 24. Интерфейс сообщения о неудачной консультации
Важность частью интерфейса была адаптация к различным разрешениям экранов и устройствам. Кроме основного интерфейса для больших мониторов персональных компьютеров (широкая форма с параметрами по центру и отступы по бокам), доступны ещё два варианта интерфейса (см. Рис. 25):
1. Для планшетов. Убраны отступы по бокам, а центральная часть с формой с параметрами уменьшена.
2. Для мобильных устройств. Блок с выбранной игрой убран, кнопка «Другая игра» перенесена на форму с параметрами игры, а остальные блоки расположены друг под другом и занимают всю ширину.
При этом адаптация происходит автоматически при изменении разрешения экрана и не требует перезагрузки приложения.
Скачивание версии для настольного компьютера также должно быть доступно на основной веб-странице. Для этого в меню добавлен раскрывающийся список со ссылками на скачивание приложений под различные ОС (см. Рис. 26).
Рис. 25. Демонстрация адаптивности интерфейса
Рис. 26. Меню загрузки версии для настольного компьютера
На Рис. 27 и Рис. 28 Представлено изображение приложения как настольного приложения в средах Microsoft Windows (Windows 10), Linux (Linux Mint KDE). К сожалению, изображение в операционной системе Mac OS X отсутствует, хотя есть дистрибутив и для данной операционной системы.
Рис. 27. Windows приложение Server-Selector
Рис. 28. Linux приложение Server-Selector
Заключение
В ходе выполнения данной работы удалось выполнить все этапы создания программного обеспечения, которое может заменить эксперта в выборе игрового сервера, в том, случае, если пользователь решиться открыть игровой проект по одной из трех самых популярных на момент написания видеоигр.
Была создана база знаний и реализована на её основе экспертная система, которая использует в логическом выводе и получает результат, который является самым подходящим и экономичным вариантом для конкретного случая при выборе игрового сервера.
Экспертная система дает пользователю ссылку, переходя по которой, он может сразу же более подробно прочитать про ту серверную машину, которую экспертная система порекомендовала и там же её приобрести. В этом случае данная экспертная система очень выгодна для поставщиков серверного оборудования, с учетом того, что есть возможность в любой момент легко изменить ссылку на другого поставщика и настроить приложение уже под конкретного заказчика.
Программное обеспечение, разработанное в ходе выпускной квалификационной работы, полностью кроссплатформенное, её основная версия представлена в виде веб-приложения, а настольная версия доступна основных для операционных систем: Microsoft Windows, Linux и Mac OS. Экспертная система была загружена на хостинг и на момент сдачи работы является общедоступной (http://server-selector.ru/).
Все поставленные задачи выполнены полностью, и экспертная система является полностью работоспособной и результат, который выдает программа, соответствует тому результату, который бы посоветовал эксперт в данной области.
Помимо проделанной работы, в ходе данного исследования, существуют дальнейшие перспективы развития приложения «Server Selector». Одна из особенностей экспертной системы является наличие объяснительный компоненты, которая бы объясняло пользователю, почему был выдан именно этот результат, основываясь на объяснении каждого правила. В данной приложение её можно добавить без особых усилий, поэтому данная возможность будет реализована в будущем.
Так же большой особенностью данного приложения является возможность легкого редактирования базы знаний, тем самым можно не только лёгкого поменять провайдера услуг, чтобы приложение подошло любому заказчику, но и набор игр с их параметрами и даже саму предметную область, в целом.
Библиографический список
1. Jackson P. Introduction To Expert Systems (3 ed.). Addison Wesley, 1998. 2 pp.
2. Stuart P. R.N. Artificial Intelligence: A Modern Approach. Simon & Schuster, 1995.
3. Liao S.H. Expert system methodologies and applications -- a decade review from 1995 to 2004 // Expert Systems with Applications, Vol. 28, No. 1. pp. 93-103.
4. Compare Minecraft Hosting Prices [Электронный ресурс] // ComapareGameHosting: [сайт]
5. Game server comparison, reviews, pricing, ratings, deals, coupons and information [Электронный ресурс] // Game Server Host: [сайт]
6. Хостинг майнкрафт. Купить качественный хостинг [Электронный ресурс]
7. Plans [Электронный ресурс] // HostHorde: Unlimited Minecraft Server Hosting: [сайт]
8. Лекция | Экспертные системы // НОУ ИНТУИТ
9. Home - Rust [Электронный ресурс] // Rust: [сайт]
10. Официальный сайт | Minecraft [Электронный ресурс]
11. Counter Strike in Steam [Электронный ресурс] // Steam: [сайт]
12. David Klahr P.W.L.R.T.N. Production System Models of Learning and Development. Cambridge: The MIT Press, 1987.
13. Documantation [Электронный ресурс] // Materialize: [сайт]
14. Material Design [Электронный ресурс]
15. Materual Design for Android [Электронный ресурс] // Android Developers: [сайт]. [2018]
16. Font-Awesome [Электронный ресурс]
17. Сравнение с другими фреймворками [Электронный ресурс] // Vue.js: [сайт]
18. Build cross platform desktop apps with JavaScript, HTML, and CSS [Электронный ресурс] // Electron: [сайт]
19. Writing Your First Electron App [Электронный ресурс] // Electron: [сайт]
экспертный программный игровой веб сервер
Приложение А
Исходный код. HTML разметка index.html
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Server Selector</title>
<link rel="stylesheet" href="css/materialize.min.css">
<link rel="stylesheet" href="css/fontawesome-all.min.css">
<link rel="stylesheet" href="css/styles.css">
</head>
<body class="blue-grey light">
<div id="app">
<nav class="green">
<div class="nav-wrapper">
<a href="#" class="brand-logo center ">Server Selector</a>
<ul id="download-dropdown" class="dropdown-content">
<li>
<a href="desktop/server-selector-windows.zip" target="_blank"><i class="fab fa-lg fa-windows"></i> Windows</a>
</li>
<li class="divider"></li>
<li>
<a href="desktop/server-selector-mac.zip" target="_blank"><i class="fab fa-lg fa-apple"></i> Mac</a>
</li>
<li class="divider"></li>
<li>
<a href="desktop/server-selector-linux.zip" target="_blank"><i class="fab fa-lg fa-linux"></i> Linux</a>
</li>
</ul>
<ul class="right">
<li>
<a class="dropdown-button" href="#!" data-activates="download-dropdown"><i class="fas fa-download"></i> Download desktop</a>
</li>
<li>
<a> </a>
</li>
</ul>
</div>
</nav>
<main class="section">
<div class="preloader-wrapper-wrapper valign-wrapper" v-show="loading">
<div class="preloader-wrapper large active">
<div class="spinner-layer spinner-green-only">
<div class="circle-clipper left">
<div class="circle"></div>
</div>
<div class="gap-patch">
<div class="circle"></div>
</div>
<div class="circle-clipper right">
<div class="circle"></div>
</div>
</div>
</div>
</div>
<div id="main-container" v-show="!loading" style="display: none;">
<transition name="slide-fade" mode="out-in" @enter="initCarusel()">
<div class="valign-wrapper" v-if="!game" key="gameSelection" style="height: 100%;">
<div class="carousel">
<div class="carousel-item" v-for="(game, i) in games">
<div class="card">
<div class="card-image">
<img :src="game.img">
</div>
<div class="card-action center-align">
<a class="btn btn-default waves-effect waves-teal" @click="selectGame(i)">
<span class="fas fa-check"></span> Выбрать
</a>
</div>
</div>
</div>
</div>
</div>
<div class="row" v-else key="gameSelected">
<div class="col offset-xl2 xl2 l3 hide-on-med-and-down">
<div class="card">
<div class="card-image">
<img :src="game.img">
</div>
<div class="card-action center-align">
<a class="btn btn-default waves-effect waves-teal" @click="selectGame(-1)">
<span class="fas fa-undo"></span> Другая игра</a>
</div>
</div>
</div>
<div class="col s12 l5 xl4">
<div class="card">
<div class="card-content">
<div class="card-title center-align">
<span class="fas fa-gamepad"></span> Параметры игры {{ game.title }}</div>
<div class="row" v-for="(field, fieldI) in game.fields" v-if="!field.showIf || Number(paramsData[field.showIf])">
<div class="range-field col s12" v-if="field.type == 'range'">
<label>{{ field.title }} ({{ paramsData[field.name] }})</label>
<input type="range" :min="field.min" :max="field.max" v-model="paramsData[field.name]" />
</div>
<div class="input-field col s12" v-if="field.type == 'input'">
<input type="text" :name="field.name" v-model="paramsData[field.name]">
<label>{{ field.title }}</label>
</div>
<div class="input-field col s12" v-if="field.type == 'select'">
<material-select v-model="paramsData[field.name]">
<option disabled value="-1" selected>{{ field.title }}</option>
<option :value="optI" v-for="(option, optI) in field.options">{{ option }}</option>
</material-select>
<label>{{ field.title }}</label>
</div>
<p class="col s12" v-if="field.type == 'check'">
<input type="checkbox" :id="'gameParams_' + field.name" v-model="paramsData[field.name]" />
<label :for="'gameParams_' + field.name">{{ field.title }}</label>
</p>
</div>
<div class="row center-align">
<a class="btn btn-default waves-effect waves-teal hide-on-large-only" @click="selectGame(-1)">
<span class="fas fa-undo"></span> Другая игра</a>
<a class="btn btn-default waves-effect waves-teal" @click="chooseServer()">
<span class="fas fa-search"></span> Подобрать сервер</a>
</div>
</div>
</div>
</div>
<div class="col s12 l4 xl3">
<transition name="slide-fade" mode="out-in">
<div v-if="server" key="server-found">
<div class="card">
<div class="card-content">
<div class="card-title center-align">
<span class="fas fa-server"></span> {{ server.title }}</div>
<div class="card-image">
<img :src="server.img">
</div>
<h5 class="center-align">{{ server.price }}
<i class="fas fa-fw fa-euro-sign"></i>/мес. </h5>
<div class="section">
<p>
<div class="chip yellow lighten-3">
<i class="fas fa-fw fa-tachometer-alt"></i>
<b>CPU:</b> {{ server.params.CPU }}</div>
</p>
<p>
<div class="chip amber lighten-3">
<i class="fas fa-fw fa-memory"></i>
<b>RAM:</b> {{ server.params.RAM }}</div>
</p>
<p>
<div class="chip orange lighten-3">
<i class="fas fa-fw fa-hdd"></i>
<b>Disk:</b> {{ server.params.Disk }}</div>
</p>
</div>
<!-- <pre><code>{{ debugData }}</code></pre> -->
</div>
<div class="card-action center-align">
<a target="_blank" :href="server.link" class="btn btn-default waves-effect waves-teal">
<span class="fas fa-shopping-cart"></span> Купить</a>
</div>
</div>
<div class="card" v-if="server && bud" key="server-found-with">
<div class="card-content">
<div class="card-title center-align">
<span class="fas fa-archive"></span> BuckUp {{ bud.title }} {{ bud.size }}</div>
<div class="card-image">
...Подобные документы
Процесс подбора экспертной системой наиболее подходящих вариантов, оценки альтернатив в поисках оптимально подходящего конкретному пользователю мотоцикла. Экспертная система как набор программ и база знаний. Исходный код разрабатываемой системы.
курсовая работа [626,5 K], добавлен 23.11.2012Структура типичной экспертной системы. База данных (рабочая память), её назначение. Функция getsport как экземпляр класса cSport. Алгоритм работы экспертной системы. Реализация пользовательского интерфейса. Результаты тестирования системы пользователем.
курсовая работа [1018,8 K], добавлен 13.06.2012Назначение экспертной системы. Разработка экспертной системы путем самостоятельного программирования в полном объеме простейшей ЭС в "GURU". Листинг экспертной системы по прогнозированию на бирже уровня цен, если валютный курс доллара падает или растет.
лабораторная работа [17,8 K], добавлен 15.01.2011Разработка экспертной системы по выбору языка программирования для данного программного обеспечения. Выбор и обоснование механизма вывода решения. Дерево базы знаний экспертной системы. Программа формирования основного меню, руководство пользователя.
курсовая работа [1,9 M], добавлен 15.08.2012Описание экспертной системы по подбору кадров. Требования к функциональным характеристикам программы. Состав и параметры технических средств ЭВМ. Структура входных данных. Руководство программиста и пользователя. Тестирование программного средства.
курсовая работа [897,0 K], добавлен 13.11.2016Разработка игрового проекта на игровом движке Unity 3D в среде программирования MS Visual Studio 2017. Блок-схема алгоритма работы приема сообщений с сервера на клиенте с упрощенным описанием выполняемых команд. Реализация пользовательского интерфейса.
курсовая работа [1,5 M], добавлен 10.07.2017Создание интеллектуальной экспертной системы по подбору комплектующих для стационарного компьютера. Медицина как пример экспертной системы с использованием метода Криса-Нейлора. Извлечение знаний, их структурирование, представление, стратегия вывода.
контрольная работа [827,5 K], добавлен 14.12.2012Фреймовые модели представления знаний. Разработка структуры фреймов для реализации экспертной системы. Разработка экспертной системы с фреймовой моделью представления знаний. Редактирование базы фактов кандидатов и описание режима консультации.
курсовая работа [1,3 M], добавлен 13.10.2012Изучение существующих подходов к использованию компьютерных игр в образовательном процессе. Разработка и реализация проекта игрового обучающего приложения на мобильной платформе. Выбор платформы и средств реализации игрового обучающего приложения.
дипломная работа [3,4 M], добавлен 12.08.2017Изучение существующих подходов к использованию компьютерных игр в образовательном процессе. Особенности использования мобильного обучения. Методика и этапы закрепления полученных ранее знаний с использованием игрового приложения на мобильной платформе.
дипломная работа [813,0 K], добавлен 27.10.2017Общая характеристика киноиндустрии как предметной области работы. Разработка базы данных и дерева вопросов для получения информации для выбора фильма. Программная реализация экспертной системы. Тестирование системы и создание руководства пользователя.
курсовая работа [1,9 M], добавлен 19.05.2014Обзор системного и прикладного программного обеспечения используемого в ООО "Игровые системы". Описание компьютерной сети предприятия. Разработка игрового продукта для планшетов Apple iPad. Реализация визуального интерфейса и алгоритма работы модуля.
отчет по практике [1,4 M], добавлен 18.01.2015История появления первой экспертной системы DENDRAL. Проектирование и разработка программной экспертной системы, предназначенной для анализа финансового состояния предприятия. Основные предикаты и секции приложения: domains, predicates, clauses, goal.
курсовая работа [1,5 M], добавлен 21.05.2016Структура экспертной системы: база знаний, механизм вывода, система пользовательского интерфейса. Анализ требований, проектирование системы "Подбор сотовых телефонов". Спецификация области, кодирование. Листинг программы, результаты тестирования.
курсовая работа [24,5 K], добавлен 12.05.2013Реализация системы экспертной оценки эффективности программного продукта. Анализ информационной системы как объекта проектирования. Описание потоков данных, обрабатываемых и генерируемых системой. Программная архитектура и основные требования к системе.
курсовая работа [1,5 M], добавлен 10.12.2016Пример экспертной системы с использованием метода Криса-Нейлора. Структура базы данных. Стратегия вывода результатов выбора страны. Руководство пользователя, редактирование базы знаний. Режим тестирования, его завершение, блок объяснения решения.
контрольная работа [1,6 M], добавлен 29.12.2012Структура Android-приложений. Особенности игрового движка. Алгоритмизация и программирование. Список игровых состояний. Настройка, отладка и тестирование программы. Разработка руководства пользователя. Тестирование инсталляции и отображения элементов.
дипломная работа [4,5 M], добавлен 19.01.2017Обобщенная структура и принципы функционирования экспертных систем. Выбор модели представления знаний. Разработка логического блока программы и графического пользовательского интерфейса. Текст программы и экспериментальная оценка результатов работы.
дипломная работа [2,4 M], добавлен 06.03.2013Аналитический обзор системы управления курсами Moodle, программное построение ее модулей. Разработка структурной схемы и базы знаний экспертной системы. Создание дерева вопросов и выбор алгоритма поиска решений. Анализ возможных угроз и защита информации.
дипломная работа [534,7 K], добавлен 14.12.2013Разработка и проектирование информационной системы подбора сувенирной продукции по заявкам и предпочтениям пользователя. Организация внутримашинной информационной базы. Структура программного обеспечения и функции частей программного обеспечения.
курсовая работа [5,0 M], добавлен 14.01.2018