Автор Тема: Экспертная система на тему проблем с компом  (Прочитано 1337 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн LEO

  • Ветеран
  • *****
  • Сообщений: 4417
  • Карма: 310
  • Пол: Мужской
    • Просмотр профиля
есть задание на лабы по ИИ 
Цитировать
Лабораторная № 1. Разработка прототипа ЭС.

Лабораторная № 2. Разработка базы знаний с правилами вывода.

Лабораторная № 3. Разработка базы знаний с использованием сетевых ЯПЗ.
Надо только выбрать предметную область, с чем я долго мучался, пока меня друг не спросил, почему может наглухо виснуть его новый комп (при этом проблемы с перегревом, озу, видео, бп и ПО мы вроде исключили, оставалась только мать, про харды мы правда не думали)
Экспертная система -  компьютерная программа, способная заменить специалиста-эксперта в разрешении проблемной ситуации. Похожие действия выполняет программа-мастер (wizard). Главное отличие мастеров от ЭС — отсутствие базы знаний; все действия жестко запрограммированы. Это просто набор форм для заполнения пользователем.
(Тоесть мастера в вендовой справке "устранение проблем" (в висте их правда не нашел) - это как раз вопросники, а не ЭС)

в связи с чем:
1. Любые ваши предложения
2. Предложения по наполнению Базы Знаний (FAQ-то есть куча, надо придумать правила для БЗ)
3. Ограничение предметной области (я пока планирую остановиться на вопросе "почему зависает комп", бсоды и ребуты не рассматривать)
Ничего принципиально нового я делать не собираюсь, это лишь лаба) так что слишком серьезно относится не стоит. Для меня-то главное - написать машину вывода, и поэтому готовые движки вроде CLIPS или OpenCyc не катят =)
http://is.gd/fpTeSMПродам книжки про Ajax и ASP.NET, http://is.gd/lDL64HПриглашаю в Dropbox


Оффлайн LEO

  • Ветеран
  • *****
  • Сообщений: 4417
  • Карма: 310
  • Пол: Мужской
    • Просмотр профиля
подробное задание на лабы

к первой лабе в частности:
Цитировать
3.1. Выбрать предметную область и задачу, которая может быть решена с помощью ЭС. Рекомендуется реализовать задачу анализа входных данных и последующего принятия решения по выбору конкретного объекта или рекомендации из заранее определенного множества.

 

3.2. Разбить процесс решения задачи на следующие этапы:
Получение исходных данных (множество P) от пользователя в режиме диалога
Обработка (анализ) полученных данных P для определения атрибутов (множество A) объекта принятия решения O
Принятие решения на основе полученных характеристик A (выбор одного из заранее определенных вариантов решения) и вывод результата пользователю.

Количественные требования к основным показателям:
P >=20 (Количество параметров, извлекаемых от пользователя, должно быть более 19)
A >=10 (Количество атрибутов, которые характеризуют объект выбора или принятия решения O, должно быть более 9)
P > 2*A (количество исходных данных должно быть больше количества необходимых атрибутов для принятия решения больше как минимум в два раза)
Множество A может только частично (не более чем на 30%) входить в множество P.
Количество вопросов должно быть не меньше количества параметров P.
Итоговое принятие решения (выбор) должен производиться на основе хотя бы двух альтернативных вариантов.


3.3. Разработать вопросы к пользователю и граф диалога

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

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

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

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

Все вопросы должны задаваться в распространенной языковой и по возможности вежливой форме. Например, вместо Цвет?, Размер? должны задаваться указания или вопросы: Выберите цвет автомобиля, Какой размер одежды Вы носите?

Замечание 1. Для некоторых задач диалог может быть построен таким образом, что ответ на очередной вопрос сужает область поиска (выбора), а каждому листу дерева вопросов сопоставляется вариант решения. В этом случае в схеме диалога заложен алгоритм принятия решения (выбора). Характерной особенностью таких диалогов является взаимосвязанность всех вопросов. Однако, для случаев, когда существует группы несвязанных и не зависящих друг от друга вопросов (фактически отдельные графы диалога), возникают проблемы:

Например, необходимо определить характеристики покупаемого компьютера. Пусть имеется, по крайней мере, четыре независимых группы вопросов, определяющих требования к системному блоку, монитору, клавиатуре и мыши соответственно. При использовании указанного подхода каждому ответу из множества {Answer1, …, AnswerN}, на котором заканчивается диалог о выборе системного блока, нужно сопоставить переход на первый вопрос Q2 из группы по выбору монитора (клавиатуры, мыши). Если нужно вопрос Q2 заменить на другой (Q3), то придется изменять N соответствующих переходов (ссылок) на него.

Для избежания этого недостатка можно задать порядок (очередность) следования вопросов при отсутствии явных указаний. Если в структуре ответа, хранящегося в БЗ, не будет указаний на следующий вопрос, то программа осуществит поиск первого незаданного вопроса. Обычно первыми в списке идут вопросы, являющиеся вершинами независимых веток графа диалога.

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

Замечание 2. На практике часто встречаются случаи, когда граф (правильней сказать дерево) диалога имеет циклические структуры. Это может привести к тому, что один и тот же вопрос будет задаваться больше одного раза. Например, при выборе монитора в самом общем случае необходимо знать, является ли покупатель слепым. Этот же вопрос важен и при выборе устройств ввода/вывода данных. Конечно, можно вынести все общие вопросы разных веток диалога и задавать их один раз без привязки к конкретному устройству (части компьютера) в начале или конце диалога. Однако, если по статистике эти вопросы нужно задавать в одном из 100 случаев, то это нецелесообразно. Для решения этой задачи можно в БЗ задать правила, которые определяют вопросы, которые не нужно задавать.

в общем, решение принимается на основании Атрибутов, т.е. именно от них напрямую зависит ответ. Но бывает, что юзер сам не может ответить на какой-то вопрос, в этом случае, задаются вопросы, позволающие определить этот Атрибут, и это решили назвать в данном случае Параметрами - т.е. на основании Параметров выбираются Аттрибуты, а уже по Аттрибутам выбирается решение.
Внятный пример привести пока затрудняюсь =)
в общем пока привествтуются ссылки на наиболее полные и грамотный FAQ по теме зависаний и проблем, с ними связанных или ими вызыванными  =)
« Последнее редактирование: 15.03.09, 14:35:19 от LEO »
http://is.gd/fpTeSMПродам книжки про Ajax и ASP.NET, http://is.gd/lDL64HПриглашаю в Dropbox

Оффлайн LEO

  • Ветеран
  • *****
  • Сообщений: 4417
  • Карма: 310
  • Пол: Мужской
    • Просмотр профиля
тему активно открывают, но видимо при виде этой большой цитаты сверху - желание читать резко исчезает)) ну не обязательно ее читать))

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

Конечно, нагуглить этих факов - пара пустяков. сразу даже догадываюсь, что на иксбт, оверклокерс и руборде - их много, они достаточно полные и грамотные, но... Если все же есть люди, уделяющие им больше внимания чем я, или если есть какие-то факи, достойные особого вашего уважение - скажите =)
http://is.gd/fpTeSMПродам книжки про Ajax и ASP.NET, http://is.gd/lDL64HПриглашаю в Dropbox