Диссертация (1149691), страница 26
Текст из файла (страница 26)
В приведенном ниже отрезке кода дан фрагментзнаний с согласованными интервальными оценками вероятностей и характеристический вектор пропозициональной формулы.Листинг 4.18 — Тестирование априорного вывода.static void prioriInference (){IntervalKnowledgePattern intervalKP = newIntervalQuantKnowledgePattern (new double [] { 0 , 0.3 , 0.2 , 0.1} ,5 new double [] { 0.4 , 0.7 , 0.6 , 0.5} ,new string [] { " x1 " , " x2 " }) ;Console . WriteLine ( " Probability of quants \ n " + intervalKP .getProbabilities () . ToMatrixString () ) ;Vector < double > formula = DenseVector . OfArray ( new double[]{1 ,0 ,1 ,0}) ;Console .
WriteLine ( " Formula probability \n " + intervalKP .concluseFormula ( formula ) . ToVectorString () ) ;10}Результатом выполнения данной функции станет следующий вывод:Листинг 4.19 — Результат работы функции prioriInferrence.Probability of quants14900 ,30 ,20 ,150 ,40 ,70 ,60 ,5Formula probability0 ,2 0 ,6Наконец, рассмотрим пропагацию стохастического свидетельства вофрагмент знаний с согласованными интервальными оценками.Листинг 4.20 — Тестирование апостериорного вывода.static void posterioriInference (){IntervalKnowledgePattern intervalKP = newIntervalQuantKnowledgePattern (new double [] { 0 , 0.3 , 0.2 , 0.1 } ,5new double [] { 0.4 , 0.7 , 0.6 , 0.5 } ,new string [] { " x1 " , " x2 " }) ;Console . WriteLine ( " Probability of pattern quant propositions : \n " + intervalKP . getProbabilities () .
ToMatrixString () ) ;ScalarEvidence evidence = new ScalarEvidence ( new double[]{1 ,0.5} , new string []{ " x2 " }) ;Console . WriteLine ( " Evidence conjuncts probabilities : \ n " +evidence . getProbabilities () . ToMatrixString () ) ;10Console . WriteLine ( " Evidence probability : \ n " + intervalKP .evidenceProbability ( evidence ) .
ToVectorString () ) ;Console . WriteLine ( " Pattern quants aposteriori probabilities : \ n" + intervalKP . propagate ( evidence ) . ToMatrixString () ) ;}В данной функции мы вновь имеем дело с фрагментом знаний надпропозициями-квантами с согласованными оценками. В первых 10 строкахинициализируется фрагмент знаний и стохастическое свидетельство. В последних четырех строках вызывается метод для вычисления вероятностипоступившего свидетельства, а за ним выполняется пропагация свидетельства во фрагмент знаний. В результате выполнения данной функции наэкран будет выведена следующая информация:Листинг 4.21 — Результат работы функции posterioriInferrence.Probability of pattern quant propositions :150500 ,30 ,20 ,10 ,40 ,70 ,60 ,5Evidence conjuncts probabilities :1 0 ,51015Evidence probability :0 ,4 1Pattern quants aposteriori probabilities :0 0 ,6666670 ,18750 ,43750 ,33333310 ,06250 ,3125Приведенные выше примеры показывают работоспособность и корректность имплементации алгоритмов апостериорного вывода в комплексепрограмм.
В следующем параграфе мы рассмотрим графический пользовательский интерфейс, дающий доступ к функционалу математическойбиблиотеки.4.3Графический пользовательский интерфейсОписанная в предыдущей главе математическая библиотека можетбыть рассмотрена как подключаемый модуль объемлющего проекта, однако, с точки зрения теории АБС, она является полноценным продуктом,реализующим законченную функциональность. Недостатком математической библиотеки является отсутствие графического интерфейса, чтосущественно увеличивает порог вхождения и снижает удобство использования.1514.3.1Выбор и удаление свидетельств и фрагментов знанийОкно, представленное ниже на рисунке 4.1 содержит интерфейс длявыбора фрагмента знаний и свидетельства для проведения локального логико-вероятностного вывода.
В верхней части окна представлена группаэлементов Knowledge Patterns, обеспечивающая взаимодействие с таблицей базы данных, хранящей информацию о фрагментах знаний. В нижнейчасти формы представлена схожая по составу группа элементов, позволяющая взаимодействовать с таблицей, содержащей свидетельства.Рисунок 4.1 — Таблицы фрагментов знаний и свидетельствДля перехода к следующей форме необходимо выбрать один из фрагментов знаний, представленных в верхней таблице, и одно из свидетельствиз нижней таблицы, либо указать желание создать новое свидетельствои (или) фрагмент знаний, нажав кнопку Add new, расположенную около152соответствующей таблицы.
Строка с выбранным фрагментов знаний и свидетельством будут выделены синим, как показано на рисунке ниже. ТакжеРисунок 4.2 — Выбор фрагмента знаний и свидетельстварядом с каждой таблицей расположена кнопка Delete, позволяющая удалить выбранный фрагмент знаний или свидетельство из базы данных.После выбора фрагмента знаний и свидетельства для перехода клогико-вероятностному выводу необходимо нажать кнопку Continue, расположенную в правом нижнем углу формы.4.3.2Логико-вероятностный выводОкно логико-вероятностного вывода содержит 4 группы элементов.Все они представлены на рисунке 4.3 В левой верхней части окна распо153Рисунок 4.3 — Окно локального логико-вероятностного вывода.ложена группа элементов, отвечающая за создание и обработку фрагментазнаний.
Подробнее элементы данной группы представлены на рисунке 4.4.Группа состоит из следующих элементов:– Основные характеристики фрагмента знаний включают всебя такие особенности как тип фрагмента знаний (бинарный,скалярный, интервальный), структура (идеал конъюнктов, пропозиции-кванты), количество атомов, имена атомов;– Поле исходные оценки вероятностей содержит последние сохраненные оценки вероятности истинности;154–содержит оценкивероятностей, полученные в ходе локального априорного или апостериорного вывода, а также в результате проверки непротиворечивости.Поле апостериорные оценки вероятностейРисунок 4.4 — Группа элементов «Фрагмент знаний».Группа также включает 5 кнопок, 2 из которых отвечают за взаимодействие с базой данных, а остальные 3 предназначены для обработкиоценок вероятностей истинности в текущем фрагменте знаний:– Кнопка Consistency служит для проверки непротиворечивости введенных оценок вероятностей.
В случае непротиворечивости илисогласуемости вероятностных оценок, непротиворечивые оценки будут выведены в поле Апостериорные оценки вероятностей, а в полеOutput (рис. 4.3) будет выведено сообщение «Pattern is consistent»,иначе будет выведено «Pattern is not consistent». Если одно илинесколько полей в характеристиках фрагмента знаний заполненыневерно или несколько полей не соответствуют друг другу (например, количество атомов: 2, имена атомов: 1 , 2 , 3 ) будет выведеносоответствующее сообщение об ошибке в поле Output;– Кнопка Create new очищает все заполненные поля, позволяя создать новый фрагмент знаний;155– Кнопка Update требуется для обновления оценок вероятностей. Принажатии на данную кнопку исходные оценки вероятностей фрагмента знаний заменяются непротиворечивыми оценками, полученнымив ходе логико-вероятностного вывода и выведенными в поле Апостериорные оценки вероятностей;– Кнопки Save pattern и Load pattern служат для сохранения изменений в текущем фрагменте знаний или загрузки нового.В правой верхней части окна расположена группа элементов, отвечающих за локальный априорный и апостериорный вывод.Рисунок 4.5 — Группа элементов «Апостериорный и априорный вывод».Группа элементов, отвечающих за апостериорный вывод состоит изследующих полей:– В основные характеристики свидетельства входят тип свидетельства (бинарное, скалярное, интервальное), количество атомов иимена атомов;– Поле вероятностные оценки свидетельства содержит вероятностныеоценки элементов идеала конъюнктов, над которым построено данное свидетельство.Также в группу элементов, отвечающих за апостериорный вывод, входятследующие кнопки:156– Кнопкапозволяет очистить все заполненные поля длясоздания нового свидетельства;– Кнопка Propagate служит для пропагации созданного свидетельства во фрагмент знаний указанный в форме Фрагмент знаний.
Вслучае если одно или несколько полей в характеристиках свидетельства или фрагмента знаний заполнены некорректно будет выведенасоответствующая ошибка в поле Output (например, если выбранбинарный тип свидетельства, но вектор оценок вероятностей введен для интервального типа свидетельства будет выведена ошибка«Incorrect evidence type»);– Кнопка Evidence probability позволяет вычислить вероятностьпоступления указанного свидетельства в выбранный фрагмент знаний. Также, как и в случае с кнопкой Propagate при нажатиикнопки производится проверка корректности введенных данных.
Результат выводится в поле Output.– Кнопки Save evidence и Load evidence служат для сохранения текущего и загрузки нового свидетельства.Ниже расположены следующие элементы, отвечающие за локальныйаприорный вывод:– Поле Formula vector служит для ввода характеристического вектора формулы вероятность которой требуется найти;– Кнопка Concluse formula служит для проведения локального априорного вывода.
Результат априорного вывода отображается в полеOutput.Create new4.4Веб-приложениеВ предыдущем разделе главы была рассмотрена математическая библиотека с примерами использования и сопутствующий ей графическийинтерфейс десктопного приложения. Используя командную строку илиграфический интерфейс исследователь может получить необходимый результат, однако оба приведенных выше решения объединяет необходимостьустановки на персональный компьютер, работа с документацией и, порой,157ориентированность лишь на одну из операционных систем. Кроме того,наличие программного комплекса с удобным, доступным пользовательским интерфейсом позволило бы в разы увеличить количество визуальногоматериала, используемого при подготовке к занятиям с учащимися инепосредственно в рамках учебного процесса.















