Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Проектирование экспертных систем. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
Литература, рекомендованная для изучения
1 Базы знаний интеллектуальных систем / Т.А. Гаврилова, В.Ф. Хоро- шевский. - СПб: Питер, 2000. – 245 с.
2 Варламов, О. О. Системный анализ и синтез моделей данных и методы об-
работки информации в самоорганизующихся комплексах оперативной диагно­стики / О. О. Варламов. – М.: 2003. – 128 с.
3 Васильев, В.И. Распознающие системы / В.И. Васильев. - Киев: Наукова
думка; Издание 2-е, перераб. и доп., 2007. - 425 c.
4 Вейценбаум, Дж. Возможности вычислительных машин и человеческий ра-
зум / Дж. Вейценбаум. - М.: Радио и связь, 2011. - 368 c.
5 Венда, В.Ф. Системы гибридного интеллекта / В.Ф. Венда. - М.: Машино-
строение, 2006. - 448 c.
6 Гаскаров, Д.В. Интеллектуальные информационные системы/Д.В. Гаскаров
— М.: Высш. шк., 2003. – 267 с.
7 Глушков, В.М. Машина доказывает / В.М. Глушков. - М.: Знание, 2015.
- 372 c.
8 Джексон, П. Введение в экспертные системы/П. Джексон.- 3-е издание.
Пер. с англ. — М.: Вильямс, 2001. – С. 624.
9 Джозеф Джарратано, Экспертные системы: принципы разработки и про­граммирование : Пер. с англ/ Джозеф Джарратано, Гари Райли. — М. : Издатель­ский дом «Вильямс», 2006. — 1152 с.
10 Ездаков, А.Л. Экспертные системы САПР [Электронный ресурс] / А.Л.
Ездаков. - ИД ФО-РУМ, 2012. Режим доступа:
http://znanium.com/catalog.php?bookinfo=343778
11 Искусственный интеллект - основа новой информационной технологии /
Г.С. Поспелов. - М.: Наука, 2005. – 244 с.
12 Колесов, Ю.Б. Моделирование систем. Динамические и гибридные си-
стемы / Ю.Б. Колесов, Ю.Б. Сениченков. - М.: БХВ, 2006. - 224 c.
161
13 Корнилов, Г. И. Основы теории систем и системного анализа / Г. И. Кор- нилов. – М.: Высшая школа, 2005. – 263 с.
14 Лорьер Ж.Л. Системы искусственного интеллекта: пер. с франц/Ж.Л. Ло-
рьер. - М.: Мир, 2010. – 568 с.
15 Любарский, Ю.Я. Интеллектуальные информационные системы / Ю.Я. Любарский. - М.: Наука, 2015. - 228 c. 16 Люгер Джордж Ф. Искусственный интеллект. Стратегии и методы реше-
ния сложных проблем: пер. с англ/Джордж Ф. Люгер.- 4-е издание. - М.: Изд. дом «Вильямс», 2003.- 189 с. 17 Методы и средства преобразования информации. - М.: Рига: Зинат­не, 2016. - 136 c.
18 Минский, М. Фреймы для представления знаний: пер. с англ/М. Минский.
- М.: Энергия, 1979. 19 Мкртчян, С.О. Нейроны и нейронные сети / С.О. Мкртчян. - М.: Энер- гия, 2013. - 232 c.
20 Нейлор, К. Как построить свою экспертную систему / К. Нейлор. - М.: Энергоатомиздат, 2004. – 238 с.
21 Нильсон, Н. Принципы искусственного интеллекта: пер. с англ/Н. Ниль- сон.- М.: Радио и связь, 1985.
22 Попов, Э.В. Экспертные системы: Решение неформализованных задач в диалоге с ЭВМ / Э.В. Попов. - М.: Наука. Гл. ред. физ.-мат. лит., 2006. – 253 с.
23 Радченко И.А. Интеллектуальные мультиагентные системы: учебное по- собие/И.А. Радченко.- СПб:Балт. гос. техн. ун-т, 2006.
24 Рассел, С., Искусственный интеллект: современный подход: пер. с
англ./С. Рассел, П. Норвиг.- 2-е изд. - М.: Издательский дом «Вильямс», 2007. ­773с.
25 Сафонов, В. О. Экспертные системы - интеллектуальные помощники спе­циалистов / В. О. Сафонов. - СПб: Санкт-Петербургская организация общества “Знания”, 2005. – 257 с.
162
26 Сергеев, Ю.В. Моделирование взаимодействий биологических молекул / Ю.В. Сергеев. - М.: Знание, 2011. - 311 c
27 Сидоркина, И. Г. Системы искусственного интеллекта [Текст] : учеб. по- собие для вузов / И. Г. Сидоркина. - М. : КноРус, 2011. - 245 с.
28 Системы автоматизированного проектирования в 9 ти книгах. Книга 9 Иллюстрированный словарь / ред. И.П. Норенков. - М.: Высшая школа, 2008. ­159 c. 29 Статические и динамические экспертные системы / Э.В. Попов, И.Б. Фо- миных, Е.Б. Кисель, М.Д. Шапот. - М.: Финансы и статистика, 2004. – 234 с. 30 Таунсенд К., Фохт Д. Проектирование и программная реализация эксперт-
ных систем на персональных ЭВМ: пер. с англ./ В. А. Кондратенко, С. В. Труби­цына. — М.: Финансы и статистика, 1990. — 320 с 31Убейко, В. Н. Экспертные системы / В. Н. Убейко. - М.: МАИ, 2005. – 248 с.
32 Уинстон, П. Искусственный интеллект: пер. с англ./П. Уинстон.- М.: Мир,
1980. – 519 с.
33 Уотермен, Д. Руководство по экспертным системам: пер. с англ.; под ред. В. Л. Стефанюка. - М.: Мир, 1989. - 388 с. 34 Фетисов, В.С. Интеллектуальные средства измерений и HART-протокол /
В.С. Фетисов. - М.: Уфа: Уфимский государственный авиационный технический университет, 2010. - 410 c.
35 Хант Э. Искусственный интеллект / Э. Хант. – М.: Мир, 1978. – 558 с.
36 Хайкин Нейронные сети: полный курс / Хайкин, Саймон. - М.: Вильямс,
2006. - 115 c. 37 Хейес-Рот Ф., Построение экспертных систем/Ф. Хейес-Рот, Д. Уотерман, Д. Ленат. - М.: Мир, 1987. 38 Чачко, А.Г. Искусственный разум / А.Г. Чачко. - М.: Молодая Гвар- дия, 2012. - 224 c. 39 Эксперимент на дисплее. Первые шаги вычислительной физики. - М.:
163
Наука, 2012. - 175 c. 40 Экспертные системы. Принципы работы и примеры / ред. Р. Форсайт. - М.: Радио и связь, 2009. - 224 c.
41 Элти Д., Кумбс М. Экспертные системы: концепции и примеры / Д. Элти, М. Кумбс. - М.: Финансы и статистика, 2006. – 236 с.
42 Эндрю А. Искусственный интеллект / Под ред. Поспелова Д.А. – М.: Мир, 1985. – 265 с.
43 Системы искусственного интеллекта: курс лекций по дисциплине. Режим доступа: http://www.mari-el.ru/mmlab/home/AI/12/index.html
44 Экспертные системы: курс лекций по курсу. Режим доступа: http://www.univer.omsk.su/lection/
45 Экспертные системы: курс лекций по курсу / под ред. Л.Н. Туктаровой.- Режим доступа: http://www.ugkr.ru/Lektiis.html
164
Приложение А
(обязательное)
Листинг программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, Unit2;
const
word_max=40;
line_max=80;
colon=':';
period='.';
comma=',';
space=' ';
equals='=';
definite=100;
type
word_string=string[word_max];
line_string=string[line_max];
value_ptr=^value;
legal_ptr=^legal_value;
object_ptr=^object1;
value=record
name:word_string;
cert:integer;
setby:word_string;
next:value_ptr;
end;
legal_value=record
name:word_string;
next:legal_ptr;
end;
object1=RECORD
name:word_string;
question:line_string;
multivald:boolean;
legal_list:legal_ptr;
sought:boolean;
value_list:value_ptr;
next:object_ptr
END;
prem_ptr=^prem;
165
con_ptr=^con;
rule_ptr=^rule;
prem=RECORD
object1:word_string;
value:word_string;
next:prem_ptr
END;
CON=RECORD
object1:word_string;
value:word_string;
cert:integer;
next:con_ptr
END;
rule=RECORD
name:word_string;
prem:prem_ptr;
con:con_ptr;
next:rule_ptr
END;
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
OpenDialog1: TOpenDialog;
Label5: TLabel;
N9: TMenuItem;
Edit2: TEdit;
Memo1: TMemo;
Label6: TLabel;
Edit3: TEdit;
Button1: TButton;
N10: TMenuItem;
Button2: TButton;
166
Edit4: TEdit;
procedure N8Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure N1Click(Sender: TObject);
end;
VAR
choice,
max_choice,
choice_lim,i:integer;
last_try,
top_fact:object_ptr;
s_word,
s_object,s_object2,select:word_string;
s_value:word_string;
s_line:line_string;
s_cf:integer;
top_rule:rule_ptr;
rules:Text;
explain,flag,flag1:boolean;
find_legal1:boolean;
Form1: TForm1;
implementation
{$R *.dfm}
FUNCTION find_word(f_line:line_string;n:integer;VARword:word_string): boolean;
VAR
x, com_place:integer;
BEGIN
find_word:=FALSE;
word:='';
for x:=1 to n do
begin
com_place:=pos(comma,f_line);
IF (com_place=0) THEN
begin
com_place:=length(f_line)+1;
167
find_word:=TRUE
end;
word:=copy(f_line,1,com_place-1);
f_line:=copy(f_line,com_place+1,length(f_line)-com_place)
end
end;
function find_object(f_object:word_string):object_ptr;
var
curr_object:object_ptr;
begin
if (last_try<>Nil) and (last_try^.name=f_object)
then find_object:=last_try else
begin
curr_object:=top_fact;
last_try:=NIL;
find_object:=nil;
while ((curr_object<>nil) and (last_try=nil)) do
begin
if (curr_object^.name=f_object) then
begin
find_object:=curr_object;
last_try:=curr_object
end;
curr_object:=curr_object^.next
end
end
end;
procedure make_node(var curr_object:object_ptr);
var
head:object_ptr;
begin
new(curr_object);
head:=top_fact;
top_fact:=curr_object;
with curr_object^ do
begin
next:=head;
value_list:=nil;
question:='';
legal_list:=nil;
multivald:=false;
sought:=false;
168
end
end;
function test(f_object,f_value:word_string):value_ptr;
var
curr_object:object_ptr;
curr_value:value_ptr;
begin
curr_object:=find_object(f_object);
test:=NIL;
IF (curr_object<>NIL) Then
begin
curr_value:=curr_object^.value_list;
while (curr_value<>NIL) DO
begin
if (curr_value^.name=f_value) THEN
test:=curr_value;
curr_value:=curr_value^.next
end
end
end;
procedure add_object(f_object,f_value:word_string);
var
curr_object:object_ptr;
value_list,
head:value_ptr;
begin
curr_object:=find_object(f_object);
if (curr_object=NIL) then
make_node(curr_object);
curr_object^.name:=f_object;
curr_object^.sought:=true;
value_list:=test(f_object,f_value);
if (value_list=NiL) then
begin
head:=curr_object^.value_list;
new(value_list);
with value_list^ do
begin
next:=head;
cert:=0;
setby:='';
name:=f_value
169
end;
curr_object^.value_list:=value_list
end
end;
FUNCTION blend(cf1,cf2:integer):integer;
begin
blend:=((100*cf1)+(100*cf2)-(cf1*cf2)) DIV 100
end;
PROCEDURE add_cf(f_object,f_value:word_string;cf2:integer);
var
cf1:integer;
curr_value:value_ptr;
begin
curr_value:=test(f_object,f_value);
cf1:=curr_value^.cert;
curr_value^.cert:=blend(cf1,cf2)
end;
procedure split(f_line:line_string;
var f_object,f_value:word_string);
var
st_left, st_right:integer;
begin
st_right:=pos(period,f_line);
if (st_right=length(f_line)) then f_line:=copy(f_line,1,st_right-1);
st_left:=pos(equals,f_line);
st_right:=pos(comma,f_line);
if ((st_left=0) and (st_right=0)) then f_object:=f_line;
if (st_right=0) then st_right:=length(f_line)+1;
if (st_left>0) then
begin
f_object:=copy(f_line,1,st_left-1);
if (pos(')',f_object)=0) then f_value:=copy(f_line, st_left+1,
st_right-st_left-1)
end;
st_right:=pos(')',f_object);
if (st_right>0) then f_object:=copy(f_line,1,st_right-1)
end;
procedure make_multi(f_line:line_string);
var
curr_object:object_ptr;
170
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]