Главным достоинством ЭС является возможность накопления знаний и сохранение их длительное время. В отличие от человека к любой информации ЭС подходят объективно, что улучшает качество проводимой экспертизы. При решении задач, требующих обработки большого объема знаний, возможность возникновения ошибки при переборе очень мала. В отличие от машинных программ, использующий процедурный анализ, ЭС решают задачи в узкой предметной области (конкретной области экспертизы) на основе дедуктивных рассуждений. Такие системы часто оказываются способными найти решение задач, которые неструктурированны и плохо определены. Они справляются с отсутствием структурированности путем привлечения эвристик, т. е. правил, что может быть полезным в тех системах, когда недостаток необходимых знаний или времени исключает возможность проведения полного анализа. Главное достоинство ЭС - возможность накапливать знания, сохранять их длительное время, обновлять и тем самым обеспечивать относительную независимость конкретной организации от наличия в ней квалифицированных специалистов. Накопление знаний позволяет повышать квалификацию специалистов, работающих на предприятии, используя наилучшие, проверенные решения.
Все перечисленные выше знания хранятся в базе знаний. Для ее построения требуется провести опрос специалистов, являющихся экспертами в конкретной предметной области, а затем систематизировать, организовать и снабдить эти знания указателями, чтобы впоследствии их можно было легко извлечь из базы знаний. Системы, основанные на знаниях, оказываются неэффективными при необходимости проведения скрупулезного анализа, когда число "решений" зависит от тысяч различных возможностей и многих переменных, которые изменяются во времени. В таких случаях лучше использовать базы данных с интерфейсом на естественном языке.
Основными отличиями ЭС от других программных продуктов являются использование не только данных, но и знаний, а также специального механизма вывода решений и новых знаний на основе имеющихся. Знания в ЭС представляются в такой форме, которая может быть легко обработана на ЭВМ. В ЭС известен алгоритм обработки знаний, а не алгоритм решения задачи. Поэтому применение алгоритма обработки знаний может привести к получению такого результата при решении конкретной задачи, который не был предусмотрен. Более того, алгоритм обработки знаний заранее неизвестен и строится по ходу решения задачи на основании эвристических правил. Решение задачи в ЭС сопровождается понятными пользователю объяснениями, качество получаемых решений обычно не хуже, а иногда и лучше достигаемого специалистами. В системах, основанных на знаниях, правила (эвристики), по которым решаются проблемы в конкретной предметной области, хранятся в базе знаний. Проблемы ставятся перед системой в виде совокупности фактов, описывающих некоторую ситуацию, и система с помощью базы знаний пытается вывести заключение из этих фактов. Качество ЭС определяется размером и качеством базы знаний. Система функционирует в следующем циклическом режиме: выбор (запрос) данных или результатов анализов, наблюдения, интерпретация результатов, усвоение новой информации, выдвижении с помощью правил временных гипотез и затем выбор следующей порции данных или результатов анализов. Такой процесс продолжается до тех пор, пока не поступит информация, достаточная для окончательного заключения. В любой момент времени в системе существуют три типа знаний:
структурированные знания - статические знания о предметной области. После того как эти знания выявлены, они уже не изменяются. Структурированные динамические знания - изменяемые знания о предметной области. Они обновляются по мере выявления новой информации. Рабочие знания- знания, применяемые для решения конкретной задачи или проведения консультации.
23. Этапы составления программ компьютерного решения задач.
Рассмотрим поэтапно порядок составления программы на языке Pascal для математического выражения Y= 27,ЗХ + 0,9Х2 + 6,1 при X = 2,344
1. Представим числа выражения так, чтобы они стали понятны ЭВМ. Целые числа состоят из нескольких цифр и, возможно, знака. Если знак не указан, и число равно нулю, то оно положительно. Вещественные числа - это десятичные дроби и, в частности, целые числа, записанные в виде десятичных дробей (0 - целое; 0.0 - вещественное; 5.2 - вещественное). Для нашего примера запись чисел выглядит - 27.3; 0.9; 6.1; 2,344.
2. Уточним используемые знаки арифметических операций: "+" - сложение; "-" - вычитание; "*" - умножение;"/" - деление; "DIV" - деление нацело; "MOD" - остаток от деления нацело. DIV и MOD применяются только к целым числам. При вычислении арифметического выражения действуют обычные правила старшинства операций. Круглые скобки служат для изменения обычного порядка выполнения операций. Если при записи некоторая часть выражения переносится на другую строку, то переносимый знак при этом не повторяется. Для нашего примера используются знаки арифметических операций: сложение + и умножение *.
3. Зададим значения переменных. Переменная - объект, которому дано имя и которая может принимать различные значения. Они могут быть вещественными и целыми. Для нашего примера произведем математические преобразования переменной
Y = 27,ЗХ + 0,9Х2 + 6,1 = (27,3*Х + 0,9)*Х + 6,1 и запишем:
X=2.344;
Y=(27.3*Х + 0.9)*Х + 6.1;.
4. Для решения задачи необходимо задать последовательность приказов. Приказ – это побуждение к некоторому действию. В языке программирования приказы называют операторами. Арифметическое выражение не является оператором, а представляет собой правило (формулу), в соответствии с которым может быть вычислено некоторое значение. Оно может использоваться как составная часть различных операторов, в частности, оператора присваивания. В нашем случае справа от знака: = записано выражение (27.3*Х+ 0.9)*Х + 6.1, а слева - переменная Y. Оператор присваивания определяет:
1). Вычислить значение выражения, записанного справа от знака присваивания: =.
2). Вычисленное значение запомнить как значение переменой, находящейся в левой части оператора присваивания.
Значения переменных могут меняться в ходе выполнения операторов. Правило выполнения оператора присваивания гласит, что любое значение переменной в левой части всегда должно быть заменено вновь вычисленным значением выражения в правой части.
5. Чтобы вывести значения переменных необходимо дать соответствующий приказ: "выдать значение", который называется оператором (процедурой) вывода: write (Y), где write - пиши. Если переменных, подлежащих к выводу несколько, то они отделяются друг от друга запятыми и заключаются в круглые скобки - write (Y, А, В).
6. Для вычисления переменной Y при X = 2,344 сообщаем компьютеру последовательность приказов:
Х:=2.344;
Y :=(27.3*Х + 0.9)*Х + 6.1;
write (Y)
7. Придадим этой последовательности приказов вид программы. Программа - задание для компьютера, написанное на понятном для него языке в установленной форме. Программа на языке Pascal начинается с заголовка и заканчивает точкой. Имя программы выбирается произвольно с учетом правил написания имени в языке Паскаль. Лучше выбирать имя, отражающее назначение данной программы и действия, которые в ней производятся. Составим программу с именем YX для решения нашей задачи:
program YX;
begin
Х:= 2.344;
Y:=(27.3*Х+0.9)*Х + 6.1;:
write (Y)
end.
Заголовок программы - program XY; он состоит из ключевого слова программа и имени программы - XY. В конце заголовка обязательно ставится точка с запятой. Последовательность операторов, образующих программу (в данном случае один оператор - write), заключена в операторные скобки.
Begin, end - оба эти слова также являются ключевыми словами. Их смысл: begin (начало) - открывающая и end (конец) - закрывающая операторные скобки. Ключевые (служебные) слова особенные: они не могут использоваться в качестве имен. Ошибки в написании этих слов недопустимы. Ошибочное написание хотя бы одного ключевого слова приведет к тому, что компьютер откажется выполнять вашу программу. Какие буквы - прописные или заглавные - используются при написании ключевых слов, в программе не имеет значения.
8. Нам уже известны два типа переменных: целые и вещественные. Переменным различных типов выделяются участки памяти различной длины и структуры. Поэтому в начале программы следует сообщить информацию о том, каким переменным должна быть выделена память, а также указать их тип, чтобы компьютер "знал", сколько нужно выделить ячеек для переменных. Это делается в разделе переменных: var X, Y: real;
Раздел переменных начинается с ключевого слова Var - переменные (сокращение английского слова Variables), за которым следует описание переменных, состоящее из описательных предложений. В описательном предложении; указываются имена переменных и их тип. Вещественный тип переменных обозначается ключевым словом REAL, целый – INTEGER.
Имена переменных отделяются друг от друга запятыми, а от названия типа - двоеточием. В конце предложения ставится точка с запятой. Все переменные, используемые в программе, должны быть описаны. Каждая переменная описывается только один раз.
9. Наша программа приняла законченный вид:
program XY;
var Х,Y: геа1;
begin
X:=2.344;
У:=(27.3*Х + 0.9)*Х + 6.1;
write (Y)
end.
24. Понятие алгоритма. Свойства. Типы. Способы записи.
На первом этапе создания программы программист должен определить последовательность действий, которые необходимо выполнить, чтобы решить поставленную задачу. Алгоритм — это точное предписание, определяющее процесс перехода от исходных данных к результату. Следует уточнить, что предписание считается алгоритмом, если оно обладает следующими свойствами: