-
Notifications
You must be signed in to change notification settings - Fork 4
/
SemanticWeb.owl
1103 lines (693 loc) · 186 KB
/
SemanticWeb.owl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0"?>
<!DOCTYPE rdf:RDF [
<!ENTITY foaf "http://xmlns.com/foaf/0.1/" >
<!ENTITY owl "http://www.w3.org/2002/07/owl#" >
<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
<!ENTITY schema "http://purl.org/vocab/aiiso/schema#" >
<!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
<!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
<!ENTITY learning "http://ailab.ifmo.ru/elearning/learning#" >
]>
<rdf:RDF xmlns="http://ailab.ifmo.ru/elearning/semanticWebCourse#"
xml:base="http://ailab.ifmo.ru/elearning/semanticWebCourse"
xmlns:schema="http://purl.org/vocab/aiiso/schema#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:learning="http://ailab.ifmo.ru/elearning/learning#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:foaf="http://xmlns.com/foaf/0.1/">
<owl:Ontology rdf:about="http://ailab.ifmo.ru/elearning/semanticWebCourse">
<owl:imports rdf:resource="http://ailab.ifmo.ru/elearning/learning"/>
<owl:imports rdf:resource="http://xmlns.com/foaf/0.1/"/>
</owl:Ontology>
<!--
///////////////////////////////////////////////////////////////////////////////////////
//
// Annotation properties
//
///////////////////////////////////////////////////////////////////////////////////////
-->
<!-- http://xmlns.com/foaf/0.1/depiction -->
<owl:AnnotationProperty rdf:about="&foaf;depiction"/>
<!--
///////////////////////////////////////////////////////////////////////////////////////
//
// Data properties
//
///////////////////////////////////////////////////////////////////////////////////////
-->
<!-- http://purl.org/vocab/aiiso/schema#description -->
<owl:DatatypeProperty rdf:about="&schema;description"/>
<!--
///////////////////////////////////////////////////////////////////////////////////////
//
// Individuals
//
///////////////////////////////////////////////////////////////////////////////////////
-->
<!-- http://books.ifmo.ru/book/911/book_911.htm -->
<owl:NamedIndividual rdf:about="http://books.ifmo.ru/book/911/book_911.htm"/>
<!-- http://ailab.ifmo.ru/elearning/semanticWebCourse#CourseIntelligentSystems -->
<owl:NamedIndividual rdf:about="http://ailab.ifmo.ru/elearning/semanticWebCourse#CourseIntelligentSystems">
<rdf:type rdf:resource="&schema;Course"/>
<rdfs:label xml:lang="en">Intelligent Systems</rdfs:label>
<rdfs:label xml:lang="ru">Интеллектуальные системы</rdfs:label>
<schema:description xml:lang="ru">Курс по Интеллектуальным системам, включающий следующий темы: Экспертные системы и Технологии Семантического Веба.</schema:description>
<learning:hasResource rdf:resource="http://books.ifmo.ru/book/911/book_911.htm"/>
<foaf:depiction rdf:resource="https://stack.versal.com/api2/assets/17be447f-2944-438a-97ff-31feeee4d940"/>
</owl:NamedIndividual>
<!-- http://ailab.ifmo.ru/elearning/semanticWebCourse#DroolsGuvnorInstruction -->
<owl:NamedIndividual rdf:about="http://ailab.ifmo.ru/elearning/semanticWebCourse#DroolsGuvnorInstruction">
<rdf:type rdf:resource="&learning;Instruction"/>
<rdfs:label xml:lang="ru">Инструкция по работе с Drools Guvnor</rdfs:label>
<learning:content xml:lang="ru"><div class="spec-text-view"><p>Для простоты установки и использования системы, подготовлен <a target="_blank" href="https://dl.dropboxusercontent.com/u/1497018/is-course/guvnor-distr.zip">архив</a>. Архив содержит Drools Guvnor, который может быть запущен на любом компьютере с установленной <a target="_blank" href="http://www.java.com/ru/">Java</a> 6 или выше.<br>Инструкция:<br>1. Скачать архив и разархивировать его в удобное место, например, C:\guvnor-distr\;<br>2. Открыть командную строку (для Windows) или терминал (для Linux);<br>3. Перейти в директорию bin, распакованного архива;<br>4. Запустить скрипт <code>startup.bat</code> (для Windows) или <code>startup.sh</code> (для Linux);<br>5. Откройте <code>http://localhost:9090</code> в браузере;<br>6. А когда вы пожелаете остановить систему, выполните из скрипт <code>shutdown.bat</code> (для Windows) или <code>shutdown.sh</code> (для Linux).<br><em>Замечание: все данные после остановки системы сохраняются на вашем компьютере, поэтому вы их не потеряете.</em></p>
</div></learning:content>
<learning:isInstructionOf rdf:resource="http://ailab.ifmo.ru/elearning/semanticWebCourse#PracticeExpertSystems1"/>
</owl:NamedIndividual>
<!-- http://ailab.ifmo.ru/elearning/semanticWebCourse#DroolsTesterMain -->
<owl:NamedIndividual rdf:about="http://ailab.ifmo.ru/elearning/semanticWebCourse#DroolsTesterMain">
<rdf:type rdf:resource="&learning;VerificationSystem"/>
<rdfs:label xml:lang="ru">Система проверки решений для курса "Интеллектуальные системы"</rdfs:label>
<learning:url rdf:datatype="&xsd;string">http://expertsystems.tk/drools-tester/#/main</learning:url>
<learning:isVerificationSystemOf rdf:resource="http://ailab.ifmo.ru/elearning/semanticWebCourse#PracticeExpertSystems1"/>
</owl:NamedIndividual>
<!-- http://ailab.ifmo.ru/elearning/semanticWebCourse#PracticeExpertSystems1 -->
<owl:NamedIndividual rdf:about="http://ailab.ifmo.ru/elearning/semanticWebCourse#PracticeExpertSystems1">
<rdf:type rdf:resource="&learning;Practice"/>
<rdfs:label xml:lang="ru">Практическая работа по экспертным системам</rdfs:label>
<learning:content xml:lang="ru"><p>Практические задания будут выполняться в система <a href="http://www.jboss.org/drools/">Drools Guvnor</a>. В качестве теоретического и практического руководства предлагается использовать методические указания <a href="https://dl.dropboxusercontent.com/u/1497018/metoda-guvnor.pdf">"Рассмотрение систем управления бизнес-правилами на примере Drools Guvnor"</a>.<br>В третьем подразделе вы найдете инструкцию по установке и запуску Drools Guvnor на ваш компьютер. Вся необходимая информацию по разработке ЭС в системе собрана в методическом указании.<br>В четвертом подразделе описаны шаги по экспорту вашего решения из Guvnor и его отправки в проверяющую систему.</p></learning:content>
<learning:hasInstruction rdf:resource="http://ailab.ifmo.ru/elearning/semanticWebCourse#DroolsGuvnorInstruction"/>
<learning:hasVerificationSystem rdf:resource="http://ailab.ifmo.ru/elearning/semanticWebCourse#DroolsTesterMain"/>
<learning:hasFAQ rdf:resource="http://ailab.ifmo.ru/elearning/semanticWebCourse#PracticeExpertSystemsFAQ"/>
<learning:hasInstruction rdf:resource="http://ailab.ifmo.ru/elearning/semanticWebCourse#PracticeExpertSystemsSendResultsInstruction"/>
<learning:hasPracticeTask rdf:resource="http://ailab.ifmo.ru/elearning/semanticWebCourse#PracticeExpertSystemsTask1"/>
<learning:hasPracticeTask rdf:resource="http://ailab.ifmo.ru/elearning/semanticWebCourse#PracticeExpertSystemsTask2"/>
<learning:isPracticeOf rdf:resource="http://ailab.ifmo.ru/elearning/semanticWebCourse#m_ProductionRules"/>
</owl:NamedIndividual>
<!-- http://ailab.ifmo.ru/elearning/semanticWebCourse#PracticeExpertSystemsFAQ -->
<owl:NamedIndividual rdf:about="http://ailab.ifmo.ru/elearning/semanticWebCourse#PracticeExpertSystemsFAQ">
<rdf:type rdf:resource="&learning;FAQ"/>
<rdfs:label xml:lang="en">FAQ. Expert Systems</rdfs:label>
<rdfs:label xml:lang="ru">FAQ. Экспертные системы </rdfs:label>
<learning:content xml:lang="ru"><div><div class="gadget-editor">
<div class="gadget-text js-text-region"><div class="spec-text-view"><ol>
<li><strong>Я создал модель, но система выдаёт ошибку "Модель [&lt;Модель&gt;] необъявлена в пакете [&lt;имя пакета&gt;]"</strong><br>Имя файла должно в точности совпадать с именем вашего пакета, например, если имя пакета <em>defaultPackage</em>, то имя файла должно быть <em>defaultPackage.pkg</em>.</li>
<li><strong>Запуск <code>startup.bat</code> скрипта заканчивается сообщением "Neither the JAVA_HOME nor the JRE_HOME environment variable is defined. At least..."</strong><br>Выполните команду <code>java -version</code>, если распечаталась версия JRE или JDK, то вам нужно только объявить переменную окружения, если же команда выполнилась с ошибкой, тогда необходимо установить JRE (Java Runtime Edition) или JDK (Java Developer Edition) 6 или выше.<br>a. Чтобы установить переменную окружения JAVA_HOME, выполните следующую команду: <code>set JAVA_HOME=&lt;абс. путь до папки, в которой установлена Java&gt;</code>.<br>b. Для скачивания и установки JRE перейдите на сайт <a target="_blank" href="http://java.com">java.com</a>.</li>
<li><strong>Почему моё решение не проходит <code>test1</code> для Задания №1?</strong><br>В первом задании есть один момент, который многими упускается: в тестах на вход НЕ дается экземпляр модели <strong>Output</strong>, поэтому если вы пишите в части WHEN правила "There is an Output...", а экземпляра модели <strong>Output</strong> в рабочей памяти нет, то правило никогда не выполнится.<br>Как написано в условии к заданию, необходимо добавить экземпляр модели <strong>Output</strong> одним из правил, которое выполняется <em>всегда</em> раньше всех остальных, для этого в правиле устанавливается параметр salience больший 0 и часть WHEN оставляется пустой, чтобы правило выполнялось всегда независимо от каких-либо условий.</li>
</ol>
</div></div>
<div class="js-editor-region"></div>
</div></div></learning:content>
<learning:isFAQOf rdf:resource="http://ailab.ifmo.ru/elearning/semanticWebCourse#PracticeExpertSystems1"/>
</owl:NamedIndividual>
<!-- http://ailab.ifmo.ru/elearning/semanticWebCourse#PracticeExpertSystemsSendResultsInstruction -->
<owl:NamedIndividual rdf:about="http://ailab.ifmo.ru/elearning/semanticWebCourse#PracticeExpertSystemsSendResultsInstruction">
<rdf:type rdf:resource="&learning;Instruction"/>
<rdfs:label xml:lang="ru">Инструкция по отправке решений для проверки</rdfs:label>
<learning:content xml:lang="ru"><div class="spec-text-view"><p>Проверка решений происходит в автоматическом режиме на основе заранее подготовленных тестовых сценариев. Для этого вам необходимо экспортировать архив из Drools Guvnor, содержащий ваше решение, зайти в систему проверки решений <a href="http://expertsystems.tk/drools-tester">ссылка</a> и отправить архив.<br>Шаги:</p>
<ol>
<li>Откройте ваш пакет и перейдите во вкладку <em>Edit</em>,</li>
<li>Далее нажмите кнопку <em>Build package</em>, если сборка пакета прошла успешно вы должны увидеть сообщение <em>Package built successfully</em> и ссылку, по которой вы должны скачать файл с расширением <em>.pkg</em>,</li>
<li>Отлично! Теперь заходите в Систему проверки решений и выберайте вкладку, соответствующую заданию,</li>
<li>Для отправки решения вам необходимо указать почтовый адрес, который был указан во время регистрации на ecole.ifmo.ru.</li>
<li>Все. Отправляйте решение и смотрите результаты во вкладке <em>Результаты</em>.</li>
</ol>
</div></learning:content>
<learning:isInstructionOf rdf:resource="http://ailab.ifmo.ru/elearning/semanticWebCourse#PracticeExpertSystems1"/>
</owl:NamedIndividual>
<!-- http://ailab.ifmo.ru/elearning/semanticWebCourse#PracticeExpertSystemsTask1 -->
<owl:NamedIndividual rdf:about="http://ailab.ifmo.ru/elearning/semanticWebCourse#PracticeExpertSystemsTask1">
<rdf:type rdf:resource="&learning;PracticeTask"/>
<rdfs:label xml:lang="en">Task 1</rdfs:label>
<rdfs:label xml:lang="ru">Задание №1</rdfs:label>
<learning:numberOfTask rdf:datatype="&xsd;integer">1</learning:numberOfTask>
<learning:content xml:lang="ru"><div><p>В таблице (ниже по тексту) приведены характеристики наиболее широко известных драгоценных камней, включая их твердость (сопротивление внешним усилиям, измеряемое по шкале твердости Мора), плотность (отношение массы к единице объема, измеряемое в граммах на кубический сантиметр) и цвета. Запишите правила, необходимые для того, чтобы определить, является ли драгоценный камень хризобериллом, если даны три факта, представляющие твердость, плотность и цвет драгоценного камня. </p>
<style type="text/css">
.tg {border-collapse:collapse;border-spacing:0;border-color:#ccc;}
.tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:#ccc;color:#333;background-color:#fff;}
.tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:#ccc;color:#333;background-color:#f0f0f0;}
</style>
<table class="tg">
<tr>
<th class="tg-031e">Драгоценный камень</th>
<th class="tg-031e">Твердость</th>
<th class="tg-031e">Плотность</th>
<th class="tg-031e">Цвет</th>
</tr>
<tr>
<td class="tg-031e">Алмаз</td>
<td class="tg-031e">10</td>
<td class="tg-031e">3,52</td>
<td class="tg-031e">желтый, коричневый, зеленый,синий, белый, бесцветный</td>
</tr>
<tr>
<td class="tg-031e">Корунд</td>
<td class="tg-031e">9</td>
<td class="tg-031e">4</td>
<td class="tg-031e">красный, розовый, желтый,коричневый, зеленый, синий,фиолетовый, черный, белый,бесцветный</td>
</tr>
<tr>
<td class="tg-031e">Хризоберилл</td>
<td class="tg-031e">8.5</td>
<td class="tg-031e">3.72</td>
<td class="tg-031e">желтый, коричневый, зеленый</td>
</tr>
<tr>
<td class="tg-031e">Шпинель</td>
<td class="tg-031e">8</td>
<td class="tg-031e">3.6</td>
<td class="tg-031e">красный, розовый, желтый,коричневый, зеленый, синий,фиолетовый, белый, бесцветный</td>
</tr>
</table>
<p>Далее, описаны две модели (классы) фактов, которые должны быть созданы и использованы в вашей ЭС.</p>
<p>Наименования моделей и поле должны точно совпадать с описанием в задании иначе ваше решение не будет принято проверяющей системой.</p>
<div class="spec-text-view"><p>Модели фактов:</p><ul><li><strong>Input</strong>: - <em>модель входных данных</em><ul><li>constancy : Decimal number - <em>твердость камня</em>,</li><li>consistency : Decimal number - <em>плотность камня</em>,</li><li>color : Text - <em>цвет камня</em>.</li></ul></li><li><strong>Output</strong> - <em>модель выходных данных</em><ul><li>isTarget : True or False - <em>искомый камень или нет</em></li></ul></li></ul><p>На вход экспертной системы подается только экземпляр <strong>Input</strong>. Экземпляр модели <strong>Output</strong> должен быть добавлен в рабочую память одним из правил, которое выполняется всегда и первым, см. параметр salience (<a target="_blank" href="http://docs.jboss.org/drools/release/5.5.0.Final/drools-expert-docs/html_single/index.html#d0e5150">http://docs.jboss.org/drools/release/5.5.0.Final/drools-expert-docs/html_single/index.html#d0e5150</a>).</p></div></div></learning:content>
<learning:isPracticeTaskOf rdf:resource="http://ailab.ifmo.ru/elearning/semanticWebCourse#PracticeExpertSystems1"/>
</owl:NamedIndividual>
<!-- http://ailab.ifmo.ru/elearning/semanticWebCourse#PracticeExpertSystemsTask2 -->
<owl:NamedIndividual rdf:about="http://ailab.ifmo.ru/elearning/semanticWebCourse#PracticeExpertSystemsTask2">
<rdf:type rdf:resource="&learning;PracticeTask"/>
<rdfs:label xml:lang="en">Task 2</rdfs:label>
<rdfs:label xml:lang="ru">Задание №2</rdfs:label>
<learning:numberOfTask rdf:datatype="&xsd;integer">2</learning:numberOfTask>
<learning:content xml:lang="ru"><div class="text-editable"><p>Напишите правила, которые помогают в процессе выбора кустарника, подходящего для посадки. В таблице (картинка ниже по тексту) перечислено несколько видов кустарников и указано, обладает ли каждое их этих растений определенными характеристиками, которые включают устойчивость к холоду, к затенению, к засухе, к влажной и кислой почве, к городским условиям (к загазованности воздуха), пригодность для кадочного выращивания, простота культивирования и быстрота роста. Отметка в таблице указывает, что укастарник обладает соответствующей характеристикой. В качестве входных данных для программы должны использоваться факты, указывающие желательную характеристику, которую должн иметь кустарник, а результатом работы программы должен быть список растений, обладающих всеми необходимыми характеристиками.</p></div>
<img class="unselectable js-image" unselectable="on" src="//static.versal.com/restapi/assets/b91d11d2-caf5-490f-ab1a-6a0dc8166829" style="left: 0px; top: 0px; width: 713px; max-width: 713px; height: 341px; max-height: 341px;">
<div class="spec-text-view"><p>Модели фактов:</p>
<ul>
<li><strong>Сharacteristic</strong> - модель входных данных<ul>
<li>coldWeather : True of False - <em>устойчивость к холоду,</em></li>
<li>shade : True or False - <em>устойчивость к затенению,</em></li>
<li>drought : True of False - <em>устойчивость к засухе,</em></li>
<li>wetSoil : True of False - <em>устойчивость к влажной почве,</em></li>
<li>acidSoil : True of False - <em>устойчивость к кислой почве,</em></li>
<li>urbanConditions : True of False - <em>устойчивость к городским условиям,</em></li>
<li>tubGrowing : True of False - <em>пригодность для кадочного выращивания,</em></li>
<li>easeOfCultivation : True of False - <em>простота культивирования,</em></li>
<li>speedOfGrowth : True of False - <em>быстрота роста.</em></li>
</ul>
</li>
<li><strong>Plant</strong> - модель растения<ul>
<li>name : Text - <em>имя кустарника</em></li>
</ul>
</li>
</ul>
<p>По завершению работы экспертной системы в рабочей памяти должны находиться экземпляры модели <strong>Plant</strong>. Например, если в результате работы нашлись два кустарника обладающие желаемыми характеристиками, то в рабочей памяти должны быть два экземпляра <strong>Plant</strong> с именами (name) соответсвующими именам кустарников.<br>На вход экспертной системы подаётся экземпляр модели <strong>Сharacteristic</strong>.</p>
</div></learning:content>
<learning:isPracticeTaskOf rdf:resource="http://ailab.ifmo.ru/elearning/semanticWebCourse#PracticeExpertSystems1"/>
</owl:NamedIndividual>
<!-- http://ailab.ifmo.ru/elearning/semanticWebCourse#l_FramesAndObjectOrientedProgramming -->
<owl:NamedIndividual rdf:about="http://ailab.ifmo.ru/elearning/semanticWebCourse#l_FramesAndObjectOrientedProgramming">
<rdf:type rdf:resource="&learning;Lecture"/>
<rdfs:label xml:lang="en">Frames and Object Oriented Programming</rdfs:label>
<rdfs:label xml:lang="ru">Фреймы и ООП</rdfs:label>
<learning:numberOfLecture rdf:datatype="&xsd;integer">4</learning:numberOfLecture>
<learning:hasResource rdf:resource="http://ailab.ifmo.ru/elearning/semanticWebCourse#p_FramesAndObjectOrientedProgramming"/>
</owl:NamedIndividual>
<!-- http://ailab.ifmo.ru/elearning/semanticWebCourse#l_IntroductionToSystemsBasedOnKnowledge -->
<owl:NamedIndividual rdf:about="http://ailab.ifmo.ru/elearning/semanticWebCourse#l_IntroductionToSystemsBasedOnKnowledge">
<rdf:type rdf:resource="&learning;Lecture"/>
<rdfs:label xml:lang="en">Introduction to systems based on knowledge</rdfs:label>
<rdfs:label xml:lang="ru">Введение в системы, основанные на знаниях</rdfs:label>
<learning:numberOfLecture rdf:datatype="&xsd;integer">1</learning:numberOfLecture>
<learning:content xml:lang="ru"><p><b>Слайд 1</b></p>
<p><b>Слайд 2</b></p>
<p>С самого начала компьютерной эпохи, которую, на мой взгляд, следует отсчитывать от революционного доклада Фон Неймона об архитектуре вычислительной машины с хранимой программой в 1954 году, специалисты предпринимали попытки создания систем, направленных на решение интеллектуальных задач: доказательство теорем, поиск в пространстве состояний, машинный перевод, распознание образов, машинное творчество и т.п. Это был романтический период развития искусственного интеллекта, когда казалось, что создать заменяющие человека системы возможно и в сравнительно короткие сроки. Алан Тьюринг сформулировал свой знаменитый тест на интеллектуальность, а Ньюэл и Саймон разработали первую интеллектуальную программу GPS (General Problem Solver). Однако, при переходе от учебных и игровых задач к реальным примерам оказалось, что новые интеллектуальные методы и алгоритмы не справляются со специфическими и часто запутанными прикладными проблемами из различных сфер деятельности. Причиной тому явились не сложность решения как такового, а трудности при формализации этого решения. Другими словами, для значительного количества «человеческих» или экспертных задач невозможно написать математическое уравнение или алгоритм. Решение этих задач характеризуется применением интуиции и субъективных оценок. Одновременно определенные результаты были получены в области когнитивной психологии, лингвистике и формальной логике, которые сформировали необходимый базис для развития человеко-машинных интерфейсов и методологии баз знаний.</p>
<p><b>Слайд 3</b></p>
<p>Важно понимать, каким образом и на каких методах построен процесс приятия решений в конкретной системе. Принятие решений человеком формализовано в теории принятия решений — области исследования, включающей понятия и методы математики, статистики, экономики, менеджмента и психологии с целью изучения закономерностей выбора людьми путей решения разного рода задач, а также способов поиска наиболее выгодных из возможных решений.</p>
<p>Если решение полностью принимает машина, то это уже теория автоматического управления - научная дисциплина, изучающая процессы автоматического управления объектами разной физической природы. Существенную роль тут играют корректная классификация системы управления и выбор математических моделей. Отдельно выделяют интеллектуальные системы автоматического управления, содержащие базы знаний. </p>
<p>Однако, интеллектуальное поведение машины не означает полностью автономной работы на всем протяжении жизненного цикла и без оператора. В действительности интеллектуальное поведение - это выполнение машиной лишь отдельных операций по обработке данных, анализу изображений и т.п. на основе базы знаний. Другими словами, интеллектуальная система выполняет роль ассистента для пользователя-специалиста. При этом поддержка базы знаний также требует привлечения экспертов для добавления новых знаний, решения концептуальных вопросов, разрешения конфликтов и т.п.</p>
<p><b>Слайд 4</b></p>
<p>Согласно определениям на википедии знание - это:</p>
<p>1) форма существования и систематизации результатов познавательной деятельности человека. Знание помогает людям рационально организовывать свою деятельность и решать различные проблемы, возникающие в её процессе.</p>
<p>2) в теории искусственного интеллекта и экспертных систем — совокупность информации и правил вывода (у индивидуума, общества или системы ИИ) о мире, свойствах объектов, закономерностях процессов и явлений, а также правилах использования их для принятия решений. Главное отличие знаний от данных состоит в их внутренней структурированности и активности, появление в базе новых фактов или установление новых связей может стать источником изменений в принятии решений.</p>
<p>Т.е. мы можем говорить о знаниях как о техническом объекте, однако открытым остается вопрос, можем ли мы выразить знания моделями и алгоритмами? и какова природа знаний?</p>
<p><b>Слайд 5</b></p>
<p>Как отличить знания, которые действительно необходимы для решения задачи, от знаний о повседневном обиходе? Знания доказанные и верифицируемые от домыслов и догадок? Рациональные и формализуемые знания от шарлатанства и передергивания фактов?</p>
<p>Некоторые, на первый взгляд вполне осмысленные задачи, могут оказаться слишком сложными для решения с помощью компьютера. В то же время, существуют примеры корректных формальных решений (см. пример далее) для проблем, оказавшихся в действительности ошибочными и не существующими в действительности. Можно ли говорить в этом случае о наличии научной теории для таких проблем?</p>
<p>Наконец, всегда ли необходимо математическое моделирование для решения задач? В реальности человек не использует для поиска решения трудноформализуемых задач какие-либо модели и даже логические рассуждения. Выработка решения осуществляется в большинстве случаев интуитивно, и процесс получения этих решений мало изучен.</p>
<p><b>Слайд 6</b></p>
<p>В этом примере показано, как знания могут трансформироваться со временем. При этом решаемая проблема меняется значительно, от того, что изначально считалось принципиально невозможным, до возможного и осуществимого на практике. При этом само теоретическое решение остается почти неизменным. Т.е. теория существует как бы отдельно от контекста ее применения. В данном примере речь идет о теоретической возможности получения фото и видео изображений. На слайде показаны основные теоретические положения, необходимые для решения задачи.</p>
<p></p>
<p><b>Слайд 7</b></p>
<p>Однако, 2000 лет назад взгляд на природу возникновения изображений был принципиально другим - истинным считался тот факт, что «зрительные» лучи, исходя из глаз и «ощупывая» предметы, возвращались обратно, формируя изображения непосредственно в глазу. Возможно ли применить уже известную на то время геометрическую оптику для фиксации изображений действительности?v</p>
<p><b>Слайд 8</b></p>
<p>2000 лет назад задача получения фотографических изображений казалась принципиально невозможной, т.к. зрительные лучи, как считалось, могли исходить только из глаз живых существ. Но как объяснить эффект камеры обскуры? Это магия или эффекту камеры есть рациональное объяснение? Все объяснил Абу Али ал-Хасан ибн ал-Хайсам ал-Басри в X веке, предположив, что вместо зрительных лучей в действительности существуют источники света и световые лучи. Именно эти лучи, проходя через отверстие в стене камеры обскуры, формируют изображение на ее противоположной стене.</p>
<p><b>Слайд 9</b></p>
<p>Приведенный пример показывает, что одни и те же знания в разном контексте могут быть как истинными, так и ложными. Одни и те же лучи, подчиняясь законам геометрической оптики, могут или не могут формировать изображение на плоскости, в зависимости от того, считаем ли мы их световыми или зрительными.</p>
<p>Но изменение контекста в данном примере вызвано не развитием теории геометрической оптики, а необходимостью объяснить свой чувственный опыт и загадочные явления.</p>
<p><b>Слайд 10</b></p>
<p>Приведенный пример требует дополнительного комментария, т.к. прежде чем формализовать знания, необходимо объяснить их природу и их язык. Очень часто считают, что идеальным способом выразить знание является написание математических формул и уравнений. Однако, как уже было показано выше, знания бывают совершенно различной природы, и выбор используемых моделей должен быть адекватен как этой природе, так и языку, которым пользуются носители этих знаний. Следует также отметить, что помимо математических моделей бывают также физические, концептуальные, эвристические, ментальные, морфологические и многие другие.</p>
<p><b>Слайд 11</b></p>
<p>Чтобы правильно понять природу знаний, нужно определить, кто же ее изучает? Помимо философии изучением знаний занимаются психология (когнитивные аспекты, память, рассуждения), социология (процессы возникновения знаний, взаимодействие людей в процессе создания новых знаний) и, конечно, кибернетика, информатика, искусственный интеллект.</p>
<p><b>Слайд 12</b></p>
<p>В искусственном интеллекте (ИИ) существуют два основных направления: биоинспирированные алгоритмы и системы и методы «черного ящика». Первое направление основано на принципах функционирования живых организмов: нейронные сети, эволюционное программирование, генетические алгоритмы, роевые алгоритмы и др. Однако, в явном виде это направление ИИ знаний не использует. Методы «черного ящика», или системы, основанные на знаниях, напротив, не моделируют биологическую структуру живого организма, а пытаются воспроизвести принцип обработки знаний человеком. Другими словами, эти системы моделируют структуру памяти и логику рассуждений человека. Одним из основных представителей этого направления являются экспертные системы.</p>
<p><b>Слайд 13</b></p>
<p>Предметом изучения теории систем, основанных на знаниях, являются: представление в компьютерной памяти (репрезентация) знаний и когнитивные процессы (процессы понимания), моделирование процесса рассуждений, проблема определения истинности и непротиворечивости решений, представление и обработка нечетких знаний.</p>
<p>Важно отметить, что вопросы моделирования структуры и функций объектов реального мира НЕ рассматриваются. Т.е. обработка информации осуществляется на символьном уровне с помощью формального языка представления знаний.</p>
<p><b>Слайд 14</b></p>
<p>Прежде чем более подробно говорить о знаниях, необходимо понять, чем они отличаются от других видов информации. Информацию в целом можно классифицировать на следующие группы:</p>
<p>контент (неупорядоченная и неструктурированная информация, например, интернет-контент), </p>
<p>данные (имеют тип, характеризуются моделью данных, например, содержимое баз данных),</p>
<p>знания (то, что необходимо для решения задач).</p>
<p>Другими словами, знания — это закономерности предметной области (принципы, связи, законы), полученные в результате практической деятельности и профессионального опыта, позволяющие специалистам ставить и решать задачи в этой области.</p>
<p><b>Слайд 15</b></p>
<p>Трудноформализуемые знания всегда субъективны. Они зарождаются в памяти человека как результат его практической деятельности и мышления. Но при этом важнейшим их свойством является возможность их фиксации на материальных носителях и передачи от одного человека к другому. Это необходимое условие для построение компьютерной системы, основанной на знаниях.</p>
<p>Также важным свойством знаний является наличие связного набора понятий (определяемых через интенсионал и/или экстенсионал), которым можно оперировать в процессе рассуждений.</p>
<p>Интенсионал понятия — это определение его через соотнесение с понятием более высокого уровня абстракции с указанием специфических свойств. Интенсионалы формулируют знания об объектах. Другой способ определяет понятие через соотнесение с понятиями более низкого уровня абстракции или перечисление фактов, относящихся к определяемому объекту. Это есть определение через данные, или экстенсионал понятия.</p>
<p>Рассмотрим пример знаний о понятии «птица». Его интенсионалом будет «Летающее животное с крыльями и клювом», а экстенсионал этого понятия: «Птица — это голубь, воробей, ворона, чайка и др.»</p>
<p><b>Слайд 16</b></p>
<p>Для правильного выбора модели представления знаний в памяти компьютера необходимо сначала классифицировать знания. Наиболее полная и удачная классификация знания была предложена проф. Гавриловой Т.А.</p>
<p><b>Слайд 17</b></p>
<p>Признак классификации знаний по глубине важен с точки зрения выбора основного формата для описания знаний. Так, например, глубинные знания удобнее представлять в виде детальных схем или структур (объектов, записей). А при описании поверхностных знаний важнее показать взаимосвязь между понятиями, например, с помощью графа.</p>
<p><b>Слайд 18</b></p>
<p>Классификация по владельцу необходима для выбора правильных инструментов извлечения и записи знаний. Например, для коллективных знаний необходимы коллаборативные инструменты. В некоторых случаях, таким инструментом могут быть wiki-системы. Для личных знаний, как правило, к работе необходимо привлекать инженера по знаниям для интервьюирования эксперта.</p>
<p><b>Слайд 19</b></p>
<p>Классификация по форме определяет процедуру формализации. Для явных знаний можно применить автоматизированные средства обработки информации с носителей, на которых зафиксированы эти знания. Неявные знания требуют нескольких итераций ручной обработки материалов, которые предоставит эксперт (записи интервью, наблюдения и пр.)</p>
<p><b>Слайд 20</b></p>
<p>От источников получения знаний также зависит, насколько возможно пользоваться средствами автоматизации при обработке знаний. Непосредственные знания предварительно нужно записать в какой-либо форме, в то время как опосредованные знания уже были записаны их владельцем.</p>
<p><b>Слайд 21</b></p>
<p>Наконец, сфера применения определяет окружение, в котором будет функционировать будущая система, основанная на знаниях. Главным образом, следует обращать внимание на требования той или иной сферы применения к стыковке системы с внешними источниками информации и данных (датчики и сенсоры, БД, поисковые системы), а также на требования к интерфейсам пользователя для общения с системой.</p>
<p><b>Слайд 22</b></p>
<p>Для превращения знаний из «человеческой» формы в формализованное представление в памяти компьютера служит инженерия знаний. </p>
<p>Инженерия знания (knowledge engineering) — достаточно молодое направление искусственного интеллекта, возникшее тогда, когда практические разработчики столкнулись с весьма нетривиальными проблемами выявления и формализации знаний. </p>
<p>Инженерия знаний — это ветвь информатики, изучающая модели и методы извлечения, структурирования и формализации (представления) знаний для их обработки в интеллектуальных и информационных системах.</p>
<p>Традиционно при разработке систем, основанных на знаниях, выделяют три фазы до-машинной обработки знаний:</p>
<p>Первая — извлечение (получение) знаний из источника (эксперты, Интернет, специальная литература). Трудоемкость этой фазы недооценена. Результат ее — огромное количество гетерогенных (разнохарактерных) противоречивых фрагментов знаний в виде протоколов и интервью, стенограмм, документов, фото и пр.</p>
<p>Вторая — концептуализация (структурирование) разрозненных фрагментов в единую модель. Результат — часто слабоформализованное представление, называемое полем знаний в форме интеллект-карт, концепт-графов, таблиц решений.</p>
<p>Третья — формализация поля знаний при помощи специализированных языков представления знаний (ЯПЗ). Результат — база знаний, описанная на ЯПЗ, например с помощью фреймов, семантических сетей или продукций, о которых речь пойдет позже.</p>
<p><b>Слайд 23</b></p>
<p>Языки представления знаний могут быть разбиты на несколько основных групп: табличные, текстовые, графические (графовые), фреймы (объектные структуры) и логические. К ним можно добавить еще одну - онтологии, которая стала доминирующей формой описания знаний в последнее время, главным образом, благодаря развитию Интернета. Хотя строго говоря, онтологии, являясь формально логическим языком, комбинируют в себе свойства объектных структур, графов и теоретико-множественных подход. Подробнее об этих группах языков представления знаний речь пойдет в следующих лекциях.</p>
<p><b>Слайд 24</b></p>
<p>Экспертные системы (ЭС) — это наиболее распространенный класс систем, основанных на знаниях, ориентированный на тиражирование опыта высококвалифицированных специалистов в областях, где качество принятия решений традиционно зависит от уровня экспертизы, например, медицина, юриспруденция, геология, экономика, военное дело и др.</p>
<p>ЭС эффективны лишь в специфических «экспертных» областях, где важен эмпирический опыт специалистов. Например, компания American Express сократила свои потери на 27 млн долл. в год благодаря экспертной системе, определяющей целесообразность выдачи или отказа в кредите той или иной фирме. А компания Digital Equipment в свое время смогла сократить количество ошибок проектирования мейнфреймов с 30 до одного процента. И таких примеров можно привести множество.</p>
<p>Современные ЭС — это сложные программные комплексы, аккумулирующие знания специалистов в конкретных предметных областях и распространяющие этот эмпирический опыт для консультаций менее квалифицированных пользователей. Задача экспертных систем направлена на использование автоматизированных методов обработки информации в тех областях науки и техники, где малопригодны традиционные математические методы моделирования. В этих областях важны смысловая и логическая обработка информации, опыт экспертов.</p>
<p><b>Слайд 25</b></p>
<p>Факторы, свидетельствующие о необходимости разработки и внедрения экспертных систем:</p>
<p>- невозможность или неэффективность математического моделирования;</p>
<p>- нехватка специалистов, затрачивающих значительное время на оказание помощи другим;</p>
<p>- выполнение небольшой задачи требует многочисленного коллектива специалистов, поскольку ни один из них не обладает достаточным знанием;</p>
<p>- сниженная производительность, поскольку задача требует полного анализа сложного набора условий, а обычный специалист не в состоянии просмотреть (за отведенное время) все эти условия;</p>
<p>- большое расхождение между решениями самых хороших и самых плохих исполнителей;</p>
<p>- а также, например, наличие конкурентов, имеющих преимущество в силу того, что они лучше справляются с поставленной задачей.</p>
<p><b>Слайд 26</b></p>
<p>Подходящие задачи для экспертных системы обычно имеют следующие характеристики:</p>
<p>- являются узкоспециализированными, т.е. сконцентрированы на решении какой-то конкретной задачи;</p>
<p>- являются сложными, т.е. нетривиальными в решении;</p>
<p>- имеют «шум» в данных (неточность, неполноту, некорректность);</p>
<p>- не зависят в значительной степени от общечеловеческих знаний или соображений здравого смысла, которые чрезвычайно трудно формализовать по причине огромного количества таких знаний и наличия в них большого количества противоречий;</p>
<p>- не являются для эксперта ни слишком легкими, ни слишком сложными. (Время, необходимое эксперту для решения проблемы, должно быть средним для выбранного класса задач).</p>
<p><b>Слайд 27</b></p>
<p>Традиционными областями применения экспертных систем являются следующие:</p>
<p>Интерпретация данных. Это одна из традиционных задач для экспертных систем. Под интерпретацией понимается определение смысла данных, результаты которого должны быть согласованными и корректными. Обычно предусматривается многовариантный анализ данных.</p>
<p>Диагностика. Под диагностикой понимается обнаружение неисправности в некоторой системе. Неисправность – это отклонение от нормы. Такая трактовка позволяет с единых теоретических позиций рассматривать и неисправность оборудования в технических системах, и заболевания живых организмов, и всевозможные природные аномалии. Важной спецификой является необходимость понимания функциональной структуры ("анатомии") диагностирующей системы.</p>
<p>Мониторинг. Основная задача мониторинга – непрерывная интерпретация данных в реальном масштабе времени и сигнализация о выходе тех или иных параметров за допустимые пределы. Главные проблемы – "пропуск" тревожной ситуации и инверсная задача "ложного" срабатывания. Сложность этих проблем в размытости симптомов тревожных ситуаций и необходимость учета временного контекста.</p>
<p>Проектирование. Проектирование состоит в подготовке спецификаций на создание "объектов" с заранее определенными свойствами. Под спецификацией понимается весь набор необходимых документов: чертеж, пояснительная записка и т.д. Основные проблемы здесь – получение четкого структурного описания знаний об объекте и проблема "следа". Для организации эффективного проектирования и, в еще большей степени, перепроектирования необходимо формировать не только сами проектные решения, но и мотивы их принятия. Таким образом, в задачах проектирования тесно связываются два основных процесса, выполняемых в рамках соответствующей ЭС: процесс вывода решения и процесс объяснения.</p>
<p>Прогнозирование. Прогнозирующие системы логически выводят вероятные следствия из заданных ситуаций. В прогнозирующей системе обычно используется параметрическая динамическая модель, в которой значения параметров "подгоняются" под заданную ситуацию. Выводимые из этой модели следствия составляют основу для прогнозов с вероятностными оценками.</p>
<p>Планирование. Под планированием понимается нахождение планов действий, относящихся к объектам, способным выполнять некоторые функции. В таких ЭС используются модели поведения реальных объектов с тем, чтобы логически вывести последствия планируемой деятельности.</p>
<p>Обучение. Системы обучения диагностируют ошибки при изучении какой-либо дисциплины с помощью компьютера и подсказывают правильные решения. Они аккумулируют знания о гипотетическом "ученике" и его характерных ошибках, затем в работе способны диагностировать слабости в знаниях обучаемых и находить соответствующие средства для их ликвидации. Кроме того, они способны планировать обучение ученика в зависимости от его успехов.</p>
<p><b>Слайд 28</b></p>
<p>Реальные ЭС могут иметь сложную, разветвленную структуру модулей, но для любой ЭС необходимо наличие следующих основных блоков:</p>
<p>- БЗ – база знаний – наиболее ценный компонент ядра ЭС, совокупность знаний о предметной области и способах решения задач, записанная в форме, понятной неспециалистам в программировании: эксперту, пользователю и др. Обычно знания в БЗ записываются в форме, приближенной к естественному языку. Форма записи знаний получила название язык представления знаний (ЯПЗ). В различных системах могут использоваться различные ЯПЗ. Параллельно такому "человеческому" представлению БЗ может существовать во внутреннем "машинном" представлении. Преобразование между различными формами представления БЗ должно осуществляться автоматически, так как редактирование БЗ не подразумевает участие программиста-разработчика.</p>
<p>- МВ – машина вывода – блок, моделирующий ход рассуждений эксперта на основании знаний, заложенных в БЗ. Машина вывода является неизменной частью ЭС. Однако большинство реальных ЭС имеют встроенные средства управления ходом логического вывода с помощью так называемых метаправил, записываемых в БЗ.</p>
<p>- Рабочая память – хранит промежуточные результаты вычислений, необходимые для работы машины вывода.</p>
<p>- Редактор базы знаний – предназначен для разработчиков ЭС. С помощью этого редактора в БЗ добавляются новые знания или редактируются существующие.</p>
<p>- Интерфейс пользователя – блок, предназначенный для взаимодействия ЭС с пользователем, через который система запрашивает необходимые для ее работы данные, и выводит результат. Система может иметь «жесткий» интерфейс, ориентированный на определенный способ ввода и вывода информации, или может включать генератор специализированных интерфейсов для более эффективного взаимодействия с пользователем.</p>
<p><b>Слайд 29</b></p>
<p>В разработке любого программного обеспечения участвуют, как правило, несколько специалистов выполняющих различные роли: заказчик, постановщик задачи, аналитик, проектировщик, программист, кодировщик, тестировщик и др. Хотя подобное теоретическое разделение бывает часто условным, осознание коллективом разработчиков своих функций и задач представляется важным.</p>
<p>Роли разработчиков являются постоянными на протяжении всей разработки. Совмещение ролей нежелательно, но на практике, часто по объективным или субъективным причинам, специалисты все же совмещают несколько ролей. Иногда, в силу особенностей проекта, некоторые роли оказываются лишними. В случае простого проекта, опытный специалист может реализовать его в одиночку, взяв на себя все необходимые роли.</p>
<p>Специфика технологии создания ЭС вводит определенное разделение ролей, несколько отличное от общепринятых участников разработки программного обеспечения. Инициатором создания новой ЭС является заказчик. Он же обычно бывает и основным пользователем, поскольку, как уже было отмечено выше, ЭС строится в некоторой узкоспециализированной области знаний и рассчитана на ограниченный круг специалистов. Заказчик (пользователь) может участвовать при разработке интерфейса пользователя, так как система должна быть органично встроена в существующую схему рабочих операций, иначе эффективность от ее использования может быть снижена. </p>
<p>Успех разработки ЭС зависит практически полностью от работы инженера по знаниям и эксперта. Уже во время первоначального общения они должны решить, будет ли их сотрудничество успешным или потребуется привлечение других экспертов или инженеров. Это немаловажно, поскольку обе стороны будут работать вместе. В процессе разработки и последующего расширения системы инженер по знаниям помогает эксперту структурировать знания, определять и формализовать понятия и правила, необходимые для решения проблем. Основная ответственность при этом ложится на инженера по знаниям. Он фактически является проектировщиком системы. Основное отличие инженера по знаниям от проектировщика программного обеспечения заключается в том, что в основном его усилия сконцентрированы на базе знаний, а предметом проектирования являются не алгоритмы программы, а знания, которые он получает от эксперта. </p>
<p>Программист выполняет более традиционные для разработки ПО функции. Однако, особенностью являются с одной стороны специализированные средства разработки, а с другой - необходимость погружаться в предметную область и владеть теорией представления знаний и автоматических рассуждений (логического вывода).</p>
<p>Когда экспертная система близка к завершению, инженер по знаниям должен убедиться в том, что эксперты и пользователи знают, как эксплуатировать и обслуживать ее. Пользователи выполняют также роли тестировщиков. Для подтверждения адекватности и полезности системы важно предоставить каждому из пользователей возможность поставить перед ЭС реальные задачи, а затем проследить, как она выполняет эти задачи, и сравнить эти результаты с теми, что получает человек при решении тех же задач.</p>
<p>В случае если в качестве инструментария используется низкоуровневое средство разработки, то есть какой-либо язык программирования, то необходимо включить в коллектив разработчиков одного или нескольких программистов. При стыковке системы со своим окружением (существующим оборудованием и программным обеспечением) также понадобится помощь программиста. Однако, если система разрабатывается с использованием оболочки ЭС, то роль программиста становится лишней. А инженер по знаниям вполне может самостоятельно кодировать знания посредством редактора БЗ используемой оболочки.</p>
<p><b>Слайд 30</b></p>
<p>Важнейшую роль при разработке ЭС играет технология прототипирования. Прототипная система является усеченной версией экспертной системы, спроектированной для проверки правильности кодирования фактов, связей и стратегий рассуждения эксперта. Она также дает возможность инженеру по знаниям привлечь эксперта к активному участию в процессе разработки экспертной системы, и, следовательно, к принятию им обязательства приложить все усилия к созданию системы в полном объеме.</p>
<p>Идентификация проблемы. </p>
<p>На этом этапе происходит знакомство и обучение членов коллектива разработчиков, а также создание неформальной формулировки проблемы. Уточняется задача, планируется ход разработки прототипа экспертной системы. Также определяются:</p>
<p>- необходимые ресурсы (время, люди, компьютеры и т.д.);</p>
<p>- источники знаний (книги, дополнительные эксперты, методики);</p>
<p>- имеющиеся аналогичные экспертные системы;</p>
<p>- цели (распространение опыта, автоматизация рутинных действий и др.);</p>
<p>- классы решаемых задач и т.д.</p>
<p>Получение (извлечение) знаний</p>
<p>Осуществляется получение инженером по знаниям наиболее полного из возможных представления о предметной области и способах принятия решения в ней. Происходит перенос компетентности экспертов на инженеров по знаниям с использованием различных методов:</p>
<p>- анализ текстов;</p>
<p>- диалоги;</p>
<p>- экспертные игры;</p>
<p>- лекции;</p>
<p>- дискуссии;</p>
<p>- интервью;</p>
<p>- наблюдение и другие.</p>
<p>Структурирование, или концептуализация, знаний.</p>
<p>Производится разработка неформального описания знаний о предметной области в виде графа, таблицы, диаграммы или текста, которое отражает основные концепции и взаимосвязи между понятиями предметной области. Такое описание называется полем знаний. Выявляется структура полученных знаний о предметной области, т.е. определяются:</p>
<p>- терминология;</p>
<p>- список основных понятий и их атрибутов;</p>
<p>- отношения между понятиями;</p>
<p>- структура входной и выходной информации;</p>
<p>- стратегия принятия решений;</p>
<p>- ограничения стратегий и т.д.</p>
<p></p>
<p>Формализация</p>
<p>Строится формализованное представление концепций предметной области на основе выбранного языка представления знаний (ЯПЗ). Выполняется разработка базы знаний на языке представления знаний, который, с одной стороны, соответствует структуре поля знаний, а, с другой, позволяет реализовать прототип системы на следующей стадии программной реализации. Традиционно на этом этапе используются:</p>
<p>- логические методы (исчисления предикатов I-го порядка и др.);</p>
<p>- продукционные модели (с прямым и обратным выводом);</p>
<p>- семантические сети;</p>
<p>- фреймы;</p>
<p>- объектно-ориентированные языки, основанные на иерархии классов, объектов.</p>
<p>Реализация</p>
<p>Окончательная разработка программного комплекса, демонстрирующего жизнеспособность подхода в целом. Чаще всего первый прототип отбрасывается на этапе реализации действующей ЭС. </p>
<p>Создается прототип экспертной системы, включающий базу знаний и остальные блоки, при помощи одного из следующих способов:</p>
<p>- программирование на традиционных языках типа PYTHON, С#, Java и др.;</p>
<p>- программирование на специализированных языках, применяемых в задачах искусственного интеллекта: LISP, Prolog и др.;</p>
<p>- использование инструментальных средств разработки ЭС типа DROOLS, СLIPS и др.;</p>
<p>- использование «пустых» ЭС или «оболочек» типа EXSYS и др.</p>
<p></p>
<p>Тестирование</p>
<p>Этот этап включает выявление ошибок в подходе и реализации прототипа и выработка рекомендаций по доводке системы до промышленного варианта. Оценивается и проверяется работа программ прототипа с целью приведения в соответствие с реальными запросами пользователей. Проверяются следующие свойства прототипа:</p>
<p>- удобство и адекватность интерфейсов ввода-вывода (характер вопросов в диалоге, связность выводимого текста результата и др.);</p>
<p>- эффективность стратегии управления (порядок перебора, использование нечеткого вывода и др.);</p>
<p>- качество проверочных примеров;</p>
<p>- корректность базы знаний (полнота и непротиворечивость правил).</p>
<p><b>Слайд 31</b></p>
<p>Понятие прототипа требует дополнительных комментариев. Прототипом в действительности следует называть не какую-то конкретную версию программного обеспечения, а семейство этих версий.</p>
<p>Главной задачей создания демонстрационного прототипа является ответ на перечисленные ниже вопросы:</p>
<p>- данная задача может быть решена с помощью экспертной системы;</p>
<p>- экспертную систему можно создать предлагаемыми средствами;</p>
<p>- имеется подходящий эксперт;</p>
<p>- предложенные критерии производительности являются разумными;</p>
<p>- затраты и срок их окупаемости приемлемы для заказчика. </p>
<p>Основная работа при создании исследовательского прототипа заключается в существенном расширении базы знаний, т.е. добавлении большого числа дополнительных правил, фреймов, узлов семантической сети или других элементов знаний. В то же время эксперт и инженер по знаниям могут увеличить базу знаний системы, включая правила, управляющие дополнительными подзадачами или дополнительными аспектами экспертной задачи (метазнания).</p>
<p>После установления основной структуры БЗ ЭС производится доработка системы до действующего прототипа, включая разработку и адаптацию интерфейсов, с помощью которых система будет общаться с пользователем и экспертом. Необходимо обратить особое внимание на языковые возможности интерфейсов, их простоту и удобство для управления работой ЭС. Система должна обеспечивать пользователю возможность легким и естественным образом уточнять непонятные моменты, приостанавливать работу и т.д. </p>
<p>Работа по доведению системы до промышленной, а затем и коммерческой версии носит главным образом, технологический характер.</p></learning:content>
<learning:isLectureOf rdf:resource="http://ailab.ifmo.ru/elearning/semanticWebCourse#m_ProductionRules"/>
<learning:hasResource rdf:resource="http://ailab.ifmo.ru/elearning/semanticWebCourse#p_IntroductionToSystemsBasedOnKnowledge"/>
</owl:NamedIndividual>
<!-- http://ailab.ifmo.ru/elearning/semanticWebCourse#l_OverviewOfModelsAndToolsForKnowledgeRepresentation -->
<owl:NamedIndividual rdf:about="http://ailab.ifmo.ru/elearning/semanticWebCourse#l_OverviewOfModelsAndToolsForKnowledgeRepresentation">
<rdf:type rdf:resource="&learning;Lecture"/>
<rdfs:label xml:lang="en">Overview of models and tools for knowledge representation</rdfs:label>
<rdfs:label xml:lang="ru">Обзор моделей и инструментов представления знаний</rdfs:label>
<learning:numberOfLecture rdf:datatype="&xsd;integer">2</learning:numberOfLecture>
<learning:content xml:lang="ru"><p><b> Слайд 1 </b></p>
<p><b> Слайд 2 </b></p>
<p>Под представлением знаний понимается методика и форма структурированного описания и хранения в памяти вычислительной машины знаний человека-эксперта. Существует множество различных способов представления знаний, и при построении новой экспертной системы может быть выбран один из них, или использоваться сочетание нескольких способов. Во многом, от выбранного способа зависит успех экспертной системы и эффективность ее работы. Каждый из способов обладает своими преимуществами при решении одних задач, и малоэффективен для других. Наиболее важными критериями, пожалуй, можно назвать качество решения, предоставляемого экспертной системой (то есть процент ошибок, скорость получения решения и пр.) и простоту понимания и модификации базы знаний. При выборе метода представления знаний можно руководствоваться общепринятыми для данной предметной области подходами. Так, например, в задачах проектирования распространены табличные описания, в медицине, как правило, постановка диагноза и лечение болезней описываются в свободной форме, с использованием неформальных правил. Решение игровых задач, доказательство теорем может быть описано с помощью языка логики.</p>
<p> Однако не всегда можно однозначно проецировать способ мышления человека во время решения задач на какую-либо определенную модель представления знания. Большинство задач на практике являются комплексными, и для формального описания знаний, необходимых для их решения, требуется использование нескольких различных моделей. Возможно, что в процессе проектирования потребуется изменить форму представления знаний, в целях повышения эффективности экспертной системы, открытости и модифицируемости базы знаний и пр. Определенные ограничения на доступные способы представления знаний накладывает и используемый инструментарий. </p>
<p> Формально представление – это множество синтаксических и семантических соглашений, которое делает возможным описание какого-либо предмета. В искусственном интеллекте под предметом понимается состояние некоторой предметной области или среды, а именно объекты среды, их свойства и отношения, которые существуют между ними. Синтаксис представления специфицирует набор правил, регламентирующих объединение символов для формирования корректных выражений на данном языке представления. А семантика – определяет, как должны интерпретироваться выражения, построенные в соответствии с синтаксическими правилами. </p>
<p><b>Слайд 3</b></p>
<p>Но ошибочно считать, что представление знаний – это простое кодирование информации. Замена одних символов на другие не решает проблемы неоднозначности, присущей человеческому языку. Так многие задачи, легко решаемые человеком, с трудом реализуются на машине. В качестве примера можно привести фразу, описывающую тривиальную бытовую ситуацию:</p>
<p>«Молотком стукнули по графину, и он разбился»</p>
<p>Для человека очевиден ответ на вопрос «что разбилось?». Но чтобы на этот вопрос смогла ответить машина, следует ввести какое-либо правило, связывающее местоимение «он» с представленными в данной фразе объектами. Например, можно задать очередность следования предметов во фразе, и считать что второй предмет – графин – должен разбиться. Однако, очевидно, что этот подход работает не всегда:</p>
<p> «Графином стукнули по кирпичу, и он разбился» </p>
<p> Для человека очевидно, что и в первом, и во втором случае разбиться должен именно графин. Это объясняется тем, что начиная с первых лет жизни люди накапливают предварительное знание о мире. Но чрезвычайно трудно такие знания представлять в машинной памяти. </p>
<p><b> Слайд 4 </b></p>
<p>Конечно, существуют и другой тип задач, основанных на применении знаний. Например, задачи математической логики. Пусть нужно определить является ли теоремой логики высказываний формула:</p>
<p>(α ∧ (β → γ)) → ((δ ∨ α ) ∧ (¬γ → ¬β)).</p>
<p>Хотя сама запись и является непротиворечивой, человеку решить это задание довольно трудно, даже если он легко может изложить правила построения формул в логике высказываний. Машина же, напротив, легко справляется с интеллектуальными задачами такого рода.</p>
<p>В данном примере проблема заключается в необходимости сложных рассуждений для интерпретации записанных знаний. Очевидно, такой формат представления знаний также не является предпочтительным.</p>
<p><b> Слайд 5 </b></p>
<p>Различие между приведенными на предыдущих двух слайдах примерами заключается в том, что знания, необходимые для решения задач в логике высказываний, можно выразить в виде нескольких компактных правил. А для правильного понимания фраз типа «X-ом стукнули по Y-ку, и он разбился» требуется множество знаний об окружающих нас объектах, которое на первый взгляд может показаться бесконечным, и множество исключений вроде пластиковых молотков и бронзовых или каменных ваз.</p>
<p><b> Слайд 6 </b></p>
<p>С учетом сказанного выше, можно переформулировать определение для представления знаний следующим образом: «Представление знаний — это высокоуровневое описание понятий и действий, необходимых для решения проблемы на формальном языке, пригодном для построения компьютерной системы с одной стороны, и легком для понимания человеком, с другой».</p>
<p><b> Слайд 7 </b></p>
<p>Представление знаний в табличной форме применялось еще в Вавилонском царстве, где правила умножения клинописных чисел наносились на глиняные таблички для изучения. Табличная форма записи легка для восприятия человеком. Правила в такой форме легко поддаются обработке или исполнению.</p>
<p> Табличное представление знаний в памяти компьютера было впервые применено в конце 1950-х гг. компаниями General Electric, the Sutherland Corporation, the United States Air Force и получила название таблицы решений. Эти организации работали над проектом комплексного ведения файлов. Попытки поставить задачу с использованием традиционных блок-схем, структурных схем и комментариев закончились неудачей после шести лет работы, и это было типично для большинства больших проектов в те времена. Тогда в 1958 г. четыре аналитика, используя таблицы решений, смогли успешно поставить задачу менее чем за четыре недели, после чего она была решена в кратчайшие сроки. </p>
<p> Компания Sutherland Corporation также использовала таблицы решений для составления спецификаций программ, после чего программистам оставалось лишь перевести данные из таблицы в машинные коды. General Electric, обнаружив, что блок-схемы и комментарии оказались полностью неприменимы для задач со сложной логикой, автоматизировала процесс непосредственной генерации программного кода из таблиц. В начале 1960-х гг. таблицы решений широко применяются для обобщения программного кода и разработки алгоритмов оптимизации. Название таблицы решений становится общепринятым названием данного метода. В 1970 г. канадская ассоциация по стандартизации вводит стандарт для таблиц решений (DECISION TABLES, CSA Standard Z243.1,1970). </p>
<p> Более подробно с историей создания ПО для таблиц решений можно ознакомиться по ссылке, указанной внизу на слайде. </p>
<p><b> Слайд 8 </b></p>
<p>Таблицы решений (decision table), или как их еще называют — логические таблицы, отображают соотношения между комбинациями условий и комбинациями действий. В различных приложениях, таблицы решений могут иметь различную форму. Одной из возможных форм, является та, где каждое условие может быть сопоставлено с какой– либо определенной ситуацией или объектом (см. пример таблицы на слайде). Если некоторое условие или действие имеет место для данной ситуации, то в соответствующую ячейку таблицы заносится 1, в противном случае используется символ 0. Также можно задать последовательность действий, используя вместо символа «1» числа 1, 2, 3..., показывающие очередность выполнения действий.</p>
<p><b> Слайд 9 </b></p>
<p>В таблице решений выделяют четыре компонента: перечень условий, перечень действий, матрицу соответствия условий и матрицу возможных действий. Обычно в ячейках матрицы соответствия условий используются символы 1/0, Да/Нет, Y/N. Если наличие или отсутствие данного условия не критично для выбранной ситуации, можно также использовать символ «—», обозначающий «не имеет значения». Однако в общем случае в ячейках таблицы решений могут использоваться любые символы, отражающие суть условия или действия: значения и диапазоны значений, коды и номера, символьные данные и т.п. В качестве действия может выступать также набор инструкций, подлежащих выполнению в случае выполнения условий.</p>
<p>Структура таблицы модифицируется под конкретную задачу. Например, в процессе использования можно легко добавить столбец с кодом операции, которую необходимо выполнять для проверки заданного условия. Возможно использование упрощенного варианта таблицы, состоящей из пар «условие–действие» без указания каких-либо объектов или ситуаций. Не представляет труда и расширение таблицы на новые классы объектов — необходимо лишь добавить в конец таблицы недостающие столбцы. А добавление новых строк, содержащих возможный перечень условий и действий, напротив, представляется несколько более сложным, так как потребуется внести изменения для всех существующих записей (столбцов).</p>
<p> Алгоритм поиска решения по таблице решений тривиален и прост в реализации. Интерпретирующая программа получает на вход конкретизированный набор условий для заданной ситуации и осуществляет последовательный перебор, подыскивая столбцы, где этот набор выполняется. Если такие столбцы находятся, то выполняется действие, указанное для этой ситуации. </p>
<p><b> Слайд 10 </b></p>
<p>Таблицы решений позволяют сделать процесс формализации знаний достаточно простым, сводя его к нескольким типовым шагам. Для любой задачи эти шаги включают:</p>
<p> 1. Описание всех требуемых действий. </p>
<p> 2. Выявление перечня условий, необходимых для
выполнения указанных действий.</p>
<p> 3. Определение ключевого набора условий при решении проблемы. </p>
<p> 4. Поочередное описание ситуаций для частных решений проблемы.</p>
<p> Содержание этих шагов можно рассмотреть на простом примере: пусть необходимо принять решение о пересечении улицы в зависимости от всевозможных факторов. </p>
<p> Описание всех требуемых действий. В данном примере возможны всего два действия: «перейти улицу» и «стоять на месте». В действительности же количество возможных действий никак не связано со степенью сложности решаемой задачи. Не следует вводить избыточные действия там, где можно упростить описание. Например, в ситуации с переходом улицы можно было бы ввести действия: «перейти на зеленый свет светофора», «перейти на красный свет светофора», «перейти при любом сигнале светофора» и т.д. Очевидно, что такая избыточность не влияет на качество решения, т.к., в конечном итоге требуется принять решение идти или не идти. А вот практическое использование системы и ее поддержка в этом случае значительно усложняются. </p>
<p> Выявление перечня условий, необходимых для выполнения действий. Для выявления перечня возможных условий потребуются знание о предметной области, т.к. эти условия формулируются в терминах решаемой проблемы. В нашем примере мы можем ввести две группы условий: объективные и субъективные. Первые относятся к внешним факторам по отношению к лицу, принимающему решение. В данном примере это «свет светофора», «наличие движущихся машин» и «расстояние до них». Вторая группа условий характеризует некоторые внутренние характеристики проблемы. Для ситуации с пересечением дороги можно учесть, например, насколько спешит переходящий ее человек, и насколько он склонен к риску. </p>
<p> Определение ключевого набора условий при решении проблемы. От ключевого набора условий зависит глобальное решение проблемы. Т.е. при нарушении этих условий получить решение не возможно в принципе. Очевидно, при переходе дороги таким условием является наличие вблизи движущейся машины. Если машина есть, то дорогу переходить нельзя. </p>
<p> Поочередное описание ситуаций для частных решений проблемы. При описании частных решений не обязательно рассматривать все возможные варианты комбинаций условий. Как было показано выше, можно комбинировать условия, используя неопределенные значения в ячейках таблицы. Также можно использовать логическое отрицание, которое в ряде случаев упрощает описание ситуации. Например, вместо перечисления различных сигналов светофора, при котором действие разрешено, можно указать то, при котором оно запрещено «не красный» или «не зеленый» и т.п. </p>
<p><b> Слайд 11 </b></p>
<p>Рассмотрим неформальную задачу: предположим, необходимо ответить на вопрос «Чем заняться сегодня?» Одна из возможных таблиц решений для данной задачи представлена на слайде. В данном примере представлена таблица с сочетаниями вариантов всех возможных условий. Каждый столбец позволяет сформировать одно простое правило поведения. Для столбца номер 1 это будет: «Если сегодня рабочий день и сегодня не выходной и идет дождь, то отправиться на работу».</p>
<p><b> Слайд 12 </b></p>
<p>Однако достаточно беглого взгляда на таблицу чтобы определить главный недостаток данного примера — избыточность. Первая и вторая ситуация рекомендуют нам одно и то же — пойти на работу. Отличаются эти ситуации только одним условием: идет или не идет дождь.</p>
<p> Следовательно, можно объединить эти ситуации в одну, поставив при этом против условия «идет дождь» символ «—» (не имеет значения). Аналогично можно поступить с ситуациями 3 и 5 (отличается только ответ на вопрос «Сегодня рабочий день?»), 4 и 6 (отличается только ответ на вопрос «Сегодня выходной?»). </p>
<p><b> Слайд 13 </b></p>
<p>Таким образом, объединения похожих ситуаций, с одновременной заменой значений ответов на несущественные вопросы на прочерк, таблица решений примет следующий вид. Этот процесс называется оптимизацией таблицы решений. Первые три столбца таблицы теперь представляют составные правила для ситуаций, что позволяет значительно сократить размер таблицы.</p>
<p><b> Слайд 14 </b></p>
<p>Рассмотрим еще один пример построения таблицы решений на примере выбора оптических элементов в задаче синтеза оптической системы (объектива) в зависимости от значений параметров классификации по техническим характеристикам: J — светосила системы, W — угловое поле, F — фокусное расстояние, L — хроматический диапазон, Q — качество изображения (степень аберрационной коррекции), S — задний фокальный отрезок, D — положение входного зрачка. </p>
<p>1. Описание всех требуемых действий. В данном примере возможны всего четыре действия: рекомендовать элемент из списков базовых (B), коррекционных (C), светосильных (T) или широкоугольных (Y). Как уже было сказано, не следует вводить избыточные действия там, где можно упростить описание. Например, в данной ситуации можно было бы ввести действия для всех возможных разновидностей оптических элементов с учетом формы поверхности и толщины. Очевидно, что такая избыточность не влияет на качество решения, поскольку в конечном итоге требуется принять решение о выборе конкретного элемента из списков B, C, T или Y, поэтому достаточно просто указать его номер или код. </p>
<p>2. Выявление перечня условий, необходимых для выполнения указанных действий. Для выявления возможных условий потребуются знания о предметной области, поскольку эти условия формулируются в терминах решаемой проблемы. В нашем примере можно ввести три группы условий: по оптическим характеристикам (параметры J, W, F), по назначению (L, Q) и по конструктивным особенностям (S, D). Каждое из перечисленных условий разделяется на три диапазона значений, обозначенных индексами «0», «1» и «2», которые и будут записываться в таблице решений. Это значительно упрощает восприятие таблиц решений, т.к. вместо различных единиц измерения и различных диапазонов используются унифицированные обощеные индексные значения.</p>
<p>3. Определение ключевого набора условий при решении проблемы. В данном примере один из параметров классификации по техническим характеристикам является ключевым, а именно D — положение входного зрачка.</p>
<p>4. Поочередное описание ситуаций для частных решений проблемы. Повторимся, что при описании частных решений необязательно рассматривать все возможные варианты комбинаций условий, и можно комбинировать условия, используя неопределенные значения в ячейках таблицы, а также логическое отрицание. Таким образом, для каждого оптического элемента достаточно указать одно или нескоько условий, а не все.</p>
<p> 4. Поочередное описание ситуаций для частных решений проблемы. Повторимся, что при описании частных решений необязательно рассматривать все возможные варианты комбинаций условий, и можно комбинировать условия, используя неопределенные значения в ячейках таблицы, а также логическое отрицание. Таким образом, для каждого оптического элемента достаточно указать одно или несколько условий, а не все. </p>
<p> Один из возможных вариантов решений для описываемого примера приведен в на данном слайде. </p>
<p><b> Слайд 15 </b></p>
<p>Основным достоинством таблиц решений является высокая степень формализации, наглядности процесса принятия решений. Они строятся регулярным образом и могут наращиваться практически до бесконечности, то есть являются универсальным средством решения задач, для которых возможно описание ситуаций с помощью ограниченного набора условий, например, выбор конфигурации из заданного набора элементов или проектирование деталей, представляющих собой поверхности вращения.</p>
<p>Однако если различные ситуации характеризуются разными условиями, то таблицы решений становятся сильно разреженными и делают данный подход малоэффективным.</p>
<p><b> Слайд 16 </b></p>
<p>В настоящее время таблицы решений широко используются в задачах, связанных с логической обработкой данных. На рынке представлено множество компьютерных программ, основанных на использовании данной парадигмы. В качестве примера непосредственной реализации таблиц решений можно привести программу LogicGem фирмы Catalyst Development.</p>
<p> Демонстрационную версию этой программы можно найти на сайте разработчика http://www.catalyst.com/products/logicgem/. </p>
<p> Ссылка на методическое пособие http://books.ifmo.ru/file/pdf/497.pdf </p>
<p><b> Слайд 17 </b></p>
<p>В рамках данного курса практика по построению экспертной системы осуществляется в системе Drools, для которой разработан модуль Drools Expert. Этот модуль позволяет редактировать базу знаний с помощью таблиц решений. Ссылки на сайт разработчика и методическое пособие представлены на данном слайде.</p>
<p><b> Слайд 18 </b></p>
<p>Подход, во многом близкий к описанному выше, был предложен в системе STRIPS (сокр. от STanford Research Institute Problem Solver). Эту систему разработали в 1971 г. два исследователя — Ричард Файкс (Fikes) и Нильс Нильсон (Nilsson) [см. ссылку «*»]. Программа предназначалась для решения проблемы формирования плана поведения мобильного робота Shakey, перемещающего предметы через множество комнат. Текущее состояние окружающей среды — помещений и предметов в них — представляется набором выражений предикат–аргумент, которые в совокупности образуют модель мира. Поиск решения в этой системе был основан на методологии анализа целей и средств (mean–ends analysis) системы General Problem Solver, а для проверки истинности предварительных условий действия в текущем состоянии применялась методология доказательства теорем из системы QA3.</p>
<p><b> Слайд 19 </b></p>
<p>Фотография робота Shakey представлена на данном слайде. Это был один из первых мобильных роботов.</p>
<p><b> Слайд 20 </b></p>
<p>Фотография робота Shakey в работе. Робот определяет препятствия и строит план дальнейшего маршрута.</p>
<p><b> Слайд 21 </b></p>
<p>На данном слайде представлена фотография групп разработчиков с роботом. В 1983 году Shakey был передан в музей компьютерной истории в Вашингтоне. Ссылка на сайт музея приведена над фотографией.</p>
<p><b> Слайд 22 </b></p>
<p>Общепринятая для ИИ конструкция предикат–аргумент, определяется следующим образом: </p>
<p><предикат> ::= <предикатный символ> (<аргумент1>, ..., <аргументn>).</p>
<p>Различают одноместные или n-местные предикаты. В случае одноместного предиката считается, что аргумент обладает свойством, выраженным предикатным символом. N-местный предикат описывает отношение между объектами, которые заданы аргументами.</p>
<p>Примером ситуации, описываемой с помощью двухместного предиката, может быть нахождение робота в определенной комнате:</p>
<p>Пat(robot, roomA).</p>
<p>Данный предикат означает, что объект robot находится в комнате roomA. Порядок следования аргументов в предикате определяется разработчиком, но должен быть неизменным везде, где этот предикат используется. Можно было бы написать at(roomA, robot) и придать этой записи аналогичный смысл, но использовать одновременно в пределах одной базы знаний записи at(robot, roomA) и at(roomA, robot) нельзя.</p>
<p><b> Слайд 23 </b></p>
<p>С помощью множества предикатов можно описать текущую модель мира, то есть набор конкретных объектов, их свойств и отношений. Например, исходная ситуация может описываться следующим множеством:</p>
<p>W1 = { at(robot, roomA), at(box1, roomB), at(box2, roomC) }.</p>
<p>Конечная ситуация также задается множеством предикатов:</p>
<p>WK = { at(box1, roomА), at(box2, roomВ) }.</p>
<p><b> Слайд 24 </b></p>
<p>Для описания действий, которые может выполнять робот, используются операторы, применяемые к текущей модели мира. Эти операторы позволяют добавлять или изымать некоторые факты из текущей модели. Например, действие move(X, Y) («Переместить робота из комнаты X в комнату Y») в модели W1 приводит к формированию новой модели W2. При этом факт at(robot, roomA) будет изъят из модели, а at(robot, roomВ) добавлен.</p>
<p>Множество допустимых операций, таких как перемещение робота или перенос предметов, кодируются в таблице операторов, как показано на данном слайде, которая близка по структуре к таблице решений, но предполагает обязательное наличие модели мира.</p>
<p>Второй оператор push(X, Y, Z) описывает манипуляции с моделью мира для действия «Перенести ящик X из комнаты Y в комнату Z».</p>
<p><b> Слайд 25 </b></p>
<p>Как уже было отмечено, задачей системы STRIPS является формирование плана действий робота для достижения цели. Таким образом, результатом работы системы должна быть последовательность операторов, применение которых к исходной модели мира позволяет достичь целевой модели. Зная целевое состояние среды, можно было бы перебирать последовательно или случайно комбинации операторов, пока цель не будет достигнута. Но экспоненциальный рост количества вариантов при каждой новой проверке делает такой подход неприемлемым на практике.</p>
<p>Для предотвращения экспоненциального роста вариантов возможных решений в качестве основы для работы системы был предложен метод «анализ целей и средств», идея которого состоит в том, чтобы с каждой новой операцией отличие между текущим состоянием и целевым уменьшалось. Это предполагает наличие меры оценки «расстояния» в пространстве решений. Например, если очередная подцель сформулирована в виде предиката:</p>
<p>at(box1, roomА),</p>
<p>а ящик box1 находится в комнате roomВ, то перемещение робота из комнаты roomА в комнату roomС не приблизит текущее состояние к целевому (для модели W1). А перемещение из комнаты roomА в комнату roomВ, наоборот, уменьшит расстояние между текущим и целевым состоянием, так как позволит на следующем шаге переместить ящик box1 в комнату roomА.</p>
<p>Алгоритм поиска требуемых операторов системы STRIPS основан на сопоставлении очередной подцели и списков добавления в таблице операторов. Для того чтобы узнать, применимо ли действие в некотором заданном состоянии, мы должны проверить истинность формулы в предварительном условии, т.е. доказать, что эта формула является логическим следствием из аксиом модели мира данного состояния. Если предварительное условие истинно, то действие применимо. Новые подцели выбираются из списка предварительного условия найденного оператора. Так, например, цель at(box1, roomА) соответствует элементу at(X, Z) в списке добавлений оператора push(X, Y, Z). Унификация этих двух предикатов (Х соответствует box1, а Z — roomA) позволяет выбрать из предварительного условия оператора новые подцели:</p>
<p>at(robot, Y), at(box1, Y).</p>
<p>Далее необходимо найти в модели мира предикат, содержащий объект (в данном случае это комната), который может конкретизировать символ Y. Таким предикатом может быть, например, at(box1, roomB). Поставив в соответствие с символом Y объект roomB можно окончательно сформулировать очередные подцели:</p>
<p>at(robot, roomB) и at(box1, roomB). </p>
<p>Теперь первый элемент в этом списке указывает желаемое (целевое) положение робота, а второй элемент уже присутствует в модели мира W1. Следовательно, после применения оператора push к модели мира W1, необходимо добавить at(robot, roomB) и удалить at(robot, roomA). В результате получится новая модель: </p>
<p>W2 = { at(robot, roomB), at(box1, roomB), at(box2, roomC) }. </p>
<p>Отметим, что если формула из списка добавления уже присутствует в текущем состоянии модели мира (состоянии, к которому применяется действие), то эта формула не будет добавлена вторично. Аналогично, если формула из списка удаления уже отсутствует в текущем состоянии, то ее удаление игнорируется. Все формулы, которые не упоминаются в таблице оператора, остаются неизменными в новом состоянии. Это последнее утверждение в литературе называют предположением STRIPS (STRIPS assumption). Описанная процедура повторяется до тех пор, пока очередная модель не будет соответствовать целевой. </p>
<p><b> Слайд 26 </b></p>
<p>Так как таблица операторов, модель мира и цели представлены с помощью одного и того же синтаксиса в виде конструкций предикат–аргумент, то, применяя описанную выше схему сопоставления, программа довольно просто находит, какие именно операции нужно выполнить для достижения поставленной цели. Всё, что нужно для этого сделать, — просмотреть списки добавлений в описании операторов и найти в них элемент, соответствующий заданной цели.</p>
<p>Однако существуют ситуации, в которых система STRIPS оказывается не способной решать поставленные задачи. Одна из таких ситуаций получила название аномалия Зюссмана (Sussman Anomaly). Подробнее эти вопросы будут рассмотрены в лекции по нелинейному планированию.</p></learning:content>
<learning:isLectureOf rdf:resource="http://ailab.ifmo.ru/elearning/semanticWebCourse#m_ProductionRules"/>
<learning:hasResource rdf:resource="http://ailab.ifmo.ru/elearning/semanticWebCourse#p_OverviewOfModelsAndToolsForKnowledgeRepresentation"/>
</owl:NamedIndividual>
<!-- http://ailab.ifmo.ru/elearning/semanticWebCourse#l_SemanticNetworks -->
<owl:NamedIndividual rdf:about="http://ailab.ifmo.ru/elearning/semanticWebCourse#l_SemanticNetworks">
<rdf:type rdf:resource="&learning;Lecture"/>
<rdfs:label xml:lang="en">Semantic networks</rdfs:label>
<rdfs:label xml:lang="ru">Семантические сети</rdfs:label>
<learning:numberOfLecture rdf:datatype="&xsd;integer">5</learning:numberOfLecture>
<learning:hasResource rdf:resource="http://ailab.ifmo.ru/elearning/semanticWebCourse#p_SemanticNetworks"/>
</owl:NamedIndividual>
<!-- http://ailab.ifmo.ru/elearning/semanticWebCourse#l_TheTheoryAccordingToTheRulesProductionModelRulesAndMetapravila -->
<owl:NamedIndividual rdf:about="http://ailab.ifmo.ru/elearning/semanticWebCourse#l_TheTheoryAccordingToTheRulesProductionModelRulesAndMetapravila">
<rdf:type rdf:resource="&learning;Lecture"/>
<rdfs:label xml:lang="en">The theory according to the rules (production model, rules and metapravila)</rdfs:label>
<rdfs:label xml:lang="ru">Теория по правилам (продукционная модель, правила и метаправила)</rdfs:label>
<learning:numberOfLecture rdf:datatype="&xsd;integer">3</learning:numberOfLecture>
<learning:content><p><b> Слайд 1 </b></p>
<p><b> Слайд 2 </b></p>
<p>Продукционная система (production system) — это модель представления, основанная на продукционных правилах (production rule), позволяющая описывать знания о решении задач в виде правил «ЕСЛИ условие, ТО действие» (IF… THEN…). Впервые идея представления знаний в виде продукций появилась в работе Эмиля Поста (Emil Leon Post) в 1943 году в ходе исследований нормальных исчислений, являющихся частным случаем канонической системы Поста. Формальные вычисления на множестве продукций также основаны на теории синтаксического анализа. А управление продукционными системами основано на Марковских алгоритмах, представляющих собой упорядоченную группу продукций, применяемых в порядке приоритета к входной строке.</p>
<p> Пост доказал, что любая система в математики или логике может быть представлена в виде продукционных правил. Другими словами, продукционная система эквивалентна машине Тьюринга, что делает данный подход принципиально пригодным для решения широкого класса задач. Таким образом, продукционная система является общей моделью вычислений, которая может быть запрограммирована для решения любых задач. Но наиболее эффективным применением этой модели являются интеллектуальные задачи. </p>
<p> Правила обеспечивают формальный способ представления рекомендаций, указаний или стратегий. Они идеально подходят в тех случаях, когда знания предметной области возникают из эмпирических ассоциаций, накопленных за годы работы по решению задач в данной области. Представления знаний в виде продукций наиболее распространено в экспертных системах, так как запись знаний фактически ведется на подмножестве естественного языка. Следствием этого является то, что правила легко читаются, их просто понять и модифицировать, эксперты без труда могут сформулировать новое правило или указать на ошибочность какого-либо существующего. </p>
<p><b>Слайд 3</b></p>
<p>Основными компонентами представленной на данном слайде архитектуры продукционной системы являются:</p>
<p> - База знаний (БЗ) продукционных правил;</p>
<p> - рабочая память; </p>
<p> - цикл управления распознавание–действие. </p>
<p>Моделирование решения задачи основано на процессе сопоставления с образцом (pattern matching), в ходе которого текущее состояние решения сравнивается с имеющимися знаниями для определения дальнейших действий.</p>
<p><b> Слайд 4 </b></p>
<p> В БЗ содержится множество продукционных правил или просто продукций (productions), являющихся парами условие–действие, которые определяют элементарные шаги решения задачи.</p>
<p> Условная часть (IF–part) правила является шаблоном (образцом), по которому можно определить, в какой момент необходимо использовать (активировать) данное правило для выполнения очередного этапа решения задачи. Часть действия (THEN–part) описывает соответствующий шаг решения. Условную часть правила также называют антецедентом (antecedent), а часть действия — консеквентом (consequent).</p>
<p><b> Слайд 5 </b></p>
<p>Рабочая память (working memory) содержит текущее описание модели мира в процессе рассуждений. В этой модели содержится набор образцов, инициализируемый начальным описанием задачи.</p>
<p><b> Слайд 6 </b></p>
<p> В управляющем цикле распознавание–действие (the recognize-act cycle) осуществляется поиск допустимых продукций, или сравнение образцов из рабочей памяти с условными частями правил в БЗ.</p>
<p> Если условие какого-либо правила соответствует образцу, то это правило помещается в конфликтное множество (conflict set). Продукции, содержащиеся в конфликтном множестве, называют допустимыми, так как они согласованы с текущим состоянием рабочей памяти.</p>
<p> После того, как закончит работу цикл распознавание–действие, осуществляется процесс разрешения конфликтов (conflict resolution), в ходе которого выбирается и активизируется (возбуждается) одна из допустимых продукций. </p>
<p> Наконец, в соответствии с частью действия активированного правила осуществляется модификация рабочей памяти. Весь этот процесс повторяется до тех пор, пока образцы в рабочей памяти не будут соответствовать ни одному из правил БЗ.</p>
<p><b> Слайд 7 </b></p>
<p> Стратегии разрешения конфликтов отличаются в различных реализациях продукционной системы и могут быть достаточно простыми. Например, выбирается первое из допустимых правил. Однако многие системы допускают использование сложных эвристик для осуществления выбора из конфликтного множества. Например, в системе OPS5 поддерживаются следующие стратегии разрешения конфликтов [Brownston, Farrel, Kant, Martin, 1985]:</p>
<p> 1. Рефракция (refraction) для предотвращения зацикливания: после активизации правила оно не может быть использовано снова, пока не измениться содержимое рабочей памяти.</p>
<p> 2. Новизна (recency) позволяет сосредоточить поиск на одной линии рассуждения: предпочтение отдается правилам, в условии которых встречаются факты, добавленные в рабочую память последними.</p>
<p> 3. Специфичность (specifity) отдает предпочтение более конкретным правилам перед более общими: одно правило более специфично (конкретно), чем другое, если оно содержит больше фактов в условной части.</p>
<p><b> Слайд 8 </b></p>
<p> В современной системе DROOLS имеется значительное количество реализованных стратегий, а также можно определить свою: </p>
<p> 1. Приоритет («выпуклость») - Salience - является формой приоритета. Каждое правило имеет целочисленный атрибут Salience, по-умолчанию нулевой. Правила с более высокими значениями получают более высокий приоритет в очереди активации.</p>
<p> 2. Новизна (recency) учитывает счетчик, изменяемый при каждой активации правила. Приоритет отдается правилам с более высоким значением счетчика.</p>
<p> 3. Первенство (Primacy) является противоположной стратегией по отношению к «новизне». Приоритет отдается правилам с более низким значением счетчика.</p>
<p> 4. FIFO (First In First Out) - стратегия в глубину. Только что активированные правила помещаются вверх списка конфликтного множества.</p>
<p> 5. LIFO (Last In First Out) - стратегия в ширину. Только что активированные правила помещаются вниз списка.</p>
<p> 6. Сложность (Complexity) - это стратегия, основанная специфичности и принимающая во внимание сложность конфликтующих правил.</p>
<p> 7. Простота (Simplicity) - это также стратегия, основанная специфичности, принимающая во внимание простоту конфликтующих правил</p>
<p> 8. Порядок загрузки (LoadOrder) - Правила с большим числом LoadOrder размещаются в верхней части списка.</p>
<p> Случайность (Random) - активируется случайно выбранное из конфликтного множества правило.</p>
<p><b> Слайд 9 </b></p>
<p> Чистая продукционная модель не предусматривает выхода из тупиковых ситуаций в процессе поиска. Работа продолжается, пока не исчерпаны все возможные варианты.
Гораздо более эффективным является модификация цикла управления с механизмом возврата (cycle back) в предыдущее состояние модели мира, позволяющего находить более точные решения задачи.</p>
<p><b> Слайд 10 </b></p>
<p> Продукционная модель позволяет имитировать различные аспекты поведения человека при решении задач. БЗ продукций соответствует навыкам решения задач в долговременной памяти. Подобно знаниям в долговременной памяти продукционные правила не изменяются в процессе решения задачи. Новые навыки могут быть просто добавлены в БЗ при необходимости.</p>
<p> Рабочая память соответствует кратковременной памяти. В ходе решения задачи «фокус внимания» переходит от одного шага к другому, при этом после получения решения содержимое рабочей памяти не сохраняется.</p>
<p><b> Слайд 11 </b></p>
<p> В качестве условия и действия в правилах может быть, например, предположение о наличии того или иного свойства, принимающее значение истина или ложь. При этом термин действие следует трактовать широко: это может быть директива к выполнению какой-либо операции, рекомендация, или модификация базы знаний — предположение о наличии какого-либо производного свойства. В правилах несколько выражений могут быть объединены логическими связками И, ИЛИ, НЕ.</p>
<p> Примеры продукции показаны на данном слайде. Обозначим их как П1 и П2.</p>
<p><b> Слайд 12 </b></p>
<p> Последовательное активирование правил порождает цепочку вывода (reasoning). Цепочка вывода, полученная в результате последовательного выполнения правил П1 и П2 показана на данном слайде. Эта цепочка показывает, как на основании правил и исходных фактов выводит заключение о возможности получения кредита. В ходе первой итерации вывода управляющий цикл, сопоставляя факт «клиент работает на одном месте более двух лет» и правило П1 добавляет в рабочую память новый факт (образец) «клиент имеет постоянную работу». Далее на основании содержимого рабочей памяти и правила П2 выводится новый факт «клиент может претендовать на получение кредита», который и является окончательным решением, так как цикл распознавание–действие останавливается и процесс вывода на этом завершается.</p>
<p><b> Слайд 13 </b></p>
<p>Монотонным выводом в продукционных системах называют вывод, при котором факты не удаляются из рабочей памяти.
Немонотонный вывод допускает удаление фактов из рабочей памяти. При немонотонном выводе существенную роль играет порядок применения продукционных правил. </p>
<p><b> Слайд 14 </b></p>
<p> Вывод решения может осуществляться в двух направлениях: от данных задачи к цели и в обратном направлении от цели к исходным данным. Вывод на основе данных (data–driven search), процесс решения задачи начинается с исходных фактов. Затем, применяя допустимые правила, осуществляется переход к новым фактам. И так до тех пор, пока цель не будет достигнута. Этот процесс также называют прямой цепочкой вывода (forward chaining).</p>
<p> Вывод от цели (goal–directed strategy) начинается от одной из допустимых целей, и рассматриваются пути, ведущие к достижению этой цели. Таким образом, определяется последовательность правил, позволяющих найти решение. Процесс повторяется для всех заданных в задаче целей. Такой способ поиска называют также обратной цепочкой вывода (backward chaining). Выбор направления поиска зависит от конкретной задачи, структуры исходных данных и целей, способов реализации алгоритмов поиска. Следует отметить, что, как правило, в реальных системах используются комбинации обоих способов вывода.</p>
<p><b> Слайд 15 </b></p>
<p> Прямая цепочка рассуждений применяется в задачах, где на основании имеющихся фактов необходимо определить тип (класс) объекта или явления, выдать рекомендацию, определить диагноз и т.п. К таким задачам относятся, например, интерпретация данных, проектирование, классификация и пр. Вывод на основе данных применим к решению задач в следующих случаях:</p>
<p> - Все или большинство данных заданы в пространстве задачи. Например, задача интерпретации состоит в выборе этих данных и в представлении их для использования в системах интерпретации более высокого уровня.</p>
<p> - Существует большое количество потенциальных целей, но всего лишь несколько способов представления и применения исходных фактов. Примером является экспертная система DENDRAL, предназначенная для исследования молекулярных структур органических соединений на основе формул, данных масс-спектрографа и знаний из химии. Для любого органического соединения существует чрезвычайно большое число возможных структур. Однако данные масс-спектрографа позволяют программе оставить лишь небольшое число таких комбинаций.</p>
<p> - Сформировать цель или гипотезы очень трудно в силу избыточности исходных данных или большого числа конкурирующих гипотез.</p>
<p> Таким образом, при поиске на основе данных исходные факты в постановке задачи используются для формирования возможных путей ее решения.</p>
<p><b> Слайд 16 </b></p>
<p> Алгоритм прямого вывода обычно основан на стратегии поиска в ширину: в рабочую память помещаются исходные факты и далее ее содержимое последовательно сравнивается с предпосылками каждого правила в БЗ. Если содержимое рабочей памяти приводит к активизации какого-либо правила, то после модификации рабочей памяти анализируется следующее правило. Когда первый проход по правилам завершается, процесс повторяется, начиная с первого правила.</p>
<p><b> Слайд 17 </b></p>
<p> Рассмотрим пример миниатюрной экспертной системы для фондовой биржи из книги. БЗ подобной ЭС может включать, например, следующие продукционные правила (см. слайд).</p>
<p><b> Слайд 18 </b></p>
<p> Предположим, пользователь сообщил системе, что валютный курс доллара падает по отношению к основным валютам других стран, и попросил консультацию в области биржевых операций. Цель в данном случае заключается в выборе правильного поведения на бирже, но останется ли при этом клиент в выигрыше, зависит от пока еще не определённых условий. На основании запроса пользователя инициализируется исходное состояние рабочей памяти путем добавления в нее факта: «Валютный курс доллара падает».</p>
<p><b> Слайд 19 </b></p>
<p> Для приведённого примера необходимо, чтобы в условной части какого-либо правила содержалось бы условие: «Валютный курс доллара падает».</p>
<p> Такое условие содержится только в правиле 3: «ЕСЛИ Валютный курс доллара падает, ТО Процентные ставки растут».
В соответствии с этим правилом можно сделать вывод о росте процентных ставок. О «Валютном курсе доллара» упоминается также в правиле 4. Но условие, записанное в этом правиле, звучит следующим образом: «ЕСЛИ Валютный курс доллара растет, ТО…».</p>
<p> Это условие не соответствует исходному состоянию падения валютного курса доллара, и поэтому правило 4 в дальнейших рассуждениях не будет участвовать. Следовательно, единственное изменение на этом шаге будет произведено после возбуждения правила 3, и в рабочую память добавится новый факт: «Процентные ставки растут».</p>
<p><b> Слайд 20 </b></p>
<p> Рассуждения ещё не закончены, так как необходимо проверить, не приведёт ли добавление в рабочую память нового факта к другим выводам. В условной части правила 2 как раз и используется данный факт: «ЕСЛИ Процентные ставки растут, ТО Уровень цен на бирже падает».</p>
<p> Соответственно, после активизации этого правила в рабочую память системы добавляется факт: «Уровень цен на бирже падает».</p>
<p> Рассуждения продолжаются подобным образом, пока не будут рассмотрены все возможные ситуации. Если после выполнения проверки всех правил, но ни в одном из них в условной части не упоминается уровень цен на бирже, то на этом рассуждения заканчиваются. Пользователю можно сообщить следующее: «Когда обменный курс доллара падает, растут процентные ставки и уровень цен на бирже падает». В реальной жизни такое заключение потребовало бы более сложных правил, однако система, реализующая прямую цепочку рассуждений, оперирует только теми данными, которые есть в базе знаний.</p>
<p><b> Слайд 21 </b></p>
<p> Обратная цепочка рассуждений применяется в задачах, соответствующих процессу проверки гипотез при решении проблем человеком — для заданной ситуации необходимо определить условия к ней приводящие. Обратная цепочка применима также, если требуется объяснить, как было получено решение. Процесс поиска от цели к данным рекомендован в следующих случаях:</p>
<p> - Цель поиска явно присутствует в постановке задачи или может быть легко сформулирована. Многие диагностические системы рассматривают возможные диагнозы, систематически подтверждая или опровергая некоторые из них способом поиска от цели.</p>
<p> - Имеется слишком большое число правил, которые на основе исходных фактов продуцируют возрастающее число заключений или целей. Своевременный отбор целей позволяет отсеять множество тупиковых ветвей, что сокращает пространство поиска.</p>
<p> - Исходные данные не приводятся в задаче, но подразумевается, что они должны быть известны или могут быть легко получены. Системы медицинской диагностики предлагают множество симптомов или результатов лабораторных анализов, подтверждающих или опровергающих диагноз.</p>
<p><b> Слайд 22 </b></p>
<p> При поиске от цели подходящие правила или шаги решения в основном применяются для исключения неперспективных ветвей поиска. Алгоритм обратного вывода обычно основан на стратегии поиска в глубину: в рабочую память помещаются целевые факты, и далее ее содержимое последовательно сравнивается с заключением каждого правила в БЗ. Если содержимое рабочей памяти соответствует какому-либо правилу, то факты, указанные в условной части данного правила помещаются в рабочую память и становятся новыми подцелями на следующей итерации работы продукционной системы. Система работает до тех пор, пока все подцели в рабочей памяти не будут подтверждены продукционными правилами. В этом случае исходная гипотеза будет истинной. В противном случае — ложной.</p>
<p><b> Слайд 23 </b></p>
<p> В качестве примера рассмотрим консультирующую экспертную систему для поддержки принятия решений директором некоторого предприятия при приеме нового сотрудника на работу (пример взят из книги [Levine I. Robert, Diane E. Drang, Barry Edelson. A Comprehensive guide to AI and expert system. Byte Books, 1988.]). Поскольку в задаче необходимо выбрать один из нескольких возможных вариантов (должностей), для её решения можно воспользоваться обратной цепочкой рассуждений. В действительности ответ уже существует. Перед директором сидит человек и всеми силами старается произвести на него хорошее впечатление. Если директора этот человек устраивает, для него нужно подобрать подходящую должность. Директору необходимо задать посетителю такие вопросы, ответы на которые дадут возможность сделать правильный выбор. Для описания подобных задач обычно используются диаграммы, которые называются деревьями решений. Деревья решений предоставляют необходимую наглядность и позволяют проследить ход рассуждений.
Каждой вершине присваивается номер, по которым можно на них ссылаться. Вершины в форме окружностей, содержащие вопросы, называются вершинами решений. Прямоугольные вершины содержат цели диаграммы и соответствуют логическим выводам. Линии показывают направление рассуждений. Выбор ветви, выходящей из вершины, определяется проверкой условия, содержащегося в вершине.</p>
<p><b> Слайд 24 </b></p>
<p> В дереве решений обеим частям правила соответствуют связанные между собой вершина решения и вершина логического вывода. Условная часть содержит все вершины решения, находящиеся на пути к логическому выводу, т.е. каждая вершина решения на пути к выводу — это одно условие части ЕСЛИ. Вывод же составляет часть правила ТО. Таким образом, процесс формирования правил для всех возможных логических выводов состоит из следующих шагов:</p>
<p> 1. Выбрать из дерева решений вершину вывода и зафиксировать её.</p>
<p> 2. Найти вершину решения, расположенную слева от выбранной вершины вывода и связанную с ней ветвью, и зафиксировать её.</p>
<p> 3. Повторять шаг 2 до тех пор, пока не будут рассмотрены все вершины решения, расположенные левее зафиксированной вершины вывода или не встретится новая вершина вывода. Если встретилась вершина вывода, то её надо зафиксировать и прекратить выполнение шага 2. Выполнение также прекращается, если исчерпаны все вершины.</p>
<p> 4. Каждая вершина решения, составляющая путь, — это одна из переменных части ЕСЛИ правила. Значение, связанное с ветвью, представляет собой условие. Переменные условной части правила объединяются логическим оператором И.</p>
<p> 5. Выбранный логический вывод перенести в часть ТО правила.</p>
<p><b> Слайд 25 </b></p>
<p> На данном слайде приведен пример пути на дереве решений, из которого можно составить правило 1→4→6, а также соответствующее правило: «ЕСЛИ Посетитель имеет ученое звание И Посетитель сделал важное открытие, ТО Предложить посетителю должность научного сотрудника».</p>
<p><b> Слайд 26 </b></p>
<p> Для данного примера также можно сформулировать следующие продукционные правила (см. слайд).</p>
<p><b> Слайд 27 </b></p>
<p> Рассмотрим работу обратной цепочки рассуждений на примере подтверждения или опровержения запроса пользователя. Предположим, что претендент на работу хочет получить должность инженера–конструктора. В этом случае в рабочей памяти окажется следующая запись: «Предложить посетителю должность инженера–конструктора».</p>
<p><b> Слайд 28 </b></p>
<p> Правило 6 содержит в заключении данный факт, следовательно, система перейдет к рассмотрению новых подцелей:</p>
<p> «Возможно, что посетитель будет принят на работу»,</p>
<p> «Средний бал посетителя за время учебы».</p>
<p> Второй факт может быть запрошен у пользователя, а первый факт необходимо попытаться вывести из БЗ.</p>
<p><b> Слайд 29 </b></p>
<p> В заключении правила 2 указан этот факт, следовательно следующей подцелью будет факт из условной части правила 2: «Посетитель имеет ученое звание».</p>
<p> Факт, соответствующий новой подцели можно выяснить у пользователя. Таким образом, для подтверждения или опровержения поставленной перед системой цели пользователю необходимо будет ответить на следующие вопросы:</p>
<p> - «Какой средний бал получен посетителем за время учебы?»</p>
<p> - «Имеет ли посетитель ученое звание?»</p>
<p> Если пользователь введет ответы, например, 4,5 и ДА, соответственно, то заданная цель будет подтверждена. А если ответы будут, например, 3,2 и НЕТ, то ответ системы на запрос пользователя будет отрицательный.</p>
<p><b> Слайд 30 </b></p>
<p> Разделение базы знаний и механизма вывода является сильной стороной экспертных систем. В процессе вывода решения все правила системы равнозначны и самодостаточны, то есть все необходимое для активизации правила содержится в его условии, и одни правила не могут непосредственно вызывать другие. Работа машины вывода не зависит от предметной области, что делает ее универсальной. Но иногда для получения решения требуется вмешательство в стандартный процесс вывода. Для этих целей некоторые продукционные системы позволяют вводить в базу знаний специальные правила для управления процессом вывода — метаправила. Метаправила не принимают непосредственного участия в процессе формирования рассуждений, а определяют приоритет выполнения или исключают из рассмотрения обычных правила и выполняются в первую очередь. Таким образом, в базе знаний вводится определенное структурирование и упорядочивание правил.</p>
<p><b> Слайд 31 </b></p>
<p> Предпосылки правила можно упорядочить таким образом, что наиболее вероятные отрицательные ответы или простые подтверждения истины будут проверяться первыми.
На слайде приведен пример подобного метаправила, сокращающего цепочку вывода.</p>
<p><b> Слайд 32 </b></p>
<p> Можно также сформулировать пример метаправила, касающегося общей стратегии вывода и не связанного с какой-либо конкретной предметной областью.</p>
<p> Интерес к подобного рода обобщенным формулировкам знаний достаточно высок. Идея использования метаправил является весьма продуктивной, но, тем не менее, метаправилами следует пользоваться осмотрительно, учитывая возможные исключительные ситуации. Планирование порядка правил, определение стоимости отдельных проверок и т.п. — действия, эвристичные по своей природе. Эти подходы, с одной стороны, отражают действия человека-эксперта при решении проблемы, но, с другой стороны, могут давать и ошибочные результаты.</p>
<p><b> Слайд 33 </b></p>
<p> Rete — эффективный алгоритм сопоставления с образцом для продукционных систем, экспертных систем и баз знаний, созданный Чарльзом Форги из Университета Карнеги Меллона. Впервые был описан в рабочем документе 1974 года, затем в докторской диссертации 1979. Rete стал основой многих популярных экспертных систем, включая CLIPS, Jess, Drools, BizTalk Rules Engine и Soar.</p>
<p> Алгоритм Rete содержит обобщение логики функционала, ответственного за связь фактов и продукций в системах сопоставления с образцом. Алгоритм Rete имеет следующие характеристики:</p>
<p> - Уменьшает или исключает избыточность условий за счет объединения узлов.</p>