Реферат: Разработка оболочки экспертной системы

Реферат: Разработка оболочки экспертной системы




👉🏻👉🏻👉🏻 ВСЯ ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻




























































Разработка фрагментов оболочки экспертной системы
Сегодня всем, кто работает в области информатики или интересуется этой новой областью науки, известен термин "экспертные системы". Экспертная система (expert system, knowledge based system) - это программная система, знания и умения которой сравнимы с умением и знаниями специалистов в какой-нибудь специальной области знаний. Экспертные системы вместе с системами обработки естественных языков являются наиболее важными в коммерческом плане областями использования искусственного интеллекта.
В рамках исследования искусственного интеллекта созданы многочисленные экспертные системы для разных областей знания, таких, например, как медицинская диагностика и обследование пациентов, генные и молекулярные исследования, составление конфигурации вычислительных машин, образование, поиск неисправностей в устройствах и системах и многие другие практические приложения. В этой работе разрабатывается экспертная система, связанная с диагностикой заболеваний.
В данной курсовом проекте предметную область составляют заболевания гортани, а именно: ларингит острый, ларингит хронический катаральный, ларингит хронический гипертрофический, ларингит хронический атрофический.
У каждой болезни имеется набор признаков или, выражаясь медицинскими терминами, симптомов.
Для удобства восприятия анализ предметной области сведен в таблицу 1. В ней в столбцы обозначены названиями болезней, а строки - названиями симптомов. На пересечении соответствующих столбцов и строк стоит знак "+", если симптом действительно принадлежит исследуемой болезни. Одни и те же симптомы могут являться признаками одной и той же болезни, поэтому некоторые из них (симптомов) перекрываются.
Следующим этапом проектирования будет являться разработка (выбор) способа представления этих знаний.
3. Выбор способа представления знаний
Чтобы проводить эспертизу, компьютерная программа должна быть способна решать задачи посредством логического вывода и получать при этом достаточно надежные результаты. Программа должна иметь доступ к системе фактов, называемой базой знаний. Программа также должна во время консультации выводить заключения из информации, имеющейся в базе знаний. Некоторые экспертные системы могут также использовать новую информацию, добавляемую во время консультации. Экспертную систему, таким образом, можно представлять состоящей из трех частей:
3. Система пользовательского интерфейса (СПИ)
База знаний - центральная часть экспертной системы. Она содержит правила, описывающие отношения или явления, методы и знания для решения задач из области применения системы. Можно представлять базу знаний состоящей из фактических знаний и знаний, которые используются для вывода других знаний. Утверждение "Джон Ф. Кеннеди был 35-м президентом Соединенных Штатов" - пример фактического знания. "Если у вас болит голова, то примите две таблетки цитрамона" - пример знания для вывода. Сама база знаний обычно располагается на диске или другом носителе.
Механизм вывода содержит принципы и правила работы. Механизм вывода "знает", как использовать базу знаний так, чтобы можно было получать разумно согласующиеся заключения (выводы) из информации, находящейся в ней. Когда экспертной системе задается вопрос, механизм вывода выбирает способ применения правил базы знаний для решения задачи, поставленной в вопросе. Фактически, механизм вывода запускает экспертную систему в работу, определяя какие правила нужно вызвать и организуя к ним доступ в базу знаний. Механизм вывода выполняет правила, определяет когда найдено приемлемое решение и передает результаты программе интерфейса с пользователем.
Когда вопрос должен быть предварительно обработан, то доступ к базе знаний осуществляется через интерфейс с пользователем. Интерфейс - это часть экспертной системы, которая взаимодействует с пользователем.
Как правило, пользователи мало знают об организации базы знаний, поэтому интерфейс может помочь им работать с экспертной системой даже, если они не знают, как она организована. Интерфейс может также объяснить пользователю , каким образом экспертная система выводит результат.
Система интерфейса с пользователем принимает информацию от пользователя и передает ему информацию. Просто говоря, система интерфейса должна убедиться, что, после того как пользователь описал задачу, вся необходимая информация получена. Интерфейс, основываясь на виде и природе информации, введенной пользователем, передает необходимую информацию механизму вывода. Когда механизм вывода возвращает знания, выведенные из базы знаний, интерфейс передает их обратно пользователю в удобной форме. Интерфейс с пользователем и механизм вывода могут рассматриваться как "приложение" к базе знаний. Они вместе составляют оболочку экспертной системы. Для базы знаний, которая содержит обширную и разнообразную информацию, могут быть разработаны и реализованы несколько разных оболочек. Хорошо разработанные оболочки экспертных систем обычно содержат механизм для добавления и обновления информации в базе знаний.
Как видим , экспертная система состоит из трех основных частей. Взаимосвязь между частями может быть сложной, зависящей от природы и организации знаний, а также от методов и целей вывода.
Базы знаний и способы представления


