ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ
ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ»
( Н И У
« Б е л Г У » )
ИНСТИТУТ ИНЖЕНЕРНЫХ ТЕХНОЛОГИЙ И ЕСТЕСТВЕННЫХ НАУК
КАФЕДРА ПРИКЛАДНОЙ ИНФОРМАТИКИ И ИНФОРМАЦИОННЫХ
ТЕХНОЛОГИЙ
РАЗРАБОТКА ЭКСПЕРТНОЙ СИСТЕМЫ ПОДБОРА ОДЕЖДЫ С
ПОМОЩЬЮ ОБОЛОЧКИ-ИНТЕРПРЕТАТОРА БАЗ ЗНАНИЙ ESWIN
Выпускная квалификационная работа
обучающегося по направлению подготовки
09.03.03 «Прикладная информатика»
заочной формы обучения, группы 07001251
Атрошенко Юлии Николаевны
Научный руководитель:
доцент Путивцева Н.П.
БЕЛГОРОД 2017
СОДЕРЖАНИЕ
СОДЕРЖАНИЕ.................................................................................................................................. 2
ВВЕДЕНИЕ ........................................................................................................................................ 3
1 Аналитическая часть ...................................................................................................................... 5
1.1 Описание оболочек экспертных систем ................................................................................ 6
1.1.1 Интегрированная инструментальная среда GURU ....................................................... 8
1.1.2 Система 1stCLASS .......................................................................................................... 11
1.1.3 Язык искусственного интеллекта CLIPS ...................................................................... 13
1.2. Характеристики гибридных экспертных систем, основанных на продукционнофреймовой модели представления знаний ................................................................................ 15
1.3. Анализ ESWin как типичного представителя продукционно-фреймового класса ЭС .. 16
2 Разработка экспертной системы Clothes Advisor ...................................................................... 20
2.1 Составление концептуальной модели предметной области ............................................. 20
2.2 Корректировка концептуальной модели предметной области ......................................... 22
2.3 Объекты и правила ................................................................................................................ 23
3 Программная реализация экспертной системы Clothes Advisor .............................................. 27
3.1 Структура экспертной системы ........................................................................................... 27
3.2 Описание программной оболочки ESWin ........................................................................... 29
3.3 Формирование тестового примера ....................................................................................... 33
3.3.1 Протокол диалога с ЭС для тестового примера .......................................................... 34
3.3.2 Проверка работоспособности системы ........................................................................ 35
3.3.3 Проверка дополнительных возможностей системы ................................................... 40
ЗАКЛЮЧЕНИЕ................................................................................................................................ 42
СПИСОК ЛИТЕРАТУРЫ ............................................................................................................... 43
ПРИЛОЖЕНИЕ ............................................................................................................................... 45
2
ВВЕДЕНИЕ
Начиная с середины XX столетия и до сих пор, одним из самых значимых
направлений развития науки и техники является искусственный интеллект.
Задача этого направления заключается в обеспечении разумных рассуждений и
действий с помощью вычислительных систем и других искусственных
устройств. Отдельная область искусственного интеллекта - инженерия знаний –
занимается разработкой экспертных систем, развитием средств представления и
обработки знаний на компьютере. Экспертная система - система искусственного
интеллекта, содержащая знания об определенной слабо структурированной и
трудно формализуемой узкой предметной области и способная предлагать
пользователю разумные решения и их объяснения. Экспертные системы играют
роль
эксперта
и
решают
задачи
диагностики,
прогнозирования
или
планирования.
Раньше на проектирование и создание одной экспертной системы
потребовалось бы около 20 человек-лет. В настоящее время имеется ряд
инструментальных
средств,
значительно
ускоряющих
разработку.
Инструментальное средство разработки экспертных систем – это язык
программирования, используемый разработчиком для построения экспертной
системы. Сегодня для создания экспертных систем существуют различные
программные средства.
В наши дни широко используются экспертные системы, помогающие при
выборе решения для конкретной задачи. Программное средство ESWin является
одним из наиболее доступных представителей
продукционно-фреймового
класса ЭС.
Объект исследования: процесс выбора товара (на примере одежды) по
критериям клиента.
3
Предмет исследования: процесс применения экспертной оболочки ESWin
для организации выбора.
Целью работы является разработка экспертной системы Clothes Advisor
на базе оболочки экспертной системы ESWin.
Для достижения цели необходимо решить следующие задачи:
Изучить предметную область
Изучить оболочку экспертной системы ESWin
Сравнить ESWin с аналогами
Спроектировать экспертную систему Clothes Advisor
Реализовать экспертную систему Clothes Advisor
Протестировать разработанную систему с привлечением оболочки
WEST.
Пояснительная записка состоит из введения, 3 разделов, заключения,
списка используемой литературы и приложений.
Во введении рассматривается актуальность выбранной темы, выбираются
предмет и объект исследования, ставится цель и формулируются задачи,
приводится структура ВКР.
В первом разделе рассматриваются программные и аппаратные средства,
широко распространенные в области интеллектуальных систем. Приводятся
характеристики гибридных экспертных систем. Рассматривается экспертная
оболочка
продукционно-фреймового
типа
ESWin.
Анализируются
ее
недостатки.
Во втором разделе приведена поэтапная разработка базы знаний.
В третьем разделе приведены примеры работы программы и рассмотрены
результаты внедрения.
Пояснительная записка к ВКР написана на …. страницах, содержит …
рисунков, …. таблиц и 3 приложения.
4
1 Аналитическая часть
Экспертные системы (ЭС) - это яркое и быстро прогрессирующее
направление в области искусственного
интеллекта (ИИ). Причиной
повышенного интереса, который ЭС вызывают к себе на протяжении всего
своего существования, является возможность их применения к решению задач из
самых различных областей человеческой деятельности. Пожалуй, не найдется
такой проблемной области, в которой не было бы создано ни одной ЭС или по
крайней мере такие попытки не предпринимались бы [9].
ЭС - это набор программ или программное обеспечение, которое
выполняет функции эксперта при решении какой-либо задачи в области его
компетенции. ЭС, как и эксперт-человек, в процессе своей работы оперирует со
знаниями. Знания о предметной области, необходимые для работы ЭС,
определенным образом формализованы и представлены в памяти ЭВМ в виде
базы знаний, которая может изменяться и дополняться в процессе развития
системы.
ЭС выдают советы, проводят анализ, выполняют классификацию, дают
консультации и ставят диагноз. Они ориентированы на решение задач, обычно
требующих проведения экспертизы человеком-специалистом. В отличие от
машинных программ, использующий процедурный анализ, ЭС решают задачи в
узкой предметной области (конкретной области экспертизы) на основе
дедуктивных рассуждений. Такие системы часто оказываются способными
найти решение задач, которые неструктурированны и плохо определены. Они
справляются с отсутствием структурированности путем привлечения эвристик,
т. е. правил, взятых «с потолка», что может быть полезным в тех системах, когда
недостаток необходимых знаний или времени исключает возможность
проведения полного анализа [20].
5
1.1 Описание оболочек экспертных систем
Оболочка
экспертных
систем –
инструментальное
средство
для
проектирования и создания экспертных систем. В состав оболочки входят
средства проектирования базы знаний с различными формами представления
знаний и выбора режима работы решателя задач. Для конкретной предметной
области инженер по знаниям определяет нужное представление знаний и
стратегии решения задач, а затем, вводя их в оболочку, создает конкретную
экспертную систему.
Применение оболочки позволяет достаточно быстро и с минимальными
затратами создать исследовательскую, демонстрационную или промышленную
экспертную систему. Оболочки можно классифицировать следующим образом
(рис. 1.1). По степени отработанности выделяют экспериментальную (GPSI),
исследовательскую (Expert) и коммерческую (EXSYS) оболочки.
Рисунок 1.1 -Классификация оболочек экспертных систем
6
Знания в базе могут быть представлены одним способом (EMYCIN,
CLIPS) – семантической сетью, продукциями, фреймами и т.д. или же
несколькими (MINEVRA, EsWin) для создания более полной, гибкой и
наглядной модели предметной области.
Используемые в оболочке методы могут быть традиционными (CubiCalc,
NEXPERT, Алеф) – алгоритмы, деревья вывода и т.д. и гибридными
(FuzzyCLIPS, MultiNeuron), где совместно с традиционными используются
нейронные сети, нечеткая логика и т.д.
Существуют статические оболочки, предназначенные для решения
статических задач (1-st Clas, Элис). Они характеризуются использованием
поверхностной технологии, общих правил и поиска решения от цели к данным,
применяются для решения задач анализа.
Статические оболочки, предназначенные для решения задач анализа и
синтеза с разделением времени (KAPPA, Clips), используют глубинный и
структурный подходы, осуществляют поиск решений от цели к данным и от
данных к цели.
Оболочки для проектирования динамических систем (Framework,
NExpert) применяют поверхностный подход, принимают решения на основе
правил общего вида.
Оболочки для разработки динамических систем (G2, Rethink, RkWorks)
имеют подсистему моделирования, планировщика решений, используют
смешанную технологию, правила общего и частного вида, решение задачи
анализа и синтеза в реальном времени.
EMYCIN – первая оболочка, основанная на MYCIN. Принципы,
разработанные для PROSPECTOR, были использованы при создании таких
систем, как KAS, SAGE, SAVOIR.
Изменение принципов построения ведет к развитию инструментария.
Поэтому оболочки прошли тот же эволюционный путь, что и ЭС. Современные
оболочки предлагают следующие возможности (в каждой конкретной оболочке
представлены частично):
7
гибридное представление знаний (EsWin);
выбор из нескольких стратегий вывода (G2, CLIPS );
подключение
библиотек
и
других
систем
(ACTIVATION
FRAMEWORK);
архитектура на основе «доски объявлений» (HEARSAY-III);
архитектура «клиент-сервер» (JESS);
интеграция в Интернет / Интранет (Egg2Lite, Exsys Corvid);
графический интерфейс (WindExS, WxCLIPS);
подсистема моделирования (G2);
модульное построение системы (ReThink, G2);
визуализация структуры БЗ (W.E.S.T.) и т.д.
1.1.1 Интегрированная инструментальная среда GURU
В инструментальной среде построения ЭС GURU, разработанной фирмой
Micro Data Base Systems, Inc., методы экспертных систем сочетаются с такими
средствами обработки данных, как
составление электронных ведомостей,
управление базой данных и деловой графикой, и таким образом формируется
уникальная среда для поддержки принятия решений и разработки прикладных
интеллектуальных систем.
Система GURU легка в употреблении для новичков и в то же время
является достаточно эффективной и гибкой системой для профессионалов разработчиков.
В обычных «интегрированных» программных продуктах или несколько
отдельных программ помещены в операционную среду, или несколько,
второстепенных компонентов вкладываются в главный компонент (как,
например, программа обработки электронных ведомостей или текстовый
редактор). Трудности, с которыми сталкиваются при таких стилях «интеграции»,
8
хорошо известны. Первая трудность заключается в том, что пользователь
вынужден переходить назад и вперед по отдельным программам и передавать
данные между ними. Метод вложений заставляет пользователя выполнить всю
обработку в пределах главного компонента, и в результате получаются
относительно слабые вторичные компоненты.
Метод Интеграции, используемый в системе GURU, основывается на
принципе синергизма. При этом под «синергизмом» здесь понимается
следующее. В системе GURU все средства всегда доступны. Многочисленные
компоненты можно соединять по желанию в пределах одной операции, а это
характеризует систему как гибкую и удобную в использовании. Например:
в посылке любого правила ЭС можно делать прямые ссылки на поля
базы данных, на ячейки электронных ведомостей, на статические переменные,
на программные переменные и массивы;
вывод любого правила ЭС может включать в себя операции
управления базой данных, запросы на языке SQL (языке структурированных
запросов),
операции
статистических
обработки
электронных
данных, дистанционную
ведомостей,
передачу данных,
генерацию
выполнение
процедур, генерацию деловой графики;
поскольку ЭС обосновывает задачу, она может брать консультации
у других ЭС, выполнять процедурные модели, просматривать базы данных,
составлять электронные ведомости или проводить статистический анализ;
любую ячейку электронной ведомости можно определить в терминах
поиска в базе данных или в терминах всей программы, или в терминах
консультации с ЭС [14,15].
Взаимодействовать с системой можно любым из четырех различных
способов:
с помощью меню,
на ограниченном естественном языке,
в режиме команд
9
через специально разработанные интерфейсы.
Каждый
тип
интерфейса
системы
GURU
предназначен
для
удовлетворения потребностей и вкусов различных классов пользователей. Всеми
четырьмя интерфейсами можно пользоваться во время одного и того же сеанса
взаимодействия с системой GURU.
Как и в большинстве оболочек, в GURU используется продукционная
модель представления знаний в виде совокупности «If-then» правил с обратной
стратегией вывода в качестве основной имеется возможность моделирования
нечетких и неточных рассуждений. Кроме посылок и заключения в правила
можно включать команды, которые будут выполняться перед проверкой
условия, а также пояснительный текст для генерации объяснений. Правила также
включают необязательные параметры цены и приоритета, позволяющие
управлять процессом выбора из совокупности, готовых, к выполнению правил
очередного. С каждым правилом можно также связать число, определяющее,
сколько раз это правило может выполняться в процессе консультации.
Правила, относящиеся к решению некоторой общей задачи, образуют
базу знаний, или набор правил. В этот набор кроме правил включаются две
специальные процедуры: инициализация и завершение, которые должны
выполняться до и после выполнения правил. В набор правил также включаются
описания переменных, участвующих в правилах, содержащие спецификации
типа, точности и т. п.
По умолчанию в GURU принята стратегия обратного вывода, однако,
можно использовать чисто прямой вывод, а также комбинировать его с обратным
в рамках одного набора правил. Как стратегиями вывода, так и целевыми
переменными можно управлять динамически в процессе консультации.
GURU обеспечивает мощные средства управления обработкой факторов
уверенности, отражающих степень неточности и нечеткости выраженных в
правилах эвристических знаний. Для предоставления такой нечеткости в GURU
с каждым значением переменной может быть связан числовой коэффициент от 0
до 100. Система предоставляет разработчику выбор более чем из 30 различных
10
формул, позволяющих управлять обработкой факторов уверенности во время
вывода.
Полезными являются такие дополнительные средства управления
логическим выводом, как установка степени «точности» вывода значения для
некоторой переменной, изменение принятого по умолчанию порядка просмотра
правил.
Эффективность машины логического вывода во многом зависит от того,
как она осуществляет поиск в наборе правил, когда ищет правила, которые
можно выполнять. В отличие от традиционного программного обеспечения,
использующего
принципы
искусственного
интеллекта,
система
GURU
предоставляет расширенные средства управления настройкой, в частности
поддерживает до 50 различных стратегий поиска. Эффективность также зависит
от количества и состава правил в наборе правил. Поскольку система GURU
предоставляет разнообразные возможности создания наборов правил, то можно
значительно сократить количество правил, необходимых для охвата всех знаний
и опыта в конкретной проблемной области. Это приводит к ускорению процесса
получения логических выводов, а также к упрощению управления этими
правилами.
Интегрированная система GURU пытается превратить потенциальные
преимущества ЭС в реальность, облегчить пользователю процесс создания ЭС,
сделать его прямым, эффективным и естественным [6].
1.1.2 Система 1stCLASS
Система-оболочка 1stCLASS относится к классу систем индуктивного
типа, так как исходит из принципа построения дерева поиска решений по
множеству примеров. От пользователя не требуется изучения команд
внутреннего языка оболочки, ему предоставляется серия из шести графических
11
экранов-меню. Используя эти экраны, можно создать базу знаний (БЗ)
прикладной ЭС и запустить режим консультации [8].
Имеется два способа формирования БЗ:
основанный на примерах – задаются примеры, которые показывают,
как эксперт принимает решение, затем система автоматически превращает эти
примеры в сжатое правило (в виде дерева решений), формирующее базис для БЗ;
основанный на правилах – строится графическая диаграмма дерева
решений путем выбора факторов, значений и результатов (рекомендаций) из
заранее составленного меню.
Используя серию меняющихся экранов, пользователь может быстро
определять элементы БЗ, вводить примеры, строить правила и проверять
полученные БЗ. Затем можно из нескольких (до 1000) модульных БЗ построить
одну комплексную БЗ.
Сформировав и отладив БЗ (т.е. проверив ее на полноту и выбрав
подходящий метод обработки фактора неопределенности в виде коэффициентов
правдоподобия), получаем прикладную консультирующую ЭС, которая
рекомендует, как действовать в той или иной ситуации или решать некоторую
проблему и
способна
заменить
человека-эксперта
в
соответствующей
проблемной области [16].
1stCLASS имеет также ряд других возможностей, которые позволяют
решать достаточно эффективно более сложные задачи. В частности, система
позволяет:
взаимодействовать с электронными таблицами LOTUS 1-2-3 для
обмена числовыми и логическими данными;
посылать БЗ через средства телекоммуникации;
автоматически генерировать журналы сеансов пользователя и
структурированные доклады для дальнейшей обработки в файлах текстовых
процессоров и баз данных;
12
вызывать 1stCLASS из других программ и запускать внешние
программы из 1stCLASS для ответов на вопросы ЭС и выполнения необходимых
действий;
взаимодействовать с аппаратурой, в том числе: считывать показания
приборов, организовывать систему «автоматического библиотекаря» для
подключения видеодисков и систем компакт-дисков, связываться с отдаленными
БД для получения информации, организовывать интерфейс со статическими
программами;
выполнять анализ «что если», используя различные методы
генерации правил, различные наборы экспертных данных и различные ответы
пользователя. Для каждого выданного системой совета можно графически
проследить логику поиска решения и обеспечить детальное объяснение для
пользователя.
Система 1stCLASS получила широкое распространение в реализации
прикладных ЭС - консультантов для ряда проблемных областей, например:
медицинская диагностика;
техническая диагностика;
автоматические библиотеки;
интерактивная подготовка и обучение;
автоматизация программирования;
разработка систем и др.
1.1.3 Язык искусственного интеллекта CLIPS
Название языка CLIPS – аббревиатура от C Language Integrated System.
Язык был разработан в Центре космических исследований NASA (NASA's
Johnson Space Center) в середине 1980-х годов и во многом сходен с языками,
созданными на базе LISP и OPS5 [4,7]. Использование С в качестве языка
13
реализации объясняется тем, что компилятор LISP не поддерживается частью
распространенных платформ, а также сложностью интеграции LISP-кода в
приложения, которые используют отличный от LISP язык программирования.
Хотя в то время на рынке уже появились программные средства для задач
искусственного интеллекта, разработанные на языке С, специалисты из NASA
решили создать такой продукт самостоятельно. Разработанная ими система в
настоящее время находится в открытом доступе (ее можно «скачать» по сети
INTERNET), и отметим, что по своим возможностям она не уступает многим
гораздо более дорогим коммерческим продуктам.
Первая версия представляла собой, по сути, интерпретатор порождающих
правил. Процедурный язык и объектно-ориентированное расширение CLIPS –
Object-Oriented Language (COOL) были включены в этот программный продукт
только в 1990-х годах. Существующая в настоящее время версия может
эксплуатироваться на платформах UNIX, DOS, Windows и Macintosh.
CLIPS включает в себя язык представления порождающих правил и язык
описания процедур.
Основными компонентами языка описания правил являются база фактов
(fact base) и база правил (rule base). База фактов представляет исходное описание
задачи. База правил содержит операторы, которые преобразуют состояния
проблемы, приводя его к решению – целевому состоянию.
Машина логического вывода CLIPS сопоставляет факты из базы фактов и
правила из базы правил и выясняет, какие из правил можно активизировать. Это
выполняется циклически, причем каждый цикл (так называемый продукционный
цикл или цикл распознавания действия) состоит из трех основных фаз:
сопоставление фактов и правил;
выбор правила, подлежащего активизации;
выполнение действий, предписанных активным («зажженным»)
правилом [6].
14
1.2. Характеристики гибридных экспертных систем, основанных на
продукционно-фреймовой модели представления знаний
Представление знаний – вопрос, возникающий в когнитологии (науке о
мышлении), в информатике и в искусственном интеллекте. В когнитологии он
связан с тем, как люди хранят и обрабатывают информацию. В информатике –
основная цель – подбор представления конкретных и обобщенных знаний,
сведений и фактов для накопления и осмысленной обработки информации в
ЭВМ [10].
Существует несколько моделей представления знаний.
Продукционная модель, или модель, основанная на правилах, позволяет
представить знания в виде предложений типа: Если (условие), то (действие).
Под, условием понимается некоторое предложение-образец, по которому
осуществляется поиск в базе знаний, а под действием - действия, выполняемые
при успешном исходе поиска (они могут быть промежуточными, выступающими
далее как условия, и терминальными или целевыми, завершающими работу
системы) [2].
При использовании продукционной модели база знаний состоит из
набора правил, Программа, управляющая перебором правил, называется
машиной вывода. Чаще всего вывод бывает прямой (от данных к поиску цели)
или обратный (от цели для ее подтверждения - к данным). Данные - это исходные
факты, на основании которых запускается машина вывода - программа,
перебирающая правила из базы.
Семантические сети
Термин семантическая означает смысловая, а сама семантика - это наука,
устанавливающая отношения между символами и объектами, которые они
обозначают, т.е. наука, определяющая смысл знаков.
15
Семантическая сеть- это ориентированный граф, вершины которого понятия, а дуги - отношения между ними.
Фрейм (англ. frame - каркас или рамка) предложен М.Минским в 70-е гг.
Как структура знаний для восприятия пространственных сцен. Эта модель, как и
семантическая сеть, имеет глубокое психологическое обоснование [18].
Под фреймом понимается абстрактный образ или ситуация. В психологии
и философии известно понятие абстрактного образа. Например, слово «комната»
вызывает у слушающих образ комнаты: «жилое помещение с четырьмя стенами,
полом, потолком, окнами и дверью, площадью 6-20 м2». Из этого описания
ничего нельзя убрать (например, убрав окна, получим уже чулан, а не комнату),
но в нем есть «дырки», или «слоты», - это незаполненные значения некоторых
атрибутов - количество окон, цвет стен, высота потолка, покрытие пола и т.д. [5].
В теории фреймов такой образ называется фреймом. Фреймом называется
также и формализованная модель для отображения образа.
1.3. Анализ ESWin как типичного представителя продукционнофреймового класса ЭС
ESWin v.1.0 - программная оболочка для работы с продукционнофреймовыми
экспертными
лингвистических
системами
переменных.
с
возможностью
Описываемая
использования
программная
оболочка
предназначена для решения задач методом обратного логического вывода на
основе интерпретации правил-продукций с использованием фреймов как
структур данных, включающих в себя в частности лингвистические переменные.
БАЗА ЗНАНИЙ
База знаний состоит из набора фреймов и правил-продукций. Формат
внешнего представления базы знаний (в текстовом файле) выглядит следующим
16
образом:
TITLE = <название экспертной системы>
COMPANY = <название предприятия>
FRAME
// фрейм
<описание фрейма>
ENDF
.
.
FRAME
// фрейм
<описание фрейма>
ENDF
RULE
// правило-продукция
<описание условий правила>
DO
<описание заключений правила>
ENDR
.
.
RULE
// правило-продукция
<описание условий правила>
DO
<описание заключений правила>
ENDR
База знаний состоит из двух частей: постоянной и переменной.
Переменная часть базы знаний называется базой данных и состоит из фактов,
полученных в результате логического вывода. Факты в базе данных не являются
постоянными. Их количество и значение зависит от процесса и результатов
логического вывода.
До начала работы с экспертной оболочкой база знаний находится в
17
текстовом файле. В файле с расширением *.klb (KnowLedge Base) хранятся
фреймы и правила-продукции (база знаний). При начале работы с программной
оболочкой наличие данного файла обязательно. Этот файл создается
пользователем с помощью специального редактора или вручную. В файле с
расширением *.dtb (DaTa Base) хранятся факты, полученные в процессе
логического вывода (база данных). При начале работы с программной оболочкой
наличие данного файла необязательно. Файл с базой данных создается
программной оболочкой в процессе логического вывода. Первые части имен
этих двух файлов совпадают.
При работе с программной оболочкой (после загрузки в оперативную
память баз) фреймы и правила-продукции, находившиеся в файле с расширением
*.klb, остаются неизменными. Факты, находившиеся в файле с расширением
*.dtb, могут изменяться в процессе логического вывода (появляться, удаляться
или менять свое значение в результате срабатывания правил-продукций или
диалога с пользователем).
Фреймы используются в базе знаний для описания объектов, событий,
ситуаций, прочих понятий и взаимосвязей между ними. Фрейм - это структура
данных, состоящая из слотов (полей).
Фрейм может принадлежать к одному из трех типов фреймов: фреймкласс (тип описывается зарезервированным словом «класс»), фрейм-шаблон (тип
описывается зарезервированным словом «шаблон»), фрейм-экземпляр (тип
описывается
зарезервированным
словом
«экземпляр»).
В
базе
знаний
содержатся фреймы-классы и фреймы-шаблоны. При создании базы знаний тип
фрейма-класса можно не описывать, этот тип фрейма понимается по умолчанию.
Явно следует описывать только тип фрейма-шаблона.
В базе данных хранятся только фреймы-экземпляры. Так как для
хранения фреймов-экземпляров используется специальный файл с расширением
*.dtb, явно их тип в этом файле также можно не описывать. (Описание типов
фреймов-классов и фреймов-экземпляров используется по преимуществу во
внутреннем представлении базы знаний и базы данных).
18
ИМЯ
ФРЕЙМА,
ФРЕЙМА-РОДИТЕЛЯ,
ФРЕЙМА-ВЛАДЕЛЬЦА,
СЛОТА
Имена фрейма, фрейма-родителя, фрейма-владельца, слота - это
последовательность символов (русские и/или латинские буквы, цифры, пробелы,
знаки подчеркивания).
Тип слота может принадлежать к одному из трех типов: символьный,
численный, лингвистический. Описание типа слота определяет тип возможных
значений слота. Обязательным является описание типов слотов численного
(описывается зарезервированным словом «численный») и лингвистического.
Слот без описания типа понимается как символьный по умолчанию.
Вопрос слота - любая последовательность символов. Вопрос слота не
является обязательным. В таком случае, в процессе логического вывода, при
возникновении необходимости задать вопрос пользователю, касающийся
определения значения данного слота, пользователю будет предложена
формулировка: «Выберите значение» или «Введите значение».
Значение слота - любая последовательность символов. Значения слота
разделяются точками с запятыми. Список значений слота не обязателен, он
может отсутствовать, в таком случае пустые круглые скобки необязательны. Во
фрейме-экземпляре у каждого слота может быть только единственное значение,
во фреймах-классах и фреймах-шаблонах число значений слотов не ограничено.
С помощью специальных слотов parent и owner фреймы могут
объединяться в деревья. Кроме того, между фреймами могут существовать и
произвольные связи через обычные слоты (значением слота в этом случае
является имя другого фрейма).
Одним из преимуществ оболочки экспертной системы является то, что
практически
все
действия
можно
сопровождать
комментариями
или
сообщениями, при этом комментарии могут быть в виде текста, графического
рисунка, в том числе и динамического, веб-страницы и др.
19
2 Разработка экспертной системы Clothes Advisor
2.1 Составление концептуальной модели предметной области
Для каждого человека правильно подобранная одежда имеет очень
большое значение. Она должна скрывать все недостатки и подчеркивать
достоинства. Полным людям рекомендуется носить более свободную одежду,
стройным – наоборот, подчеркивающую фигуру. Блондинкам подходит
практически любая цветовая гамма, а брюнеткам желательно подбирать что-то
более светлое.
Следует отметить, что для очень объёмных людей спектр подходящей
одежды вообще очень мал, а стройным подходит практически всё что угодно.
Первоначально рассматривалось большое количество признаков одежды,
оказывающих влияние на ее выбор. Однако, полученная модель является
достаточно большой как в структурном, так и понятийном плане. Фрагмент
полученной концептуальной модели приведен на рисунке 2.1.
Рисунок 2.1 – Фрагмент разработанной концептуальной модели
20
Объектами исследования являются человек с его набором качеств,
характеристик, вкусов и предпочтений, образа жизни, а также подходящая ему
одежда.
Главными исследуемыми характеристиками человека стали:
а) возраст,
б) темперамент,
в) пол,
г) образ жизни,
д) характер (черты личности).
Человек обладает определенным типом темперамента или двумя из них
(холерик, меланхолик, сангвиник, флегматик), полом (мужской, женский) и
чертами личности (характером), которые зависят от образа жизни, например,
активный, энергичный, самокритичный, романтичный и так далее.
В зависимости от того, сколько полных лет человеку, он относится к
одной из четырех возрастных групп: подросток (до 17 лет), молодой (18-25),
взрослый(26-35), зрелый (от 36), пенсионный (от 55).
Человек с определенным набором свойств имеет цель подобрать для
некоторого сезона года (зима, весна, лето, осень) одежду, которая в свою очередь
будет использоваться в разное время суток (в зависимости от стойкости аромата,
значимости и длительности события).
В ходе реализации экспертной системы столкнулись с трудностями,
связанными с тем, что, во-первых, количество правил для экспертной системы
превысит 150 тысяч, а, во-вторых, необходимы дополнительные исследования, в
том числе и психологические.
Поэтому было принято решение ограничить предметную область
решаемой задачи выбором стиля одежды с представлением образцов каждого
стиля.
21
2.2 Корректировка концептуальной модели предметной области
Подбор стиля одежды будет проводиться по двум основным критериям –
это образ жизни и внешность. Каждая из этих частей будет в свою очередь
состоять из двух подчастей. Получившаяся концептуальная схема представлена
на рисунке 2.2.
Результат
Образ жизни
Внешность
Активность
Окружение
Формальное
Работа
Фигура
Неформальное
Отдых
Лицо
Глаза
Полнота
Волосы
Рост
Рисунок 2.1 – Концептуальная схема
Как видно из концептуальной схемы, каждая задача состоит из двух
подзадач, например, «внешность» состоит из «лицо» и «фигура», то есть на
внешность женщины оказывают решающее влияние именно лицо и фигура.
Концептуальная схема дает представление не только о структуре базы
знаний, но и о подходе к решению задач ЭС. Однако на концептуальной схеме
указываются только имена объектов и не указываются их значения, поэтому для
более полного представления процесса решения задач необходимо использовать
граф И/ИЛИ.
22
2.3 Объекты и правила
В ЭС факты часто представляются четверкой “объект - атрибут - значение
- коэффициент доверия”. В оболочке ESWin имя объекта объединяется с
именем атрибута понятием “объект”, и факт представляется в виде
<объект>=<значение> КД=<коэффициент доверия>.
Для составления схемы правил необходимо определить все разрешенные
значения для данного объекта. Разрешенные значения объектов представлены в
таблице 2.1.
Таблица 2.1 - Разрешенные значения объектов
Объект
1
Неформа
льное
Формаль
ное
Работа
Отдых
Полнота
Рост
Глаза
Волосы
Фигура
Вопрос
Разрешенные значения
2
3
Какую
преимущественно
одежду свободную
предпочитают Ваши друзья?
деловую
Требуют ли от Вас на работе (учебе) да
специальную форму одежды?
нет
Какого рода работу Вам чаще всего подвижную
приходится выполнять?
неподвижную
Какой отдых Вы предпочитаете?
активный
пассивный
Какое у Вас телосложение?
полная
средняя
худая
Какой у Вас рост?
высокая
средняя
низкая
Какие у Вас глаза
светлые
темные
Какого цвета Ваши волосы?
светлые
темные
Какая у Вас фигура?
очень крупная
крупная
колобок
стройная
обычная
маленькая
струна
тощая
тощая-маленькая
23
Продолжение таблицы 2.1.
1
2
Лицо
Какое у Вас лицо?
3
лучезарная блондинка
лучезарная брюнетка
задумчивая блондинка
задумчивая брюнетка
Активнос Какую активность Вы планируете высокая
ть
проявлять на событии?
средняя
низкая
Окружен В каком окружении Вы будете разнородное
ие
находиться?
свободное
деловое
Образ
Какой образ жизни Вы ведете?
активный
жизни
обычный
свободный
пассивный
неподвижный
Внешнос Опишите Вашу внешность.
XL
ть
крупная блондинка
крупная брюнетка
колобок-блондинка
колобок-брюнетка
привлекательная
блондинка
привлекательная
брюнетка
умная блондинка
умная брюнетка
светлая блондинка
светлая брюнетка
темная блондинка
темная брюнетка
маленькая блондинка
маленькая брюнетка
длинная блондинка
длинная брюнетка
тонк.светл.блондинка
тонк.светл.брюнетка
тонк.темн.блондинка
тонк.темн.брюнетка
XS
Исходя из разрешенных значений объектов, можно составить схему
24
правил. Все схемы правил получившейся БЗ представлены ниже в таблицах.
Таблица 2. 2 - Схема правил 1-9 для объекта «фигура»
рост
высокая
средняя
низкая
полнота
полная
очень крупная
крупная
колобок
средняя
стройная
обычная
маленькая
худая
струна
тощая
очень
маленькая
Таблица 2.3 - Схема правил 10-14 для объекта «лицо»
волосы
светлые
темные
глаза
светлые
лучезарн.блондинка
лучезарн.брюнетка
темные
задумч.блондинка
задумч.брюнетка
Таблица 2.4 - Схема правил 14-18 для объекта активность
отдых
активный
пассивный
работа
подвижная
высокая
средняя
неподвижная
средняя
низкая
Таблица 2.5 - Схема правил 18-22 для объекта окружение
неформальное
да
нет
формальное
да
разнородное
формальное
нет
свободное
разнородное
Таблица 2.6 - Схема правил 22-31 для объекта образ жизни
активность
высокая
средняя
низкая
окружение
разнородное
активный
обычный
пассивный
свободное
активный
свободный
неподвижный
формальное
активный
обычный
неподвижный
Таблица 2.7 - Схема правил 31-67 для объекта внешность
25
фигура
очень крупная
крупная
колобок
стройная
обычная
маленькая
струна
тощая
очень
маленькая
лицо
луч.блонд.
XL
крупн.блонд.
колоб.блонд.
привлек.бло
нд.
светл.болнд.
мал.блонд.
тон.св.блонд
.
длин.блонд.
XS
луч.брюн.
XL
крупн.брюн.
колоб.-брюн.
зад.блонд.
XL
крупн.блонд.
колоб.блонд.
привлек.брю умн.блонд.
н.
светл.брюн. темн.блонд.
мал.брюн.
мал.блонд.
тон.св.брюн. тон.тем.блон
д.
длин.брюн
длин.блонд.
XS
XS
зад.брюн.
XL
крупн.брюн.
колоб.-брюн.
умн.брюн.
темн.брюн.
мал.брюн.
тон.тем.брю
н.
длин.брюн
XS
Таблица схем правил 67-177 для объекта результат представлена в
Приложении Б.
26
3 Программная реализация экспертной системы Clothes Advisor
3.1 Структура экспертной системы
Экспертная система состоит из следующих компонент (рисунок 3.1):
а) база знаний, которая включает в себя теоретический блок и блок
данных;
б) система логического анализа;
в) пользовательский интерфейс.
Рисунок 3.1 – Компоненты экспертной системы
Так как при разработке экспертной системы Clothes Advisor в качестве
инструментального
средства
была
использована
экспертная
оболочка
продукционно-фреймового типа ESWin, то следует отметить, что из трех
вышеуказанных компонентов системы логический анализатор не подвергался
изменениям, была улучшена дружественность интерфейса системы (добавили
комментарии, картинки, Web-страницы, сообщения), а база знаний создавалась
с «нуля».
27
Алгоритм работы экспертной системы (упрощенный) приведен на
рисунке 3.2. В алгоритме отражена такая особенность работы экспертной
оболочки ESWin, как возможность нахождения нескольких вариантов решений
задачи.
28
Рисунок 3.2 – Алгоритм поиска всех возможных решений при заданных
параметрах
3.2 Описание программной оболочки ESWin
Общий вид основного окна программной оболочки ESWin представлен
на рисунке 3.3.
Рисунок 3.3 - Основное окно
Заголовок окна содержит название загруженной для интерпретации базы
знаний (определяется строкой TITLE базы знаний).
Меню содержит пункты: «Файл», «Решение» и «?».
Пункт меню «Файл» содержит пункты:
«Открыть базу знаний…» – загрузка базы знаний (из *.klb файла).
Загрузка описания лингвистических переменных выполняется автоматически (из
*.lvd файла). Общий вид основного окна после загрузки базы знаний представлен
на рисунке 3.4;
«Открыть базу данных…» – загрузка базы данных (из *.dtb файла);
«Выход» – завершение работы программной оболочки.
29
Рисунок 3.4 Основное окно после загрузки базы знаний
Пункт меню «Решение» содержит пункты: «Выбор цели» – задание цели
логического вывода. Общий вид дополнительного окна выбора цели представлен
на рисунке 3.5;
«Поиск решения» – поиск первого подходящего решения для заданной
цели логического вывода. Вид дополнительных окон, отображающихся в
процессе поиска решения, представлен на рисунке 3.6. Общий вид основного
окна после нахождения решения заданной цели представлен на рисунке 3.7;
Рисунок 3.5 - Окно «Выбор задачи»
30
Рисунок 3.6 - Окна «Выбор значения» и «Ввод значения».
Рисунок 3.7 - Основное окно с результатами логического вывода
«Поиск следующего решения» – последовательный поиск следующих
подходящих решений для заданной цели логического вывода;
«Трассировка решения» – просмотр последовательности действий,
выполненных программной оболочкой в процессе поиска решения. Общий вид
дополнительного окна с результатами трассировки представлен на рисунок 3.8;
31
Рисунок 3.8 - Окно с результатами трассировки
«Просмотр базы данных» – просмотр фреймов-экземпляров, полученных
в результате логического вывода (интерпретации базы знаний), с возможностью
удаления отдельного слота фрейма-экземпляра, отдельного фрейма-экземпляра
и всех фреймов-экземпляров базы данных. Общий вид дополнительного окна
просмотра базы данных представлен на рисунок 3.9;
Рисунок 3.9 - Окно с фреймами-экземплярами базы данных
«Очистка базы данных» – удаление всех фреймов-экземпляров,
полученных в результате логического вывода (интерпретации базы знаний).
32
Пункт меню «?» содержит пункты:
«Вызов справки» – получение справочной информации;
«О программе» – информация о программе.
3.3 Формирование тестового примера
Разработка БЗ прототипа включает в себя ввод всех необходимых правил
согласно структурной схеме БЗ. Все правила перечислены в таблицах во втором
разделе, их общее число составляет 177 штук. Структурная схема такой БЗ
представлена на рисунке 3.10.
Правила 67-177
Правила 22-31
Правила
14-18
Правила 31-67
Правила
18-22
Формальное
Работа
Правила 1-9
Неформальное
Отдых
Глаза
Полнота
Рисунок 3.10 - Структурная схема БЗ
33
Правила 10-14
Рост
Волосы
3.3.1 Протокол диалога с ЭС для тестового примера
Протокол диалога с ЭС:
Какую преимущественно одежду предпочитают Ваши друзья! свободную
Требуют ли от Вас на работе (учебе) специальную форму одежды? да
Какого
рода
работу
Вам
чаще
всего
приходится
выполнять?
неподвижную
Какой отдых Вы предпочитаете? пассивный
Какое у Вас телосложение средняя
Какой у Вас рост? средняя
Какие у Вас глаза? светлые
Какого цвета Ваши волосы? светлые
Результат тестирования: программа работает отлично.
Полученный
результат
тестирования
соответствует
графу
выполнения тестового примера приведенному на рисунке 3.11.
Рисунок 3.11 - Граф и/или для тестового примера
34
и/или
3.3.2 Проверка работоспособности системы
Согласно протоколу диалога было выполнено тестирование экспертной
системы Clothes Advisor.
При запуске экспертной системы была выбрана цель – подбор стиля
одежды в зависимости от значимых параметров. После выбора цели появилось
первое диалоговое окно (рисунок 3.12), которое сопровождалось комментарием
к вопросу (рисунок 3.13).
Рисунок 3.12 – Диалоговое окно, соответствующее определению
формального типа
Рисунок 3.13 – Комментарий к первому вопросу
35
Комментарии необходимы для помощи пользователю при выборе ответа
на заданный вопрос.
Так как предыдущий вопрос тесно связан с вопросом об определении
неформального типа, то наиболее вероятным было появление диалогового окна
с вопросом о специальной форме одежды (рисунок 3.14), который также
сопровождался комментарием для помощи при выборе ответа на вопрос (рис.
3.15).
Рисунок 3.14 – Диалоговое окно, соответствующее определению
неформального типа
Рисунок 3.15 – Комментарий ко второму вопросу
36
Далее поступил вопрос о типе работы, которую планирует выполнять
клиент в подобранной одежде (рисунок 3.16) с комментарием (рисунок 3.17).
Рисунок 3.16 – Диалоговое окно, соответствующее определению
выполняемой работы
Рисунок 3.17 – Комментарий к вопросу характере работы
На следующих рисунках (рисунки 3.18 – 3.23) представлены экранные
копии диалоговых окон, позволяющих определить, как пользователь экспертной
системы относится к отдыху (для какого случая подбирается одежда), какое у
него телосложение и рост. Порядок появления вопросов соответствовал ранее
рассмотренному графу.
37
Рисунок 3.18 – Диалоговое окно, соответствующее определению вида
предпочитаемого отдыха
Рисунок 3.19 – Комментарий к вопросу о виде отдыха
Рисунок 3.20 – Диалоговое окно, соответствующее определению
телосложения
38
Рисунок 3.21 – Подсказка для определения типа телосложения
Рисунок 3.22 – Диалоговое окно, соответствующее определению роста
пользователя
Рисунок 3.23 – Комментарий к вопросу о росте
39
В результате цель поиска была достигнута и в сообщении выведена
полученная рекомендация – Вам подойдут джинсы любых моделей, верх должен
быть по фигуре, и подберите женственные туфли. Также рекомендация
сопровождалась комментарием (рисунок 3.24), в котором был представлен один
из вариантов рекомендуемого стиля.
Рисунок 3.24 – Комментарий к полученной рекомендации
3.3.3 Проверка дополнительных возможностей системы
Экспертная система позволяет выбирать в качестве цели не только
рекомендацию по подбору стиля одежды, исходя из требований пользователя, но
и запросить справочную информацию.
В качестве примера в систему в виде цели добавлен вопрос о типах
фигуры. При указании в ответе, что пользователя интересует информация о
наиболее подходящей одежде к типу женской фигуры «перевернутый
треугольник», был получен ответ в виде веб-страницы (рисунок 3.25, а), при
продолжении
поиска
была
найдена
интересующему вопросу (рисунок 3.25, б).
40
дополнительная
информация
по
а
б
Рисунок 3.25 – Ответ на запрос пользователя по типу женской фигуры
41
ЗАКЛЮЧЕНИЕ
В результате проделанной работы цель исследования была достигнута:
был создан программный продукт - экспертная система Clothes Advisor на базе
оболочки экспертной системы ESWin.
Для достижения цели были решены следующие задачи:
Изучены теоретические сведения об экспертных системах и
оболочках экспертных систем
Рассмотрены возможности оболочки экспертной системы ESWin для
решаемой задачи и ее характеристики
Осуществлена разработка концептуальной модели предметной
области, проведено ограничение предметной области и скорректирована
концептуальная модель
Спроектированы объекты и правила для экспертной системы Clothes
Advisor
Проведена практическая реализация Clothes Advisor
Протестирована разработанная система на двух характерных
примерах.
Экспертная система Clothes Advisor доказала жизнеспособность, однако
в
пояснительной
записке
приведено
описание
демо-версии
системы.
Необходимо продолжить работу над экспертной системой, как в плане
увеличения характерных (важных для пользователя) параметров, так и в
расширении базы знаний системы.
42
СПИСОК ЛИТЕРАТУРЫ
1.
Белорусов Н. И. и др. Электрические провода, кабели и шнуры:
Справочник. М.: Энергоатомиздат, 1988.
2.
Гаврилова Т. А., Хорошевский В. Ф. Базы знаний интеллектуальных
систем. Учебник. - СПб.: Питер, 2013.
3.
Джаррод Холингворт, Боб Сворт, Марк Кэшмэн, Поль Густавсон
Borland C++ Builder 6. Руководство разработчика = Borland C++ Builder 6
Developer’s Guide. - М.: «Вильямс», 2012. - С. 976.
4.
Джексон П. Введение в экспертные системы: Учебное пособие. Пер.
с англ. – М.: «Вильямс», 2012. – 624 с.
5.
Джозеф Джарратано, Гари Райли «Экспертные системы: принципы
разработки и программирование» : Пер. с англ. - М. : Издательский дом
«Вильямс», 2006. - 1152 с.
6.
Еремеев
А.П.
Инструментальные
средства
конструирования
экспертных систем: Метод. пособие / Под ред. В.Н. Вагина. – М.: Издательство
МЭИ, 2012. – 100 с.
7.
Еремеев А.П. Проектирование экспертных систем средствами
инструментальной системы GURU. – М.: Издательство МЭИ, 1996. – 52 с.
8.
Еремеев А.П. Разработка экспертных систем на персональных ЭВМ
на базе оболочек М.1 и 1stCLASS. – М.:Издательство МЭИ, 1993. – 39с.
9.
Нильсон Н. Д. Искусственный интеллект. Методы поиска решений.-
М.: Мир, 1973.
10. Тельнов Ю.Ф. Интеллектуальные информационные системы. /
Московский международный институт эконометрики, информатики, финансов и
права. - М.,2014. - 82 с.
11. Тирановский Г. Г. Монтаж автоматического пожаротушения в
кабельных сооружениях энергетических объектов. - М.: Энергоиздат, 1982.
43
12. Уотермен Д. «Руководство по экспертным системам: Пер. с англ. под
ред. В. Л. Стефанюка. - М.: «Мир», 1989: - 388 с.
13. Устав предприятия ООО «РЖД».
14. Астроком,
автоматизированные
системы
управления:
http://www.astrocom.ru/
15. Искусственный интеллект: http://ai.obrazec.ru/
16. Портал искусственного интеллекта: http://www.aiportal.ru/
17. Рускабель: http://www.ruscable.ru.
18. Учебные пособия для студентов университетов и абитуриентов:
http://256bit.ru/
19. Фирма ЭлектроМонтажАвтоматик: http://emaspb.ru.
20. Экспертные системы: http://expsys.narod.ru/glava.htm
44
ПРИЛОЖЕНИЕ
Схема правил 67-177 для объекта результат
Внешно
сть
XL
крупн.
блонд.
крупн.
брюн.
колоб.
блонд.
колоб.
брюн.
привл.
блонд.
Образ жизни
активный
просторная
спортивная
одежда
только из
натуральн
ых тканей
спортивная
одежда, не
очень
светлые
тона
спортивная
одежда, не
очень
светлые
тона, но и
не черные
обычный
просторная
одежда только
из
натуральных
тканей
свободный
просторная
спортивная
одежда только
из натуральных
тканей
пассивный
длинные
юбки, низкий
каблук,
свободная
обувь
неподвижный
длинные юбки,
низкий каблук,
свободная
обувь
юбки не выше тёмные
колен, низкий свободные
каблук
джинсы,
футболки,
макассины
юбки не выше тёмные
колен, низкий свободные
каблук
джинсы,
не
очень тёмные
футболки,
макассины
только
натуральные
ткани,
просторная
одежда
только
натуральные
ткани,
просторная
одежда,
не
очень тёмные
тона
свободные
блузки, юбки
по
колено,
высокий
каблук
или
танкетка
свободные
светлые
блузки, юбки
по
колено,
высокий
каблук
или
танкетка
только
натуральные
ткани,
просторная
одежда
только
натуральные
ткани,
просторная
одежда,
не
очень тёмные
тона
свободные
блузки, юбки
по
колено,
высокий каблук
или танкетка
спортивная
одежда,
желательно
с тёмным
низом
свободные
блузки, юбки
по
колено,
высокий
каблук
или
танкетка
спортивная свободные
одежда,
светлые
желательно блузки, юбки
с тёмным по
колено,
низом
и высокий
светлым
каблук
или
верхом
танкетка
тёмные
джинсы, чуть
клешеные от
колена, обувь
на каблуках
любая
модная
спортивная
одежда
тёмные
джинсы, чуть
клешеные от
колена,
светлые
футболки
обувь
на
каблуках
любая одежда, любая одежда, любая
любые тона и любые тона и одежда,
стили
стили
любые тона и
стили
45
свободные
светлые блузки,
юбки
по
колено,
высокий каблук
или танкетка
любая одежда,
любые тона и
стили
привл.
брюн.
умн.
блонд.
умн.
брюн.
светл.
блонд.
светл.
брюн.
темн.
блонд.
темн.
брюн.
любая
модная
спортивная
одежда, но,
желательно
,
верх
подобрать
под
цвет
глаз
любая
модная
спортивная
одежда
любая
модная
спортивная
одежда, но,
желательно
,
со
светлым
верхом
кроссовки,
спортивны
е брюки и
маечки в
обтяжку
кроссовки,
спортивны
е брюки и
маечки в
обтяжку
ярких
цветов
маечки,
спортивны
е
брюки
ярких
тонов,
спортивная
обувь
маечки,
спортивны
е
брюки
ярких
тонов,
спортивная
обувь, не
носить
черного
любая одежда,
и стили, очень
эффектны
тона под цвет
глаз
любая одежда,
и стили, очень
эффектны тона
под цвет глаз
любая
одежда,
и
стили, очень
эффектны
тона под цвет
глаз
любая одежда,
и стили, очень
эффектны тона
под цвет глаз
любая одежда, любая одежда, любая
любые тона и любые тона и одежда,
стили
стили
любые тона и
стили
любая одежда, любая одежда, любая
любые
любые светлые одежда,
светлые тона и тона и стили
любые
стили
светлые тона
и стили
любая одежда,
любые тона и
стили
джинсовые
короткие
юбки любых
фасонов,
женственная
обувь
джинсовые
короткие
юбки любых
фасонов,
женственная
обувь, яркие
тона
джинсы
по
фигуре,
короткие
юбки,
женственная
обувь, яркие
тона
джинсы
по
фигуре,
короткие
юбки,
женственная
обувь, яркие
тона,
не
носить
черного
джинсы
любых
моделей, верх
по
фигуре,
женственная
обувь
джинсы
любых
моделей, верх
по
фигуре,
женственная
обувь, яркие
тона
юбки любой
длины,
светлые
блузки,
женственная
обувь
короткие юбки
и
джинсы,
обувь
на
каблуке
юбки любой
длины,
светлые
блузки,
женственная
обувь,
не
носить
черного
юбки
любой
длины, светлые
блузки,
женственная
обувь,
не
носить черного
джинсы любых
моделей, верх
по
фигуре,
женственная
обувь
джинсы любых
моделей, верх
по
фигуре,
женственная
обувь,
яркие
тона
джинсы
по
фигуре,
удобная обувь,
яркие тона
джинсы
по
фигуре,
удобная обувь,
яркие тона, не
носить черного
46
любая одежда,
любые светлые
тона и стили
короткие юбки
и
джинсы,
обувь
на
каблуке, яркие
тона
юбки
любой
длины, светлые
блузки,
женственная
обувь
мал.
блонд.
модная
спортивная
одежда
мал.
брюн.
модная
спортивная
одежда
светлых
тонов
не сильно
обтягиваю
щая
спортивная
одежда
длин.
блонд.
длин.
брюн.
не сильно
обтягиваю
щая
спортивная
одежда
светлых
тонов
тонк. св. свободная
блонд.
спортивная
одежда
тонк. св. свободная
брюн.
спортивная
одежда,
рекомендуе
м
подбирать
под
цвет
глаз
тонк.
темн.
блонд.
свободная
спортивная
одежда
тонк.
темн.
брюн.
свободная
спортивная
одежда,
светлые
тона
короткие
юбки,
высокий
каблук, любые
тона
короткие
юбки,
высокий
каблук,
светлые тона
юбки
по
колено,
вязаные
джемпера
обувь
без
каблука
юбки
по
колено,
вязаные
джемпера
светлых тонов
обувь
без
каблука
юбки не ниже
колена,
свободные
джинсы,
средний
каблук
юбки не ниже
колена,
свободные
джинсы,
средний
каблук, верх
рекомендуем
подбирать под
цвет глаз
юбки не ниже
колена,
свободные
джинсы,
средний
каблук
юбки не ниже
колена,
свободные
джинсы,
средний
каблук,
светлые тона
прямые
джинсы,
высокий
каблук, любые
тона
прямые
джинсы,
высокий
каблук,
светлые тона
джинсы
по
фигуре, но не в
обтяжку,
плоская обувь
джинсы
по
фигуре
светлых тонов,
но
не
в
обтяжку,
плоская обувь
прямые
или
зауженные
джинсы,
не
слишком
обтягивающие
футболки
прямые
или
зауженные
джинсы,
не
слишком
обтягивающие
футболки
рекомендуем
подбирать под
цвет глаз
прямые
или
зауженные
джинсы,
не
слишком
обтягивающие
футболки
прямые
или
зауженные
джинсы,
не
слишком
обтягивающие
футболки,
светлые тона
47
короткие
юбки,
высокий
каблук,
любые тона
короткие
юбки,
высокий
каблук,
светлые тона
юбки
по
колено,
вязаные
джемпера
обувь
без
каблука
юбки
по
колено,
вязаные
джемпера
светлых тонов
обувь
без
каблука
прямые узкие
джинсы,
средний
каблук
короткие юбки,
высокий
каблук, любые
тона
прямые узкие
джинсы,
средний
каблук верх
рекомендуем
подбирать под
цвет глаз
юбки
до
колена, блузки,
средний каблук
верх
рекомендуем
подбирать под
цвет глаз
короткие юбки,
высокий
каблук, светлые
тона
юбки
по
колено,
вязаные
джемпера
обувь
без
каблука
юбки
по
колено,
вязаные
джемпера
светлых тонов
обувь
без
каблука
юбки
до
колена, блузки,
средний каблук
прямые узкие юбки
до
джинсы,
колена, блузки,
средний
средний каблук
каблук
прямые узкие
джинсы,
средний
каблук,
светлые тона
юбки
до
колена, блузки,
средний
каблук, светлые
тона
XS
свободная
спортивная
одежда
высокие
каблуки, но не
платформы,
юбки не ниже
колена,
не
слишком
обтягивающи
й верх
только прямые
джинсы,
удобная обувь
на каблуке, не
слишком
обтягивающий
верх
48
высокие
каблуки, юбки
не
ниже
колена,
блузки
высокие
каблуки, юбки
не ниже колена,
блузки
ПРИЛОЖЕНИЕ В
void __fastcall TForm1::Button1Click(TObject *Sender)
{
for (int a=0; a<4; a++)
{
for (int b=0; b<2; b++)
{
for (int c=0; c<2; c++)
{
for (int d=0; d<2; d++)
{
for (int e=0; e<2; e++)
{
for (int f=0; f<2; f++)
{
for (int g=0; g<2; g++)
{
for (int h=0; h<2; h++)
{
fprintf(rules,(Label1->Caption+» «+rule + «\n»).c_str());
Memo1->Lines->Add(Label1->Caption+» «+rule);
fprintf(rules,(Label2->Caption+mass[0][a]+Label9->Caption + «\n»).c_str());
fprintf(rules,(Label3->Caption+mass[1][b]+Label9->Caption + «\n»).c_str());
fprintf(rules,(Label4->Caption+mass[2][c]+Label9->Caption + «\n»).c_str());
fprintf(rules,(Label5->Caption+mass[3][d]+Label9->Caption + «\n»).c_str());
fprintf(rules,(Label6->Caption+mass[4][e]+Label9->Caption + «\n»).c_str());
fprintf(rules,(Label7->Caption+mass[5][f]+Label9->Caption + «\n»).c_str());
fprintf(rules,(Label8->Caption+mass[6][g]+Label9->Caption + «\n»).c_str());
fprintf(rules,(Label14->Caption+mass[7][h]+Label9->Caption + «\n»).c_str());
49
fprintf(rules,(Label11->Caption + «\n»).c_str());
mymodem[0]=mass[0][a];
mymodem[1]=mass[1][b];
mymodem[2]=mass[2][c];
mymodem[3]=mass[3][d];
mymodem[4]=mass[4][e];
mymodem[5]=mass[5][f];
mymodem[6]=mass[6][g];
mymodem[7]=mass[7][h];
for (int j=0;j<kol;j++)
{
for (int i=0;i<8;i++)
{
if (mymodem[i]==modem[j][i+1] & mymodem[0]==modem[j][1])
{ q++; }
if (mymodem[i]==«Нет»)
{ q--; }
}
masssovp[j]=q;
q=0;
}
maxx=masssovp[0];
for (int z=0;z<kol;z++)
{
if (maxx<=masssovp[z])
{maxx=masssovp[z];}
50
}
for (int z=0;z<kol;z++)
{
if (maxx==masssovp[z])
{aa=aa+» «+modem[z][0];}
}
fprintf(rules,(Label12->Caption+aa+Label9->Caption + «\n»).c_str());
aa=««;
fprintf(rules,(Label13->Caption + «\n»).c_str());
fprintf(rules,(Label15->Caption + «\n»).c_str());
ProgressBar1->Position=rule;
rule++;
}}}}}}}}
}
51
Отзывы:
Авторизуйтесь, чтобы оставить отзыв