Это один из наиболее часто используемых в экспертных системах способов представления знаний. Основная идея заключается в ассоциировании с соответствующими действиями набора условий в виде правил типа "если-то", называемых также продукциями:
"Если-то"-правила обычно оказываются весьма естественным выразительным средством представления знаний. Кроме того, они обладают следующими привлекательными свойствами:
- модульность: каждое правило описывает небольшой, относительно независимый фрагмент знаний;
- возможность инкрементного наращивания: добавление новых правилв базу знаний происходит относительно независимо от других правил;
- удобство модификации (как следствии модульности): старые правила можно изменять и заменять на новые относительно независимо от других правил;
- применение правил способствует прозрачности системы, т.е. способности к объяснению принятых решений и полученных результатов.
Однако продукционные системы не свободны от недостатков:
- процесс вывода менее эффективен, чем в других системах, поскольку большая часть времени при выводе затрачивается на непроизводительную проверку применимости правил;
- этот процесс трудно поддается управлению;
- сложно представить родовидовую иерархию понятий.
Представление знаний, основанное на фреймах, является альтернативным по отношению к системам продукций: оно дает возможность хранить родовидовую иерархию понятий в базе знаний в явной форме. Фреймом называется структура для описания стереотипной ситуации, состоящая из характеристик этой ситуации и их значений, характеристики называются слотами, а значения - заполнителями слотов. Слот может содержать не только конкретное значение, но и имя процедуры, позволяющей вычислить его по заданному алгоритму, а также одну или несколько продукций (эвристик), с помощью которых это значение можно найти. В слот может входить не одно, а несколько значений. Иногда слот включает компонент, называемый фасетом, который задает диапазон или перечень его возможных значений. Фасет указывает также граничные значения заполнителя слота.
Совокупность фреймов, моделирующая какую-нибудь предметную область, представляет собой иерархическую структуру, в которую фреймы соединяются с помощью родовидовых связей. На верхнем уровне иерархии находится фрейм, содержащий наиболее полную информацию, истинную для всех остальных фреймов. Фреймы обладают способностью наследовать значения характеристик своих родителей, находящихся на более высоком уровне иерархии. Значения характеристик фреймов могут передаваться по умолчанию фреймам, находящимся ниже них в иерархии, но если последние содержат собственные значения данных характеристик, то в качестве истинных принимаются именно они.
Наиболее ярко достоинства фреймовых систем представления знаний проявляются в том случае, если родовидовые связи изменяются нечасто и предметная область насчитывает немного исключений. Во фреймовых системах данные о родовидовых связях хранятся явно, т.е. так же, как и значения всех других типов. Значения слотов представляются в системе в единственном экземпляре, поскольку включаются только в один фрейм, описывающий наиболее общее понятие из всех тех, которые содержат слот с данным именем. Такое свойство систем фреймов дает возможность уменьшить объем памяти, необходимый для их размещения в компьютере. Еще одно достоинство фреймов состоит в том, что значение любого слота при необходимости может быть вычислено с помощью соответствующих процедур или найдено эвристическими методами.
Как недостаток фреймовых систем следует отметить их относительно высокую сложность, что проявляется в снижении скорости работы механизма вывода и в увеличении трудоемкости внесения изменений в родовидовую иерархию. Кроме того, во фреймовых системах затруднена обработка исключений.
Семантическая сеть, по мнению специалистов, - наиболее общий способ представления знаний, причем она появилась, по-видимому, ранее других. В ней понятия и классы, а также отношения и связи между ними представлены в виде сети. Семантическая сеть отображает совокупность объектов предметной области и отношений между ними, при этом объектам соответствуют вершины (или узлы) сети, а отношениям - соединяющие их дуги. В качестве объектов могут выступать события, действия, обобщенные понятия или свойства объектов. Свойства представляются в сети также в виде вершин и служат для описания классов объектов. Вершины сети соединяются дугой, если соответствующие объекты предметной области находятся в каком-либо отношении.
Как и в системе, основанной на фреймах, в семантической сети могут быть представлены родовидовые отношения, которые позволяют реализовать наследование свойств от объектов-родителей. Это обстоятельство приводит к тому, что семантические сети приобретают большинство недостатков и достоинств представления знаний в виде фреймов. Но основное преимущество семантических сетей заключается в их наглядности и непосредственной связанности понятий через сеть, которая позволяет быстро находить связи понятий и на этой основе управлять принимаемыми решениями. Именно этот формализм был использован в данной работе в качестве формализма для представления знаний в БЗ. Основной недостаток сетей - сложность обработки исключений. Таким образом, используя данные понятия, наша ПО на языке microLISP представляется следующим образом:
(3 "кашель сначала сухой, затем с мокротой")
(9 "периодический кашель с мокротой")
(15 "слизистая покрыта густой слизью ")
(16 "откашливание с прожилками крови"))
(("ларингит острый" (1 2 3 4 5 6 7))
("ларингит хронический катаральный" (1 2 4 8 9))
("ларингит хронический гипертрофический" (1 10 11 12 13))
("ларингит хронический атрофический" (1 2 4 14 15 16)))
4. Разработка меню экспертной системы
Для обеспечения наиболее понятной работы с программой разработана иерархическая структура меню.
Система пользовательского интерфейса обеспечивает взаимодействие между экспертной системой и пользователем. Это взаимодействие обычно включает несколько функций:
1. Обработка данных, полученных с клавиатуры, и высвечивание водимых и выводимых данных на экране.
2. Поддержка диалога между пользователем и системой.
3. Распознавание ситуации непонимания между пользователем и системой.
4. Обеспечение "дружественности" по отношению к пользователю.
Система интерфейса с пользователем должна эффективно обрабатывать ввод и вывод. Для этого необходимо обрабатывать вводимые и выводимые данные быстро, в ясной и выразительной форме. Необходимо также включить возможность работы с дополнительными средствами такими, как магнитные диски и дополнительные файлы данных.
Кроме того, система интерфейса должна поддерживать соответствующий диалог между пользователем и системой. Диалог - это общая форма консультации с экспертной системой.
Консультация должна завершаться ясным утверждением, выдаваемым системой, и объяснением последовательности вывода, приведшей к этому утверждению.
6. Описание программы на micro-LISP
Структурная схема программы на Лиспе изображена на рис.2. Об основных процедурах написано в разделе "Разработка процедур оболочки", в котором представлены схемы алгоритмов их работы.
Теперь перейдем непосредственно к описанию программы. Главная процедура start запускает процедуру mainmenu (она представлена в виде бесконечного цикла do, также представлены и все подменю: menufiles, menubd и т.д.). Mainmenu рисует главное меню и здесь же с помощью выражения cond и eq? организованно получение выбора и запуск выбранной процедуры.
Процедура saving осуществляет запись БД в файл с помощью встроенного выражения with-output-to-file и функции write (все это организованно в виде lambda-выражения).
Загрузка файла (процедура loading) происходит с помощью встроенных with-input-from-file и read (причем БД болезней представлена в виде списка *it_is*, а симптомов в виде списка *simptom*).
Постановка диагноза осуществляется с помощью функции experting. Из БД выбирается болезнь ill, берется список ее симптомов spis_num и с помощью функции exp_ill (spis_num,ill) определяется, есть ли у пользователя эти симптомы. Если эта функция будет ложной (на запрос пользователь ответил отрицательно), то произойдет рекурсивный вызов функции experting от конца списка болезней (т.е. в дальнейшем будет выбрана следующая и т.д.).В процессе работы функции с помощью функции set! формируются списки положительных и отрицательных ответов пользователя *yes* и *no*. Если функция experting выполнила свою работу и диагноз поставлен успешно, то функция log_out (объяснение логического вывода) выводит на экран название определенной болезни и ее симптомы (функция использует для этого функцию cond и рекурсию).
В режиме просмотра списка болезней и симптомов (view_ill) используется cond и рекурсивный вызов функции от хвоста списка, что позволяет вывести все содержимое БД на экран.
В режиме добавления болезней (add_ill) и симптомов (add_sym) используется встроенная функция append (для соединения списков), а рекурсивный вызов функции addsyms обеспечивает возможность добавления к болезни нескольких симптомов. При редактировании болезней (red_ill) и симптомов (red_sym) старое значение удаляется с помощью функции delete! (удаление элемента из списка), а новое обавляется с помощью append.
Удаление болезней (del_ill) осуществляется с помощью функции delete!. При удалении болезни автоматически удаляются и все ее симптомы (рекурсивно вызывая сама себя от конца удаляемого списка признаков функция delsyms последовательно удаляет все симптомы этой болезни).
Удаление симптома (del_sym) также осуществляется с помощью delete!, но при этом с помощью функции append формируется новый список симптомов болезни, симптом которой удаляется. Затем происходит удаление болезни со старым списком симптомов {(set! *it_is* (delete! (list ill spis_nums) *it_is))} и добавление к списку *it_is* этой же болезни с новым списком.
7. Краткое описание встроенных предикатов и функций microLISP,используемых в программе
Окна являются объектами, подобными "портам", которые представляют собой прямоугольные области на экране. Предикат WINDOW? определяет, действительно ли заданный объект является портом, представляющим окно на экране. Все интерактивные окна ввода-вывода представляются посредством окон, включая ввод-вывод, обеспечиваемый портами STANDARD-INPUT и STANDARD-OUTPUT. Новые окна-порты создаются и открываются с помощью MAKE-WINDOW; их атрибуты доступны с помощью WINDOW-GET-ATTRIBUTE и модифицируются WINDOW-SET-ATTRIBUTE!
Окна до тех пор не выводятся на экран, пока область для них не очистится с помощью WINDOW-CLEAR. WINDOW-DELETE очищает область экрана, занятого окном. WINDOW-POPUP и WINDOW-POPUP-DELETE выдают несколько перекрывающихся окон.
Позиция окна на экране и размер его строк и столбцов устанавливаются WINDOW-GET-POSITION и WINDOW-GET-SIZE, соответственно; модификация выполняется WINDOW-SET-POSITION! и WINDOW-SET-SIZE!.
Модификация позиции и размеров окна может быть выполнена перед тем, как окно изначально выводится на экран по WINDOW-CLEAR. Позиция курсора устанавливается с помощью WINDOW-GET-CURSOR и изменяется WINDOW-SET-CURSOR!. Курсор появляется на экране только тогда, когда ввод производится с клавиатуры.
Процедура FLUSH-INPUT чистит буфер вводного порта.
Параметр port- вводной порт (необязательный аргумент).
FLUSH-INPUT отбрасывает любые литеры и включает следующую "последовательность конца строки" (end-of-line) в буфер ввода, который связан с port, если он задан, или с текущим вводным портом. Выдается неопределенное значение.
Возвращает последнюю пару непустого списка.
Композиции пар, связанных через их cdr-компоненты, называются списками. Пустой список, обозначаемый как (), также является списком. Когда цепочка cdr-связей в паре оканчивается пустым списком, тогда пара называется "собственным списком". Процедура LIST обеспечивает такой список, состоящий из значений его аргументов. LIST* обеспечивает похожий список, но имеющий значение его последнего аргумента в cdr-компоненте последней пары цепочки.
Данные процедуры выдают подсписок, начинающийся с некоторого специфического объекта в собственном списке.
Параметры obj - любой объект в "ЛИСП-МИКРО";
Данные процедуры ищут первое появление obj в list, используя EQVAL? для сравнения (в случае MEMBER); при MEMQ используется EQ?; при MEMV - EQV? Если obj найден, подсписок, содержащий obj как первый элемент, выдается как результат. Если obj не найден в list, выдается "ложь".
DO обеспечивает наиболее общую возможность вычисления итераций.
(DO ((var (init {step}})...)(test exp ...) stmt ...)
Параметры var - любой идентификатор "ЛИСП-МИКРО";
init - любые выражения в "ЛИСП-МИКРО".
Вычисляется каждое init; результат используется как значение соответствующего var.
step... - любые выражения "ЛИСП-МИКРО".
Вычисляется каждое init; результат используется как значение соответствующего var для следующей итерации. Этот необязательный аргумент может быть описан, только если описан init;
test - любое выражение "ЛИСП-МИКРО". Это выражение является условием, по которому итерация останавливается;
exp... - любые выражения "ЛИСП-МИКРО". Эти выражения вычисляются перед выходом из цикла;
stmt... - любые выражения "ЛИСП-МИКРО". Эти выражения вычисляются по порядку каждый раз как test возвращает "ложь".
Для удобства отладки программа писалась не вся сразу, а постепенно, отдельными процедурами. Каждая процедура сначала отлаживалась и проверялась, а потом разрабатывалась следующая. После проверки каждой процедуры в отдельности отлаживалась вся программа целиком и устранялись последние недоработки и ошибки.
9. Инструкция пользователю и пример выполнения программы
Для работы данной программы необходимо: - компьютер : желательно IBM PC AT или XT; - оперативная память - не менее 512 Кb; - места на винчестере (или любом другом запоминающем устройстве)- не менее 100 Kb (в зависимости от размера базы данных); - дисплей с любой графической картой; - операционная среда - MS-DOS версии 3.0 и выше.
Для нормальной работы программы необходимо наличие следующих файлов:
fun.lsp - файл запуска (файл содержащий всю программу);
bd2.lsp - файл базы данных (или любой другой файл, содержащий базу данных пользователя);
Для запуска программы нужно войти в Лисп, загрузить файл fun.lsp, набрать start и нажать клавишу {ENTER}.
После запуска программы Вы попадаете в ее интегрированную среду. Для работы с ней нужно знать, что:
- для выбора нужного пункта меню/подменю нужно набрать номер этого пункта;
- для перехода из нижнего подменю в исходное меню/подменю нужно
- для выхода из программы нужно выбрать пункт главного меню <Выход>.
- наберите на клавиатуре название нужного вам файла базы данных и нажмите клавишу {ENTER};
- для работы с пунктом <Сохранить> :
- наберите имя файла и нажмите {ENTER}.
- для работы с пунктом <Редактирование> нужно:
- выбрать будете ли Вы редактировать названия неисправностей или признаков (нажать соответственно цифру {1} или {2});
- ввести название неисправности или признака для редактирования;
- ввести новые исправленные значения;
- для работы с пунктом <Добавление> нужно:
- выбрать будете ли Вы добавлять названия неисправностей или
признаков (нажать соответственно цифру {1} или {2});
- путем ввода информации с клавиатуры внести новую запись;
- для работы с пунктом <Удаление> нужно:
- выбрать будете ли Вы удалять названия неисправностей или
признаков (нажать соответственно цифру {1} или {2});
- ввести название удаляемой неисправности или признака;
- для работы с пунктом <Просмотр> необходимо знать, что:
- информацию на экране можно менять, нажимая клавишу {ESC}.
Работая с подменю <Консультация>, нужно:
- отвечать на вопросы (набирать соответственно 'Д' или 'Н' и нажимать клавишу {ENTER}).
В данной работе была реализована идея создания фрагмента оболочки экспертной системы. В результате разработки КПР была получена интегрированная среда по диагностике заболеваний. К плюсам данной программы можно отнести довольно поверхностные знания пользователя по работе с компьютером, которые требуются для работы с ней.
Среди возможных пожеланий можно сказать о разработке системы помощи при работе с программой. Можно также усложнить программу, переписав ее так, чтобы она работала на основе рассуждений с использованием вероятностного подхода. Часто к экспертным системам предъявляют дополнительное требование - способность иметь дело с неопределенностью и неполнотой. Информация о поставленной задаче может быть неполной или ненадежной; отношения между объектами предметной области могут быть приближенными. Например, может не быть полной уверенности в наличии у пользователя некоторого симптома или в том, что данные, полученные при определении, верны. Во всех этих случаях как раз и необходимы рассуждения с использованием вероятностного подхода.
Полный текст программы на языке micro-LISP (файл "FUN.LSP):
(define mainw(make-window "ДОКТОР" #!true))
(define mmenuw(make-window "МЕНЮ" #!true))
(define menufw(make-window "__ФАЙЛЫ" #!true))
(define menudbw(make-window "БазаДанных" #!true))
(define menucw(make-window "_____________________________ДИАГНОСТИКА" #!true))
(define vieww(make-window "____________ПРОСМОТР" #!true))
(define addiw(make-window "____________ДОБАВЛЕНИЕ БОЛЕЗНИ" #!true))
(define addsw(make-window "__________ДОБАВЛЕНИЕ СИМПТОМОВ" #!true))
(define rediw(make-window "________РЕДАКТИРОВАНИЕ БОЛЕЗНИ" #!true))
(define redsw(make-window "_______РЕДАКТИРОВАНИЕ СИМПТОМА" #!true))
(define deliw(make-window "______________УДАЛЕНИЕ БОЛЕЗНИ" #!true))
(define delsw(make-window "_____________УДАЛЕНИЕ СИМПТОМА" #!true))
(define submenuw(make-window "___Работа с:" #!true))
(define menulw(make-window "Введите ИМЯ ФАЙЛА :" #!true))
(display " 1.Files 2.DataBase 3.Diagnosticka 4.Quit" mmenuw)
(Window-Set-Position! menudbw 5 26)
(Window-Delete menudbw) (mainmenu))
(Window-Set-Position! menulw 20 20)
(Window-Set-Position! menulw 20 20)
(display " НЕВОЗМОЖНО ОПРЕДЕЛИТЬ ДИАГНОЗ " menucw)
((exp_ill (cadar spis_ill) (caar spis_ill)))
(cond ((null? spis_num) (window-clear menucw) (window-set-cursor! menucw 1 1)
(display " У ВАС " menucw) (display ill menucw)
(t (set! s (find_sym (car spis_num) *symptom*))
(cond ((eq? a 'д) (set! *yes* (append *yes* (list y))))
(t (set! *no* (append *no* (list y)))) ))
((member y *yes*) (exp_ill (cdr spis_num) ill))
(t (and (board) (display " СИМПТОМ: " menucw)
(t (newline menucw) (display " " menucw)
(display (find_sym (car nums) *symptom*) menucw)
(set! gr (window-get-cursor menucw))
(if (< (car gr) 18) (newline menucw)
(if (equal? (caar spis_sym) n) (cadar spis_sym)
(cond ((eq? (read-char wname) #\ESCAPE) t)
(t (window-set-cursor! vieww 1 2) (display "БОЛЕЗНЬ: " vieww)
(cond ((null? spis_num) (wait vieww) (window-clear vieww))
(display (find_sym (car spis_num) *symptom*) vieww)
(Window-Set-Position! submenuw 11 25)
(display "2.СИМПТОМАМИ" submenuw) )
(cond ((eq? ch #\1) (Window-Set-Position! addiw 6 10)
((eq? ch #\2) (Window-Set-Position! addsw 6 10)
(display "Введите название новой БОЛЕЗНИ: " addiw)
(display " Чтобы ЗАКОНЧИТЬ вводить симптомы НАБЕРИТЕ: end" addiw)
(set! n (caar (last-pair *symptom*)))
(set! *it_is* (append *it_is* (list (list ill
(display " Чтобы ЗАКОНЧИТЬ вводить симптомы НАБЕРИТЕ: end" addsw)
(set! n (caar (last-pair *symptom*)))
(set! *it_is* (delete! (list ill nums) *it_is*))
(set! *it_is* (append *it_is* (list (list ill
(define (addsyms nn spis_num nums nwin)
(if (equal? sym "end") (append nums spis_num)
(begin (set! *symptom* (append *symptom* (list (list nn sym))))
(addsyms (+ nn 1) (append spis_num (list nn)) nums nwin)) ))
(cond ((eq? ch #\1) (Window-Set-Position! rediw 11 10)
((eq? ch #\2) (Window-Set-Position! redsw 11 10)
(display " Введите БОЛЕЗНЬ, название которой хотите" rediw)
(display " Введите ИСПРАВЛЕННОЕ название: " rediw)
(set! *it_is* (delete! (list ill nums) *it_is*))
(set! *it_is* (append *it_is* (list (list ill1 nums)) )) )
(display " Введите БОЛЕЗНЬ, СИМПТОМ которой хотите" redsw)
(display " Введите СИМПТОМ, который хотите" redsw)
(display " Введите ИСПРАВЛЕННОЕ ЗНАЧЕНИЕ: " redsw)
(set! *symptom* (delete! (list n1 sym) *symptom*))
(set! *symptom* (append *symptom* (list (list n1 sym1)) )) )
(cond ((equal? (cadar spis) x) (caar spis))
(cond ((eq? ch #\1) (Window-Set-Position! deliw 11 10)
((eq? ch #\2) (Window-Set-Position! delsw 6 10)
(display "Введите название БОЛЕЗНИ, которую хотите" deliw)
(set! *it_is* (delete! (list ill nums) *it_is*))
(find_sym (car spis_nums) *symptom*))
(display "Введите название БОЛЕЗНИ, СИМПТОМЫ которой хотите" delsw)
(display " Чтобы ЗАКОНЧИТЬ вводить симптомы НАБЕРИТЕ: end" delsw)
(begin (set! n0 (sub sym *symptom* spis_nums))
(set! *symptom* (delete! (list n0 sym) *symptom*))
(set! *it_is* (delete! (list ill spis_nums) *it_is*))
(set! *it_is* (append *it_is* (list (list ill
(subdel (del n0 spis_nums) ill)) ))
(t (cons (car l) (del x (cdr l)))) ))

Название: Разработка оболочки экспертной системы
Раздел: Рефераты по информатике, программированию
Тип: реферат
Добавлен 23:43:36 11 июня 2001 Похожие работы
Просмотров: 136
Комментариев: 20
Оценило: 4 человек
Средний балл: 5
Оценка: неизвестно   Скачать

ларингит хронический гипертрофический
3. кашель сначала сухой, затем с мокротой
15. слизистая покрыта густой слизью
16. откашливание с прожилками крови
Если Вам нужна помощь с учебными работами, ну или будет нужна в будущем (курсовая, дипломная, отчет по практике, контрольная, РГР, решение задач, онлайн-помощь на экзамене или "любая другая" учебная работа...) - обращайтесь: https://clck.ru/P8YFs - (просто скопируйте этот адрес и вставьте в браузер) Сделаем все качественно и в самые короткие сроки + бесплатные доработки до самой сдачи/защиты! Предоставим все необходимые гарантии.
Привет студентам) если возникают трудности с любой работой (от реферата и контрольных до диплома), можете обратиться на FAST-REFERAT.RU , я там обычно заказываю, все качественно и в срок) в любом случае попробуйте, за спрос денег не берут)
Да, но только в случае крайней необходимости.

Реферат: Разработка оболочки экспертной системы
Договор Аренды Курсовая
Реферат: Национальная религия Японии - синтоизм
Оплата И Стимулирование Труда Курсовая Работа
Реферат На Тему Особенности Зрительного Восприятия
Психические Расстройства Вследствие Употребления Психоактивных Веществ Реферат
Курсовая работа по теме Проектирование базы данных 'Оптовый магазин'
Диссертация Строительный Контроль Ремонт Дорог
Дипломная работа по теме Образование новых объектов кадастрового учета в кадастровом районе
Реферат по теме Технология изготовления алюминиевой фольги
Курсовая Работа На Тему Разработка Информационной Системы Учета Товаров На Оптовом Складе
Контрольная работа: Анализ отношений в семь. Скачать бесплатно и без регистрации
Контрольная работа по теме Судебно бухгалтерская экспертиза
Комплект Для Практических Работ По Фильтрации Воды
Шпаргалка: Шпаргалка по Методология психологии
Реферат по теме Кино как новый элемент художественной культры
Контрольная работа по теме Понятие и классификация биообъектов. Иммобилизованные ферменты. Биотехнология витаминов и коферментов
Молекулярная физика и термодинамика. Лекция №1 Молекулярно-кинетическая теория
Тетрадь Для Практических Работ 10 Класс
Реферат: Онегин и Татьяна. Скачать бесплатно и без регистрации
Курсовая Работа На Тему Використання Компютера На Уроках Навчання Грамоти
Доклад: Неоновая радужница
Доклад: Тьюринг (Turing) Алан Матисон
Доклад: Абдул-Азиз

Report Page