Литература - intellsyst

advertisement
А.А. Красилов
ИНФОРМАТИКА
В СЕМИ ТОМАХ
Том 5. Основания информатики
(Теоретические основы)
*** Автор приносит свои извинения за неполную публикацию тома
Москва
1997 - 2004
ИНФОРМАТИКА
Том 1. Основы информатики
(Введение в информатику)
Том 2. Информатика смысла
(Машинная лингвистика)
Том 3. Концептуальная информатика
(Толковый словарь по информатике)
Том 4. Представление знаний
(Структуры данных)
Том 5. Основания информатики
(Теоретические основы)
Том 6. Методы информатики
(Изобретание, проектирование,
разработка и сопровождение)
Том 7. Интеллектуальные системы
(Системы решения проблем)
 Альберт Александрович Красилов
УДК ....................
Аннотация
Логика является наукой о мышлении. Информатическая логика раздел логики, который связан с мышлением Интеллсист, и является
основанием информатики в соответствии с определением
информатики.
Настоящие
том
представляет
описание
информатической логики, определяющий методы решения логических
уравнений. Определяются логические лексемы, фундаментальные
операции, правила преобразования логических уравнений, а также
металогика для обоснования логики Интеллсист. Информатическая
логика представляет собой встроенное в Интеллсист знание.
The logic is science about thinking. Informatical logic - sections of logic,
which is connected to thinking Intellsyst, and is the foundation of
Informatics according to the Informatics definition. The present volume
represents the description informatical logic determining methods of the
logic equation decision. The logic lexemes, fundamental operations, rule of
the logic equation transformation, and also metalogic for a substantiation of
Intellsyst logic are defined. Informatical logic represents built-in Intellsyst
knowledge.
(www.translate.ru)
ОГЛАВЛЕНИЕ
Введение
Глава 1. Знания
1.1. Понятие о знании
1.2. Новые знания
1.3. Факты и утверждения
1.4. Знания в данной области и БД
1.5. Формальное представление знаний в Интеллсист
1.5.1. Общие соображения
1.5.2. Некоторые правила формализации
1.5.3. О точности передачи знаний
1.5.4. Вопросы пользователю от Интеллсист
1.5.5. О плохо формализуемых знаниях
1.5.6. Представление знаний аксиомами
1.5.7. Что такое истина
1.6. Проблемы, вопросы, запросы и задачи. Общий подход к решению проблем
1.7. Методы приобретения знаний
Глава 2. Отношения - взаимосвязь данных
2.1. Определения понятия отношение
2.2. Операции с отношениями и их свойства
2.3. Свойства отношений
2.4. Предикаты - обобщение отношений
2.5. Логика отношений
2.6. Многомерные отношения
2.7. Система встроенных в Интеллсист отношений
Глава 3. Логические уравнения
3.1. Определение понятия логического уравнения
3.2. Исчисление проблем
3.3. Общий подход к решению проблем
3.4. Классификация проблем
3.5. Классификация уравнений
3.6. Высказывательные и предикатные уравнения
3.6.1. Смысл высказываний
3.6.2. Бинарные операции
3.6.3. Поиск смысла высказываний
3.6.4. Примеры высказываний
3.6.5. Некоторые проблемы для исследований
3.7. Функциональные уравнения
Глава 4. Решение логических уравнений
4.1. Решение высказывательного уравнения
4.2. Правила вывода решения
4.3. Природа правил вывода решений
4.4. Множество решений
4.5. Исчисления в информатике
4.5.1. Разделы определения операций и констант
4.5.2. Логическая дедукция
4.5.3. Логическая индукция
4.5.4. Роль исходных и искомых величин
4.5.5. Совокупность правил вывода решений логических уравнений
4.5.6. Алгебраическая дедукция
4.5.7. Метаправила вывода
4.6. Аксиомы математической логики
4.7. Система аксиом для решения логических уравнений
Глава 5. Информатическая логика
Введение. О логиках
5.1. Разделы информатической логики
5.1.1. Логика одинаковости и атрибутов
5.1.2. Логика бинарных истин
5.1.3. Логика конъюнкций (совместности)
5.1.4. Логика дизъюнкций (альтернативы)
5.1.5. Логика конъюнкций-дизъюнкций (уровней интеллекта)
5.1.6. Логика предикатов первого порядка
5.1.7. Логика отношений
5.1.8. Логика предикатов высших порядков
5.1.9. Логика арифметики
5.1.10. Логика множеств (операция принадлежности in)
5.1.11. Логика ссылок
5.1.12. Логика индексирования.
5.1.13. Логика именования.
5.1.14. Логика образования последовательности.
5.1.15. Логика операций над строками
5.1.16. Многозначные, модальные и др. логики. К-значная дискретная размытая
логика
5.1.17. Логика фактов или исчисление фактов
5.1.18. Логика программ
5.1.19. Математические и многоместные операции
5.1.20. Логика рекурсивных определений
5.1.21. Логика алгебры
5.2. Логика преобразований и атрибутов
5.3. Общий процесс вывода решений
5.4. Классы конечных результатов решения. Примеры логических задач
5.5. Другие дедукции
5.5.1. Физическая дедукция.
5.5.2. Алгебраическая дедукция.
5.5.3. Геометрическая дедукция.
5.5.4. Аналитическая дедукция.
5.5.5. Логическая дедукция
5.5.6. Программная дедукция
5.5.7.Тригонометрическая дедукция.
5.6. Применение информатической логики
5.7. Значение информатической логики
Глава 6. Алгоритмы логического вывода
6.1. Правила вывода
6.2. Классы правил вывода
6.2.1. Правила исчисления
6.2.2. Частный случай правила исчисления - подстановка значений (придание
смысла) вместо терминов
6.2.3. Правила из аксиоматики ИЛ
6.2.4. Правила замены терминов операций
6.2.5. Правила замены терминов терминами
6.2.6. Правила замены связных терминов на уникальные термины
6.2.7. Правила именования формул уникальными терминами
6.2.8. Правила применения подстановок
6.2.9. Правила применения пользовательских подстановок
6.2.10. Правила применения масштабирования
6.2.11. Правила интерпретации операций
6.2.12. Правила унификации
6.2.13. Правила оптимизации в БЗ
6.2.14. Правила оформления результатов
6.2.15. Правила повышения уровня интеллекта
6.3. Пользовательские правила вывода
6.4. Аксиомы и правила вывода
6.5. Определение унификации. Уточнение алгоритмов на примерах
6.6 Общая структура алгоритма работы с инструментарием Интеллсист
6.7. Алгоритмы машины логического и алгебраического вывода
Глава 7. Информатическая металогика
7.1. Метатеория, логика доказательств
7.2. Библиотеки баз знаний
7.3. Интеллект системы
7.4. Сравнение логик
7.5. Исчисление баз знаний и теорий
7.6. Логика доказательств, логический вывод
7.7. Сравнение исчислений и некоторые теории
Литература
Сокращения для терминов
АП
- алгоритм порождения
АР
БД
БЗ
ВМ
ВУ
ГЯ
ЕЯ
ИИ
ИИС
ИЛ
ИМГР
ИН
Интеллсист
ИП
КС
ЛИПС
ЛУ
МГР
МГР1
МГР2
МГР3
МГР4
МЛ
МЛВ
- алгоритм распознавания
- база данных
- база знаний
- вычислительная машина
- высказывательное уравнение
- граф языка
- естественный язык
- искусственный интеллект
- инструментарий интеллектуальной системы
- информатическая логика
- интерпретатор машины грамматического разбора
- интуиционистская логика
- интеллектуальная система
- интеллектуальное программирование
- контекстно-свободный
- число шагов логического вывода в секунду
- логические уравнения
- машина грамматического разбора
- машина грамматического разбора первого типа
- машина грамматического разбора второго типа
- машина грамматического разбора третьего типа
- машина грамматического разбора четвертого типа
- математическая логика
- машина логического вывода
(решения логического уравнения)
- математическая машина
- машина Тьюринга
- модальная (неклассическая) логика
- пользовательская логика
- процедурное программирование
- пакет прикладных программ
- прологовая система
- система автоматизации проектирования
- средства вычислительной техники
- семантическая грамматика
- синтаксическая грамматика
- синтезированная программа
- система управления базой данных
ММ
МТ
НЛ
ПЛ
ПП
ППП
ПС
САПР
СВТ
СеГ
СиГ
СП
СУБД
СУБЗ
Т
ФРАК
ФУ
ФЯ
ЭС
ЯЛ
ЯПП
ASCII
- система управления базой знаний
- том
- формульный автокод
- функциональное уравнение
- формальный язык
- экспертная система
- язык Лейбниц
- язык профессиональной прозы
- American Standard Code Information Interchange
Введение
Пять десятилетий применения ВМ были связаны с утверждением, анализом и
синтезом алгоритмического знания. Конечно, другие виды знаний также были частью
внимания разработчиков и пользователей программ. Другие виды знаний служили
исходными данными или результатами вычислений. Теперь проблема состоит в том,
чтобы уровнять в некотором смысле роль различных видов знаний. Все они должны
использоваться как для ввода-обработки-вывода, так и для представления действий
над другими видами знаний. Эту проблему попробуем рассмотреть со всех сторон.
Исторически применение ВМ связано с переработкой (при построении
программ) главным образом алгоритмического знания. Основной технологией
переработки алгоритмического знания были сами знания и интуиция программиста, а
также подсказка ему со стороны пользователя ВМ о сущности исходного знания по
проблеме. Разрыв между деятельностью пользователя (постановщика проблем) и
деятельностью программиста (реализатора проблем) накладывал свой отпечаток на
логическую точность передачи знания и на уменьшение реального времени получения
результатов применения ВМ. Эти обстоятельства порождали и порождают новые
методы анализа и синтеза алгоритмического знания.
Как было отчасти подмечено, алгоритмические знания используются для
исследования других видов знаний, в том числе и самих алгоритмических знаний. В
этом проявляется проблема знания о знаниях и является главным в подходе к нашей
проблеме: уравнять все виды знаний при использовании ВМ. Напомним, что
различными видами знаний являются: описательные, семантические, концептуальные,
фактографические, теоретические, алгоритмические и кибернетические. Основным
видом знаний в этом томе будут теоретические знания. Ими воспользуемся для
осмысления фундаментальных основ информатики (оснований информатики) и
теории построения Интеллсист.
Для начала воспользуемся высказыванием С.М. Адяна в [Гильберт79]: «Брауэр
(1908) выступил против применения классической логики к бесконечным множествам.
В выдвинутой им интуиционистской программе предлагалось отказаться от
рассмотрения актуальной бесконечности, т.е. бесконечных множеств как завершенных
совокупностей...». Против нападок Брауэра и его требований перестройки всей
математики решительно выступил Гильберт. Его новый «путь, основанный на
применении аксиоматического метода, рассмотрении формальных моделей
содержательной математики и исследовании вопросов непротиворечивости таких
моделей надежными финитными средствами, получил в математике название
финитизма Гильберта». Это высказывание для нас представляет интерес, поскольку
оно выражает два главных направления в математике. Попробуем отклониться от этих
направлений для поиска именно машинных подходов в математике. А точнее,
сформулируем логику, которая учитывает имеющиеся два направления. Спор об
актуальности направлений в математике разрешается так: ВМ должна усваивать ту
логику, которой располагает и применяет пользователь ВМ для решения своих задач.
Поясним смысл высказанных положений.
1. Аксиоматический метод служит для описания действительности во всех ее
проявлениях. Этот метод обслуживает и мыслительные действия человека, что
представляет несомненную ценность возможностей метода. Это положение об
аксиомах будет главным и в наших рассмотрениях. Аксиомы, как безапелляционные
высказывания о предметах, явлениях, процессах или их свойствах, будут играть
основную роль в вопросах представления знаний. Здесь важно отметить, что в
информатике понятие аксиомы расширено и снято табу математики с этого понятия.
Пользователь сам определяет состав естественных для него аксиом и применяет их в
решениях своих задач.
2. Проблема математических моделей важна изначально как возможность
терминального представления всякого знания, знания любого вида. Мимо этой
проблемы не пройти никоим образом при использовании ВМ и при математическом
обосновании информатики. Заметим, что формальная теория также для нас
представляет математическую модель, которая подчас будет способствовать решению
формальных проблем. Такой взгляд позволяет объединить все логики и использовать
их объединение для решения формальных и неформальных (не формализованных)
задач и проблем с помощью ВМ и Интеллсист.
3. Непротиворечивость описаний, как фундаментальная проблема
исследования формальных, а подчас и неформальных, знаний, была конечной целью
оснований математики. Для информатики обеспечение непротиворечивости описаний
является начальной целью, а точнее - рабочей целью. Это важное обстоятельство
должно быть взято также на вооружение любого исследования, связанного с
применением ВМ. Проблема непротиворечивости приобретает новое свойство,
расширяется и выступает под названием отладка знаний, когда непротиворечивость
описаний предшествует основной работе со знаниями. Важно обнаружить
противоречия в описаниях до решения первой же задачи.
4. Главная техническая проблема - получение доказательства - остается в
математике основной при проявлении логики мышления, математического мышления.
Вот тут-то будет обнаружено расхождение с общепринятым в математике подходом к
средствам изучения реального или мыслимого мира. Попробуем принять проблему
выявления условий, при которых становится истинным некоторое высказывание.
Другими словами, не теорема является главным предметом изучения информатики
(хотя она совершенно не пренебрегает и рассмотрением теорем), а любое
высказывание, которое интересует пользователя с точки зрения определения условий
истинности. Это главная практическая задача информатики.
5. Информатическая логика - основания информатики - делает возможным
решение проблем с помощью ВМ, ставящихся классической, интуиционистской и
другой математикой и с учетом возможности применения актуальной бесконечности
(как видно из приведенной цитаты имеются проблемы относительно актуальной
бесконечности, их надо решать так, как это делает человек) и других принятых или не
принятых объектов исследования. ИЛ здесь занимает центральное место.
6. Пользовательская логика составляет сущность БЗ и запросов,
разработанных конкретным человеком. Классические логики заложены во встроенную
БЗ Интеллсист. Для классика не обязательно строить новую БЗ, если он не вводит
новые константы, величины или операции. Пользовательская логика состоит из
базовых суждений, своего лексикона и утверждений о проблеме (задаче), которая
подвергается анализу или разрешению. Она станет достоянием других, если БЗ,
лексикон и проблемы пользователя станут понятными и общими.
7. Если человек берется решать любые проблемы классики или интуиционизма,
то целесообразно ставить вопрос о применении ВМ для этих же целей. При этом надо
помнить, что человек и ВМ для решения проблем должны ставиться в одинаковые
условия по используемым знаниям. Нельзя производить сравнение возможностей
человека и машины, снабдив их различными объемами знаний. Аналогично,
сравнения способностей людей различных специальностей не делают, если они имеют
не совпадающие образование, язык или опыт.
Любознательность любого человека сводится к постановке вопроса или
формированию запроса (проблемы, требования, затруднения, осложнения, вопроса и
др. синонимов для данного смысла) с получением или поиском ответа. Иногда вопрос
уже содержит ответ, что установить подчас бывает весьма сложно. Иногда ответ
невозможно найти принципиально (из-за недостатка знаний). Наконец, иногда имеется
большое число ответов, и все они удовлетворительны. Последняя ситуация может
оказаться неприемлемой ни математиками, ни практиками, поскольку переданное ВМ
знание не позволяет выяснить категорического ответа. Кто знает, может быть эта
ситуация является самой лучшей. Спросите пользователя, который может сказать, что
для него это важно, так как только человек способен дать окончательный ответ. Здесь
возникает важное обстоятельство. В практике отпадает требование единственности
решения, ВМ должна автоматически разрешать проблему единственности, если она
действительно разрешима в конкретных условиях. Таков ассортимент реакции любой
Интеллсист при постановке вопросов или запросов. Большинство алгоритмов и
программ, исключая Интеллсист, разработаны так, что число ответов (решений
задачи) на запрос не фиксировано. Число ответов должно определяться объемом
знания, участвующего в решении проблемы, структурой и полнотой запроса и
методом поиска нового знания - ответа на запрос.
Работа математика чаще всего состоит в построении теорем. Метод и кухня
(технология) построения (конструирования) теорем чаще скрыты за железными
дверями мыслей математика. Читатель (или анализатор результатов поиска
математика) занимается логическими упражнениями при чтении логических выкладок
математика. Едва ли разрешима проблема расшифровки метода и кухни
математического мышления. Рассмотрим проблему другого сорта. Теорема - это
логическое высказывание, которое доказано математиком. Любое логическое
высказывание - это утверждение о предметах, явлениях, процессах или их свойствах.
Чтобы оно стало теоремой необходимо проделать логические выкладки. Чаще всего
эти выкладки будут связаны с выявлением новых условий, при которых исходное
высказывание будет истинным. Общая проблема построения доказательства и состоит
в поиске условий такого сорта. Эта работа должна быть поручена ВМ.
Теперь можно высказать то главное, что характеризует новую информатику.
Фундаментальная проблема оснований информатики может быть сформулирована так:
Создать процедуру поиска условий, при которых логическое
высказывание становится истинным, или установить, что таких
условий не существует (поиск относительной истины).
Классической МЛ ставит вопрос о том, как найти доказательство утверждения (поиск
абсолютной истины), а интуиционистская логика - как построить объект по
доказанному утверждению (поиск алгоритма для достижения абсолютной истины).
При этом на объекты исследования, относительно которых строятся утверждения
(в том числе и теоремы), не будет накладываться какие-либо ограничения
(финитности, синтаксической эквивалентности, семантической неясности и др.),
поскольку сами ограничения могут содержаться в имеющемся знании (например, для
исследования самих ограничений), которое сообщается для ВМ. Если знаний будет
недостаточно, то ВМ должна сообщить об этом, в противном случае ответ будет
неполным и не соответствовать ответу классика или интуициониста. Знание об
объекте исследования определяет качество ответа, о чем было упомянуто выше.
Главное возражение против нового подхода к рассмотрению логических
выражений состоит в том, что этим целям якобы уже служит МЛ. Однако ее
недостаточность можно объяснить следующим образом. Выделим те сложности
аппарата МЛ, которые препятствуют успешному внедрению информатики в практику
решения задач или применения ВМ в различных сферах деятельности человека.
Рассмотрим некоторые сложности МЛ.
В МЛ выработалось огромное число разнообразных исчислений (систем аксиом),
которые ориентировали пользователя на ту или иную фиксированную область ее
использования. Информатика должна ориентировать пользователя на эффективное
использование ВМ без вмешательства специалистов, понимающих математику или
информатику, но не представляющих всех особенностей области конкретных
исследований пользователя (к пользователям относится и математик). Необходимо так
ориентировать информатические средства, чтобы далекий от информатики
пользователь был максимально приближен к ВМ. Понимание МЛ пользователем
почти невозможно без специалиста или предварительного изучения. Полное
понимание даже собственных фраз с позиции пользователя весьма затруднительно.
Необходимо обеспечить пользователю те возможности, при которых он не
соприкасался бы с понятиями логики, а находился в своей области знания.
Необходимо одно исчисление (исчисление ИЛ), которое бы обеспечило всех
простыми средствами доступа к ресурсам ВМ для решения его проблем в его
постановке и понимании. Главная задача в этом контексте состоит в устранении для
пользователя каких-либо формальных средств разрешения его проблем или в сведении
к минимуму знаний о формализме, оставаясь, например, на уровне грамматики
родного языка. Аналогичная ситуация может быть замечена относительно большого
числа совокупностей правил вывода истин в многочисленных исчисленьях, которые
чаще всего бывают избыточными. Программирование всех совокупностей привело бы
к построению емких файловых систем для их хранения. Заполнение памяти ВМ
избыточной информацией приводит к возникновению информационного взрыва.
Такими свойствами обладают ЭС.
МЛ не предлагает средств и методов для реализации операций композиции пары
исчислений с тем, чтобы для данных классов задач можно было бы построить
конкретное исчисление. Причем ИЛ в противовес этому избегает предлагать
пользователю явные средства построения композиций исчислений, а используются
доступные и естественные средства формирования знаний из различных источников.
Сами знания выступают как собственные исчисления, необходимые только для данной
области исследований и решения задач.
Эффективность и надежность важны были всегда. ИП должно обеспечить такие
свойства применения ВМ. Имеется суждение, в соответствии с которым всякая
интеллектуальность обязана сжатию информации, повышению эффективности и
надежности. Сжатие информации в Интеллсист выполняется многими процедурами.
Одной из важных процедур является процедура оптимизации. Работа МЛВ в
Интеллсист выполняет именно такую процедуру исключения «избыточных» констант,
величин и операций. Другая процедура анализирует текст и переводит лексемы в код,
составляя при этом таблицы соответствия имеющихся лексем их кодам. Третья
процедура свертывает выражения (формулы) в деревья или таблицу «веточек» с
исключением повторов. Процедура интерпретации (или реализации смешанных
вычислений) исключает статические выражения, сокращая объем знаний и запросов.
Процедуры применения правил также ориентированы на сжатие информации.
Имеются и другие процедуры минимизации. Вот таков примерный перечень процедур,
осуществляющих автоматическое сжатие информации в рамках ИП.
МЛ не включает в качестве операции такие, как действия с выражениями,
аппарат аналитических выкладок, а ведь ручная работа реализуется по наитию и
создает условия для появления ошибок. Обычно такой аппарат на ВМ представляется
автономно и реализуется он автономно от уже имеющихся средств решения задач.
Аналитические выкладки находятся вне МЛ. Это приводит к тому, что сам аппарат
выкладок не сопряжен явно с аксиоматикой. Все следствия этого должны сказываться
на результатах самих аналитических выкладках, которые становятся в связи с этим
искусством инженера-математика или ученого-аналитика. Скорее здесь действуют
методы теории изобретательства, а не строгая логика и теория построения новых
математических объектов. При реализации аналитических выкладок обычно
отсутствуют какие бы то ни были указания об условиях выводимости новых
формульных аналитических зависимостей. Автоматическое получение условий
выводимости должно обеспечиваться автоматическим контролем над процессом
аналитических преобразований.
При рассмотрении процедур доказательства теорем методом дедукции можно
заметить, что они работают с деревом вывода, размеры которого бывают огромными
или бесконечными. Сам процесс построения доказательства в МЛ сталкивается со
сложностями анализа тупиковых ситуаций при анализе дерева вывода или поиска
самого вывода. В связи с этим построение доказательства в математике связано с
пустыми (не результативными) шагами. Имеется необходимость построения аппарата
без тупикового и эффективного вывода решений для известных и новых задач.
Аналогичный вопрос возникает в связи с автоматизацией отладки процессов
аналитических выкладок, вычислений и поиском новых фактов. Автоматический
поиск ошибок важен для построения технологии решения любой проблемы.
Поскольку МЛ никоим образом не связана с аналитическими выкладками, то она не
может помочь делу поиска решений логических уравнений.
Критика сложностей МЛ является формулировкой требований для построения
ИЛ, реализация которых расширяет возможности самой МЛ. Работы по основаниям
информатики проводятся здесь по следующим направлениям:
- раскрепощение аксиоматической математики от устоявшихся форм идеального
мышления к практическому мышлению, а также реализация существенного
поворота к запросам практики использования ВМ;
- все исследования направлены на обоснование понятий знание, обработка и отладка
знания и синтез нового знания с помощью ВМ;
- современный период применения ВМ характеризуется требованиями глубокого
обоснования процессов использования возможностей и ресурсов ВМ для решения
каждой конкретной задачи;
- аксиоматический метод математики имеет дело с фиксированным набором
абстрактных объектов, а практика применения ВМ привлекает все новые и новые
практически полезные объекты для исследования;
- обобщение логик и привлечение любой логики необходимы для использования ВМ
в решении любых проблем, для получения точных или «приближенных»
разрешений любых запросов пользователей в пределах «компетенции» ВМ или БЗ;
- построенная ИЛ, относительно которой пойдет речь в этом томе, служит средством
практического обоснования машинных алгоритмов, что обеспечивает надежность в
получении результатов и надежность самого результата применения ВМ;
- процессы моделирования мышления или интерпретации интеллекта (как одно из
направлений информатики) становятся привлекательными по мере развития
информатики;
- учет любых стандартных или пользовательских моделей должен быть
обязательным для всеобщего охвата проблем пользователя.
Основания информатики рассматриваются доказательно и подробно с помощью
математического аппарата. Так, например все законы и правила для получения
решения вопросов, проблем и заданий на основе знаний представляются внешне с
помощью математических средств, введенных и проконтролированных в Интеллсист.
Центральная часть исследований - аксиоматика ИЛ - является предметом настоящего
тома. Все остальное служит достижению этой цели.
Критерием истины является опыт.
Т. Кампанелла
Знание - дело наживное
Глава 1. Знания
Цель главы - провести подготовительные рассуждения о понятии знание для
дальнейшего построения представлений конкретных или абстрактных знаний при
вводе их, обработке и выводе нового знания. Без четкого определения представлений
знаний невозможно построить программы их обработки.
Знания - предмет информатики (но не только информатики, а всех наук). Знания
интересуют информатику с точки зрения технологии обработки и получения нового
знания с помощью ВМ. Знания в философском толковании или роль знаний в
социологии здесь не изучаются. Эти общие проблемы исследуют многие
гуманитарные науки. К этому следует добавить два замечания. Первое - понятия
знание часто используется здесь вместо понятия представление знания, второе толкование или исследование знаний в смысле философии или социологии возможно
с помощью Интеллсист. Подобные замечания важны для правильного восприятия
последующего материала. Будем ограничиваться рассмотрением методов
представления знаний (или знаний) для подключения алгоритмов преобразования
таких представлений, а также частично будем касаться вопросов перехода от
машинных представлений к известным человеку представлениям знаний.
Самыми общими, распространенными и известными формами представлениями
знаний являются символьные, графические или предметные (образные)
представления. Символьные представления знания предполагают использование
простых графических изображений знаков в ограниченном количестве и пространстве.
Их общее количество невелико (26, 33, 59 или 5000). Графические представления
знания (рисунки, чертежи, живописные картины или фотографии) предполагают
использование неограниченного (или, по крайней мере, большого) объема
технических средств для хранения и воспроизведения. Еще более мощным средством
представления знаний является предметное (видовое, звуковое, вкусовое и др.
примеры). Ограничимся применением символьного представления знаний, которые
могут использоваться в настоящее время для обработки знаний. В последнее время
начинает развиваться совокупность методов обработки видео или графических
представлений. Почти все проблемы информатики обработки знаний, представленных
в графическом виде здесь не рассматриваются. Быстрая обработка телевизионного
изображения по смыслу (пример предметного представления знаний) пока имеет
технические сложности, которые тоже не рассматриваются. Здесь используется закон
информатики о возможности представления графических и предметных
представлений через символьные (имена, величины и файлы).
Символьный метод представления знаний предполагает частичную или полную
формализацию знаний, без которой с одной стороны человек не может заниматься
обработкой знаний, с другой стороны он может воспринимать и понимать знания. К
символьной формализации человек обучен со дня рождения. Другие известные
методы представления знаний (рисунками или предметами) полезны для общения
человека с природой, они предоставляют человеку широкие горизонты для
информатических исследований. Рассматривались и будут рассматриваться
дальнейшие формализации представлений знаний, изучая при этом места потери
частичного знания.
То, что мы знаем - ограничено, а что не знаем - бесконечно.
Апулей
1.1. Понятие о знании
Общечеловеческое определение понятий «знание» и «информация» подробно
рассмотрено в т.1. Теперь бросим взгляд на знания как на средства передачи полезных
сведений в память ВМ для успешного решения проблем. Проведем некоторые
рассуждения. Интересен вопрос о том, что информатика занимается только
представлениями знаний, которые после ввода их в память ВМ становятся ее
знаниями. Со временем будут считать именно так, что введенные в память ВМ знания
являются ее знаниями.
Определение знания можно заимствовать из энциклопедии или даже представить
его читателю самому, воспользовавшись своей интуицией или своими знаниями. В
определении знаний и их представлений необходимо каким-либо образом отобразить
возможности ВМ для ввода, хранения и обработки различных представлений знаний.
Наша привычка состоит в том, что знания обычно связываются только с человеком.
Знания, мол, можно передавать только от человека к человеку, а ВМ является
своеобразным промежуточным звеном. Только человек может обладать знаниями,
учиться и обучать других. Но поскольку знания фиксируются на бумаге, значит они
могут быть введены в память ВМ и обработаны, а результаты обработки могут быть
выведены на печать или в память другого сорта. В результате обработки знаний
получается новый материал. В связи с последней фразой возникает несколько
вопросов. Рассмотрим такие вопросы:
- что такое новый материал, упомянутый выше,
- представляет ли он знания,
- что делает человек для получения нового знания,
- как формализовать получение нового знания,
- можно ли считать, что полученный от ВМ ответ на вопрос или запрос
представляет собой новое знание?
Для построения ответов на эти вопросы необходимо исследовать следующие
проблемы:
 что такое предметные и проблемные области,
 каким образом связаны понятия (которые определены в т.2) между собой,
 как определяются понятия,
 какие способы представления знаний имеются,
 с какими формальными моделями будем связаны при изучении
представлений знаний,
 какие методы решения задач по поиску нового знания существуют,
 наконец, как воспользоваться системой человек-ВМ для получения нового
знания.
Перечисленные проблемы составляют основу для данных ниже исследований.
В качестве исходных понятий примем следующие понятия:
 факт,
 утверждение о фактах,
 правило вывода новых фактов из имеющихся,
 метаправило вывода новых правил из имеющихся правил (и далее можно
понимать рекурсивное применение понятия правила).
Постепенно эти понятия связываются с понятием знание. Именно так будут построены
ответы на поставленные вопросы. Ответы не являются окончательными, в этом
просматривается проблема для постоянных исследований, в этом можно усмотреть
развитие понятия знания в информатике.
Понятие предметной области связано с описанием знаний о множествах тех
значений (данных), которые используются или будут использоваться в процессе
поиска ответов на запросы, и с именами этих множеств. Потенциальная оценка
возможных значений обеспечивает надежность процесса обработки знаний и
результатов поиска. Например, отрезок натурального ряда 1..100 определяет
предметную область индекса некоторой величины. Понятие проблемной области
связано с наборами тех операций (процедур), которые будут использованы в
представлении знаний и процессах поиска ответов на запросы. Потенциальный набор
операций, характеризующий проблемную область, обеспечивает получение ответов на
класс запросов пользователей. Например, с величинами из предметной области
«отрезок натурального ряда» можно оперировать с помощью арифметических
операций. Предметная и проблемная области очерчивают круг данных и операций, в
пределах которого в память ВМ закладываются знания, ставятся вопросы и находятся
ответы. Иногда эти области именуют миром поиска или исследования.
Данные выше интуитивные определения предметной и проблемной области
распространяются на все семь фундаментальных видов представления знаний, они и
данные интуитивные понятия подробно изложены и определены в т.1. А опыт
конструирования Интеллсист показывает, что этих видов представлений достаточно
для ввода любых знаний в память ВМ. При этом будет использовано формальное
средство для внутримашинного представления знаний о предметной и проблемной
области. Этим средством является формализм логических формул языка Лейбниц
(также см. т.2). Формальные средства для представления знаний (как правило)
используются только для внутрисистемных операций. Имеется одно исключение из
этого общего правила: формальные средства используются вне системы, если этого
желает пользователь, если они являются средствами языка профессионала в своей
области знания.
Существует огромное множество методов решения самых разнообразных
проблем средствами, которыми располагает человек. При решении проблем человек
опирается на имеющиеся знания. Такой общий подход принят и в информатике при
формировании методов поиска решений различных проблем. ВМ с помощью
программы, именуемой Интеллсист, окончательно решает только те проблемы,
которые разрешимы в среде имеющихся знаний. В противном случае ВМ может
запросить дополнительные знания или постановщик проблемы может воспользоваться
промежуточными решениями, также представленными в заданных предметной и
проблемной областях.
В качестве технического средства будет использована система человек-ВМ, хотя
методология информатики может быть использована человеком вручную. Понятия
предметной и проблемной областей при этом сохраняют свои значения. Например, все
приводимые примеры решения конкретных проблем будут решены именно вручную
для наглядного сопоставления работы ВМ и человека. При этом Интеллсист может
использоваться для рассмотрения примеров только в качестве тестов или проверки
правильности работ вручную.
Данные выше предварительные ответы на вопросы являются вводными, они
необходимы для пояснения принципов и средств, которые будут использоваться в
процессе построения оснований информатики. Следует помнить, что окончательные
ответы на указанные выше вопросы можно получить только к концу т.7.
Рассмотрим кратко проблему классификации знаний. Первая и фундаментальная
классификация рассмотрена в т.1. Семь видов представлений знания там рассмотрены
достаточно широко. Представления знаний в реальных условиях, исключая
специальные методы формализации типа шифрования, что является специальным
вопросом для информатики, проявляются при классификации видов представления
знаний в прикладном смысле следующим образом:
- символьные последовательности, например иероглифы, знаки Морзе, или Брайля,
каждый знак может передавать знания;
- тексты на некотором языке в некотором алфавите символов служат языковым
средством представления знаний;
- словари определений являются наиболее ярким примером представления знаний;
- массивы, записи и таблицы (если они связаны с именами) представляют средство
скрытого изображения фактических знаний;
- формулы в самом общем понимании и их последовательности, которые, вообще
говоря, позволяют формализовать знания так, что с их помощью можно
осуществлять обработку знаний;
- программы на некотором языке в информатике являются ныне главным средством
представления алгоритмического знания при использовании ВМ, но это средство в
эффективном использовании доступно только программистам;
- символьные системы обработки представлений и описаний знаний являются
универсальным средством для выработки нового знания.
Такова неформальная классификация способов или методов символьного
представления знаний, она вводит нас в исследование потребительских методов.
Знания обычно, а в Интеллсист в особенности, собираются в БЗ, элементы
которой являют некий способ классификации знаний. Можно рассматривать такие
сорта элементов БЗ на примерах:
1. записи фактов, декларативная форма;
2. семантические сети или описание языка;
3. фреймы или определения понятий;
4. массивы пар имя-значение и таблицы со столбцами;
5. исчисления формальных систем или аксиоматика;
6. процедуры как форма представления алгоритмического знания;
7. метазнания или правила вывода нового знания.
Такая классификация напоминает первые две, но она используется при построении ЭС
и ПС. Все приводимые классификации не касаются графов и геометрии, которые
могут быть сведены к указанным способам представления. Будем считать, что имеется
договоренность о том, что их надо рассматривать обособленно. Скорее всего, таким
перечислением не ограничиваются способы классификации знаний и их
представлений. Естественным образом знания классифицируются по отраслям знаний
и наукам. Подобная классификация пригодна для упорядочивания БЗ. Скорее всего,
здесь используются свойства и признаки предметных и проблемных областей.
Классификацию БЗ обычно осуществляют пользователи Интеллсист.
Основной классификацией знаний является научная прагматика. Она возникла
естественным образом в процессе развития науки. Вся совокупность знания
подразделяется на профессиональные области деятельности человека. Если число наук
имеет порядок 300, то и число позиций в классификации оценивается так же. На самом
деле число областей деятельности человека больше указанного числа (примерно на
порядок). Приведенная арифметика дает только приблизительное понимание
прагматической классификации знаний, но она важна для сопоставления с другими
классификациями. Для решения задач с помощью Интеллсист необходимыми
являются БЗ. Их число сопоставимо не только с числом наук, но и с числом областей
деятельности человека.
Совокупность знания в данной области деятельности человека определяет БЗ.
Если БЗ будет передана Интеллсист, то можно получать ответы на запросы
пользователя этими знаниями. Область знания, представленная в БЗ, обладает такими
свойствами: полная смена БЗ приводит к решению нового класса проблем, дополнение
БЗ приводит к получению более точного решения проблемы, использование данной БЗ
обеспечивает решение конкретных проблем данной области знания.
Человек умеет разрешать проблемы, используя то, что ему известно, после
изучения источников знаний, в результате поиска требуемых знаний или реализации
логического вывода по известным знаниям. Интеллсист является ориентированной на
человека системой, поэтому о ней можно судить как о человеке: Интеллсист умеет
разрешать проблемы, используя то, что ей известно, после обработки источников
знаний, в результате поиска требуемых знаний или реализации логического вывода по
известным знаниям, ориентации на память ВМ, сохраняющую БЗ.
1.2. Новые знания
Будем использовать посылку, что все знают или имеют представление о понятии
«новое». Обычно под новыми знаниями понимают знания, которые нигде и никогда не
использовались и не фиксировались данным человеком (знания для индивидуума) или
группой людей (знания для группы лиц). При таком подходе можно обнаружить, что
новых знаний не бывает, в соответствии с поговоркой «Новое - это хорошо забытое
старое». Это одна крайность. На другом полюсе стоит высказывание: «Вот это да!».
Как обычно оба полярных высказывания не приемлемы абсолютно. Для школьника
все сообщения учителя являются новыми знаниями. Такое или подобное ему
обстоятельство ближе всего показывает на то, что такое новое знание. Даже
напечатанный текст в книге является новым знанием для читателя, который впервые
видит подобные книги.
Вначале память ВМ пуста. Процессор ВМ имеет потенциальные возможности
выполнения операций. Всякая введенная информация в память ВМ является
относительно ВМ новой. В результате работы программы ВМ получаются новые
сведения независимо от того, какой раз запускается программа на выполнение. Это
важно для понимания того, с чем будем иметь дело, что хотим получить в результате
этого дела. Постепенно память ВМ заполняется сведениями, на основе которых она
может конструировать новые сведения.
Конечно, главным фактором или критерием того, что в результате работы ВМ
получаем новое знание, является оценка (скорее всего человеком) знания, его
важности для дальнейшего применения, роли полученного знания для человека и для
принятия им решений. Будем оставлять в стороне эти и подобные им вопросы, когда
рассматриваем применение ВМ для обработки знания. По мере необходимости будем
возвращаться к таким вопросам, специально оговаривая такие рассмотрения заранее.
Точнее всего новое знаний связано с ответами на вопросы, начинающимися со слов:
«найти», «существует», «какой», «сколько» и др. Такие слова относятся к величинам
некоторого типа, значения которых неизвестно. Ликвидация неизвестности приводит к
новому знанию, когда будут определены значения для неизвестных величин.
Заметим, что нас будут интересовать сообщаемые человеком знания. Они могут
касаться предметов, явлений или процессов, они могут относиться к свойствам,
характеристикам или признакам предметов, явлений или процессов, они могут
формировать отношения, соотношения или зависимости указанной атрибутики.
Исходными средствами для отображения знаний в памяти ВМ являются данные или
имена данных. (Понятия данных и имени раскрыты раньше, поэтому не будем
возвращаться к определению этих понятий.) Из исходных средств будем строить
составные конструкции - данные или имена этих данных более сложной структуры. В
конечном счете, подойдем к понятию представления знаний из данных и имен. В
частности, а может быть и в общем случае, имеем дело с фразами ЕЯ, со знаниями
человека, который хорошо или не очень хорошо умеет представлять свои знания на
своем профессиональном языке. (ЕЯ членится на части, именуемые ЯПП.) Два
понятия - ЕЯ и ЯПП - будут в поле зрения всех исследований системы человек-ВМ.
Итак, при выводе некоторых данных из ВМ получается материал, который
можно именовать новым. А новый материал - это и есть новое знание. Человек достиг
этого путем запуска программы с его данными. Следовательно, для того, чтобы
получить новое знание необходимо составить программу (которая может иметь смысл
в общечеловеческом понимании в любой его деятельности) и выполнить ее на ВМ.
Работа по составлению программы связана с определенной долей формализации
(абстракцией от конкретного знания). При этом человек ставит проблему получения
на ВМ требуемого результата, который и представляет собой новое знание. Человеку
нет смысла запускать программу, если он не получает чего-либо нового.
В последнее время большое внимание уделяется проблеме обнаружения нового
знания из данных. Проблема не нова, но с появлением и развитием рынка товаров, а
также с внедрением ВМ на фирмах, стали накапливаться большие объемы данных, из
которых можно добыть новое знание. Проблема не нова в силу того, что практика
применения ВМ выработала большое число методов, алгоритмов и программ
статистической обработки данных и моделирования. Только анализ данных позволяет
увеличивать прибыли фирм на основе обоснованного анализа. Направление по
реанимации алгоритмов обработки данных теперь именуется технологией добычи
данных (data mining, см. [Красилов05б]). Достаточно упомянуть такие реанимируемые
методы как регрессионный анализ, прогнозирование временных последовательностей,
кластеризация данных, избирательный анализ, формирование ассоциаций данных и
комбинированные методы. Средствами реализации анализа являются методы: дерево
решений, индукция, аналогия, логическая регрессия и визуализация. Кроме этого
находят применение новые методы программирования: нейронные сети, нечеткие
логики, генетические и эволюционные алгоритмы. Процессы добычи нового знания
включают сбор данных, их подготовку для обработки, оценку и интерпретации
данных, построение и использование моделей с исследованием результатов
моделирования. Реализация методов и моделей позволяют получать новое знание.
Наше рассмотрение методов получения нового знания основано на сборе известного
знания и логическом выводе нового. Применение указанных методов и моделей
добычи данных может использоваться для формирования БЗ или запросов.
Интеллсист (как программа) логически выводит всякий раз новое знание после
разрешения запроса пользователя на основе знаний, сообщенных ей в процессе
обучения. Ее новые знания являются действительно новыми относительно заложенной
в нее БЗ. Ее новые знания могут оказаться новыми и для пользователя. Новым знанием
будут сведения даже в том случае, если введенный запрос пользователя не был
разрешен из-за отсутствия знаний. Если это так, то цель применения Интеллсист
считается достигнутой.
Факты - упрямая вещь.
А. Лессаж
Сам по себе факт - ничто. Он приобретает ценность
лишь благодаря идее или в силу доказательств.
К. Бернар
1.3. Факты и утверждения
Высказывание, содержащее конкретные данные для описания предмета, явления,
процесса, их свойств и их имена, представляет факт, относительно которого можно
сказать, что он истинен без доказательства (статус аксиомы). Пример факта: «Этот
текст описывает определение факта». Здесь предметом является «Этот текст», а
конкретным данным - текст «описывает определение факта». Имеется убеждение в
истинности этого факта. Если кто-либо не убежден в этом, он должен рассмотреть
свою логику и решать свои проблемы относительно такой фразы. Для решения наших
проблем истинность этого факта устраивает нас. Простейшими фактами являются
пары из имени и значения: «мне 25 лет» или «погода хорошая».
Факт содержит имя понятия. Можно говорить условно, что факт поименован.
Именованный факт представляет средство для передачи знания. В примере выше
именами фактов являются понятия «Пример факта», «Этот текст», «мне» и «погода».
Знание можно считать тогда материализованным, когда некоторое утверждение (факт)
представлено вместе с его именем. Пара <имя, значение> является формализацией
факта. Идея пары имени и значения была высказана Фреге, она наталкивает на мысль
об использовании пары <имя, значение> в качестве средства представления
элементарного (атомарного) знания. Будем следовать этому фундаментальному
определению факта (и элементарного представителя знания), заимствованному у
Фреге [Фреге77, Черч60]. Факты могут быть истинными или ложными. Они являются
логическими выражениями. Другие квалификации фактов допустимы в специальных
многозначных логиках. Ложными факты могут стать при сопровождении записи факта
отрицательной частицей "не": «не мне 25 лет» или «не погода хорошая».
Высказывание, содержащее логически связанные (прямо или косвенно) между
собой факты и описывающие предметы, явления, процессы или их свойства,
представляет утверждение о фактах (или проще - утверждение или логическое
выражение). Утверждения нельзя или не всегда можно принимать на веру, их нельзя
считать заведомо истинными или воспринимать без доказательства (логического
вывода из известных фактов), кроме выражений-аксиом. Каждое утверждение
необходимо установить, подтвердить или исследовать. Например, «Х сложить с У
больше 0» является утверждением о фактах, истинность или ложность которого
следует установить. Ничего не известно о Х и У, об операциях + и >, поэтому смысл
утверждения остается неопределенным. Сообщив сведения об этих частях фразы
можно получить новые факты. Например, если Х и У - целые числа, то легко понять
смысл утверждения Х = 0 и У = 0, утверждения становятся другими и конечные новые
факты будут различными в этих двух примерах. Утверждения являются логическими
высказываниями, принимающими значения лжи или истины. Понятия о фактах и
утверждения о фактах интуитивно ясны. Обычно они являются результатами сбора
или фиксации виденного, связывания событий между собой, определения некоторого
нового события или логичные рассуждения о событиях. Будем рассматривать
соединение или получение новых фактов или утверждений с помощью операций или
правил вывода. Они представляют собой утверждение о фактах более высокого
порядка, чем простое утверждение или совокупность связных фактов.
Высказывание, содержащее логически связанные между собой факты и/или
утверждения о фактах и описывающие потенциальный процесс замены сложно
связанных фактов и утверждений на более простые факты и утверждения в результате
логичного рассуждения относительно первых, представляет правило вывода. Правила
вывода собирают (коллекционируют, спрессовывают, кодируют) некоторую
совокупность фактов и осуществляют потенциальную замену сложных на простые
(или удобные) факты. Их роль будет ясной при рассмотрении конкретных примеров.
«дождь идет или дождь не идет является истиной» представляет пример правила
логического вывода, если в понятие дождь вкладывать некоторый абстрактный смысл.
Вместе с правилами вывода можно рассматривать метаправила вывода - правила
вывода для правил вывода. Процесс определения метаправил можно продолжить. Но
обычно в этом нет никакой необходимости. Последнее утверждение основано на том
факте, что правило является утверждением о фактах некоторого общего типа, а
метаправила ничем не отличаются от подобных утверждений. Можно предположить,
что в качестве метаправил можно рассматривать обычные правила. Этого будет
достаточно для описания любого знания.
Факты и утверждения о фактах, а также правила вывода, в общении людей
представляются фразами ЕЯ или ЯПП. Фразы переводятся транслятором Интеллсист
во внутреннее представление после ввода их в память ВМ для их переработки и
применения. Проблемы перевода фраз были рассмотрены ранее, они будут еще
рассматриваться в дальнейшем при разборе конкретных реализаций. Сейчас же будем
считать, что вопросы перевода разрешены, что выходным языком перевода является
язык Лейбниц и что выражения этого языка являются правильно построенными
логическими формулами, которые здесь изучаются. В связи с этим заметим, что при
рассмотрении оснований информатики используется формализм языка Лейбниц,
который относится только к правильно построенным логическим формулам.
Содержание тома более доступно математику или информатику, а для каждого
пользователя он полезен только познавательно с позиции: «какие же знания уже
сообщены для Интеллсист в качестве встроенных или фундаментальных знаний».
Среди имен в фактах выделяются собственные имена. Собственные имена ложь
и истина (числа и тексты) являются установленными значениями в фактах. Всегда
ложное высказывание есть ложь, а всегда истинное высказывание есть истина. В
результате работы программы обработки знаний получаются собственные
высказывания следующих типов пар (для двузначной логики):
имя = истина
или
имя = ложь.
Каждое высказывание будем обозначать соответственно имя или не имя (в
соответствии с ИЛ). Здесь использовано имя «имя» в качестве формального
обозначения имени или наименования в некотором несобственном атомарном
высказывании. Только такие высказывания будут обозначать логические факты,
устанавливаемые в результате переработки знаний, содержащихся в этих
высказываниях. В качестве утверждений используются любые логические выражения,
состоящие из собственных высказываний, идентификаторов имени для несобственных
атомарных высказываний и логических операций. Язык Лейбниц точно определяет все
сорта логических выражений. Он определяет старшинство операций, полный состав
встроенных операций и их обозначения, правила для построения логических
выражений.
Роль фактов важна, она описывается следующими фразами:
- факты являются формулировкой не расщепляемого первичного знания для
проведения всех дальнейших рассуждений;
- факты образуют язык истин пользователя;
- факты являются частью определения свойств понятия;
- факты являются исходными данными всякого рассуждения;
- факты являются подтверждающим рассуждения материалом;
- факты - это база для работы логического вывода;
- наконец, факты являются результатом всякого рассуждения, если оно завершено
окончательно и доказательно.
Перечисленные роли фактов этим не исчерпываются. В особенности не учитываются в
этих утверждениях потребительские характеристики роли фактов, но само
перечисление ролей показательно представительно и может быть распространено для
использования.
-
Роль утверждений может выглядеть сильнее роли фактов:
утверждения являются средством описания мира задач и проблем;
утверждение используется для формулировки знаний и запросов;
утверждение является средством обобщения фактов;
утверждение, представляющее знание, - это аксиома о свойствах или самих
предметах, явлениях или процессах;
утверждение, представляющее запрос, - это сложные высказывания, в сущности
содержащее вопрос относительно некоторых искомых атомарных высказываний.
Как и в случае ролей фактов, роли утверждений данным выше перечислением не
ограничивается, например, они позволяют существенно сэкономить память ВМ под
представления знания, ведь утверждения о фактах - это сжатая формулировка
содержания совокупности фактов.
Роль правил вывода (а, следовательно, и метаправил) сводится к следующему:
 Правила вывода являются средством обобщения утверждений и знаний.
 Правила позволяют экономить память ВМ при вводе знаний, поскольку они
представляют собой спрессованную совокупность фактов или утверждений о
фактах.
 Правила служат для определения некоторого понятия, факта или утверждения.
 Правила - это средство для формулировки обобщенных знаний.
Метаправила являются дальнейшим обобщением знаний на основе логических
операций более высокого уровня, нежели логические операции, используемые при
построении утверждений, но они не рассматриваются в силу высказанных выше
соображений.
Заключительно сформулирует предложение, которое по существу является
определением знания (представления знания):
Факты, утверждения о фактах и правила вывода новых фактов
используются для представления знаний и для формирования
логических уравнений, представляющих знания и запросы
пользователя в применениях и использовании Интеллсист.
Прежде чем перейти к рассмотрению логических уравнений необходимо рассмотреть
средства формализации знаний, представленных в некоторой содержательной форме
на ЕЯ или ЯПП. Формально, элементарными знаниями являются образцы записей,
которые приведены в таблице разд. 5.1.17. Там список записей фактов приведен
представительно. Перечисление всех образцов занимает много места, и в этом нет
особого смысла. Для иллюстрации записей фактов этого списка достаточно.
1.4. Знания в данной области и БД
Переходим к рассмотрению знаний данной области знания в данных предметной
или проблемной областях. Они определяют БЗ для Интеллсист, которая состоит из
двух основных частей: лексикон и фраз на ЯПП, составленные из терминов лексикона.
К фразам относятся данные, представленные лексемами и таблицами. Классификация
БЗ осуществляется прежде всего по лексикону, который содержит термины, их
характеристики и множества значений (в частности). Каждая наука имеет свой
лексикон. Возможно пользователь имеет свой лексикон в особенности тогда, когда он
занимается новыми исследованиями.
Здесь знания определяются как логическая структура, состоящая из лексикона,
данных и логических связей и отношений терминов из лексикона и данных,
находящихся в БД. Если термины собираются в лексиконе, то данные собираются в
БД, а сами утверждения, содержащие знания, - в основной части БЗ. Чаще всего
бытует мнение, что БД может служить для сбора знаний и тем самым образовывать
БЗ. В самом общем случае это так, ниже будут установлены различия БД и БЗ в
основном для того, чтобы указать на слабую эффективность использования БД для
хранения знаний.
Полная совокупность человеческого знания не может быть введена в БЗ в силу
следующих причин: поскольку человек не способен знать все из-за ограниченности
его памяти, поскольку человека обычно интересуют проблемы его области
деятельности, поскольку в лексикон могут быть помещены только «однозначные»
термины. Интеллсист обладает такими же свойствами и строится она по тем же
принципам: ограниченность памяти, «однозначность» терминов и ориентация на
пользователя. Интеллсист предоставляет возможности для пользователя, которые
можно выразить так, как возможности быстрой смены, пополнения, корректировки и
создания новых лексикона и БЗ. В силу этих обстоятельств будем рассматривать
предметные и проблемные области пользователя, которые очерчивают его круг
знаний.
Лексиконы и БЗ строятся не на голом месте, они имеются в готовом виде (рынок
знаний) или создаются на основе известных книг, отражающих знания в той или иной
области знания. Имеется одно важное ограничение в использовании человеческого
знания, представленных в книгах, пособиях или подобных изданиях. Ограничение
можно определить так: человеческие знания изложены с огромной избыточностью, с
привлечением уже известного материала (например, фундаментальные знания
известны Интеллсист), с использованием большого числа терминов-синонимов,
вводных слов и фраз, с передачей знаний вместе с эмоциональной информацией об
отношении автора к излагаемому материалу. Избыточность книжных знаний
устраняется в процессе ввода их в память Интеллсист и при отладке самих знаний.
БД предназначена для хранения фактического материала и используются в
Интеллсист автоматически. Это значит, что пользователь вправе задавать массивы и
таблицы в качестве данных для фактов или объектов для исследования и анализа. Ведь
БД - собрание логически взаимосвязанных данных, которые связаны с именами (или
терминами) через формулировки знания. БЗ - это собрание логически
взаимосвязанных терминов и самих логических и других связей.
Главные отличия БЗ и БД состоят в следующем:
БД
БЗ
собрание значений или агрегатов записей
имеющиеся связи данных подразумевает
знание пользователя БД и связей между
ними
знания в алгоритмах и программах
выражены на уровне языка
программирования высокого уровня
(транслятор связи разрывает, они не
доступны пользователю)
имена сохраняются в таблице
идентификаторов, а значения в таблицах
данных (связи имен и значений в
командах программы)
пригодность БД для сохранения и
выборки данных (эффективность
ассоциативных операций выборки
данных)
собрание пар <имя, значение>
связь значений и имен имеется, ее может
понять Интеллсист без пользователя
знания представлены естественным
образом в форме фраз ЯПП (при
трансляции они не теряются), а
возможно и на языка программирования
высокого уровня
связи имени и значения всегда доступны
алгоритмам и пользователю для анализа
или применения
пригодность БЗ для сохранения и
выборки фактов (эффективность
ассоциативных операций выборки
фактов)
С точки зрения внутримашинного представления БД и БЗ - это массивы кодов,
символов или байтов, одинаково обслуживаемые операционными системами,
системами контроля доступа и передачи по каналам. Конечно, данные БЗ можно
вложить в БД, при этом существенно снизится эффективность работы алгоритмов
логического вывода из-за сложности формирования требуемых фактов по БД.
Таким образом, знания в конкретной области знаний представляются в
лексиконе и БЗ. Некоторые части фактов (или фактический материал) сохраняются в
таблицах. БД являются в сущности базой для знаний или просто БЗ фактического
материала.
1.5. Формальное представление знаний в Интеллсист
1.5.1. Общие соображения. Пользователь представляет свои знания фразами ЕЯ
или ЯПП, формулами, массивами или таблицами данных. Массивы и таблицы
автоматически передаются во встроенную БД или через СУБД в специальную БД, а
фразы и формулы транслируются на язык Лейбниц в форме сопоставления: термин элементарное знание, предложение - фраза, абзац - простое знание, которое можно
обозначить через Ki (i-тый абзац), весь текст - знание. Ki предполагает значение
истина. Это предположение может быть опровергнуто в процессе логического
вывода. А пока будем считать такое предположение исходным.
Знание, представленное последовательностью абзацев, выражается в общем
случае как &iKi по всем i от первого до последнего абзаца (конъюнкция всего
простого знания). В частности такая формулировка может измениться, если иметь в
виду, что некоторые Ki могут представляться дизъюнкцией (или композицией других
логических операций) более простого знания Kij так: для дизъюнкции Ki = \/j Kij по
всем j, возможно зависящих от i. Раскрытие конъюнкции Ki изменит общий вид &iKi.
По существу формула &iKi представляет БЗ, в которую обычно последовательно
вносятся все Ki или Kij. Все сказанное в этом разделе является важным
обстоятельством для всего дальнейшего. Запрос пользователя на языке Лейбниц
представляется также в форме простого знания Qk (соответствующего абзацу) и
окончательно формулой Q = &кQk по всем абзацам с номером k. И опять возможны и
допустимы отклонения, связанные с дизъюнкцией составных частей Qij для Qi.
Определив таким образом формализм БЗ и запроса можно перейти к
формулировке формализма проблемы. Предварительно и условно можно выделить
общий способ формулировки проблемы (дискретный вариант)
Р := &iKi => Q
или наиболее часто используемая формулировка
Р := &iKi & Q
в известных обозначениях: Ki - простое знание, &iKi - БЗ, Q - запрос пользователя,
который иногда представляют записью
all X (A(X) => exists Y (B(X, Y))),
или
для всякого ~Х~ такого, что (Х обладает свойством А следует
существует ~Y~ такой, что B(X, Y)),
или
all X (exists Y (B(X, Y))),
здесь приняты обозначения для B(X, Y) - БЗ задачи и существо запроса, A(X) условие для Х на решение задачи (также принадлежит БЗ). Но, поскольку B(X, Y) для
понимания требует по крайней мере фундаментальных знаний, которые содержатся в
&iKi, непрерывный вариант формулировки запроса (или проблемы) следует
рассматривать как запрос
Q:= all X (A(X) => exists Y (B(X, Y)))
или
Q:= all X (exists Y (B(X, Y)))
на фоне знаний данной области &iKi. В силу этого основным и фундаментальным
формальным представлением проблемы будем считать дискретный вариант. В общем
случае X - исходные данные, Y - результат решения.
Фундаментальное представление проблемы является логическим уравнением,
значением которого является истина. По крайней мере, требуется получить это
значение от выражения, а что получится фактически - это определит логический
вывод решения логического уравнения. БЗ вместе с запросом, записанными
формально (после трансляции), представляют фундаментальное логическое
уравнение. Решение такого фундаментального логического уравнения представляет
новые факты. (Заметим, что пользователю не обязательно знакомиться с изложенными
методами формализации знаний и запросов логическими уравнениями.)
1.5.2. Некоторые правила формализации. Другие формы представления
знаний (предметные или графические) должны укладываться в представленный здесь
формализм. Пользователю доступны утверждения на ЕЯ или ЯПП. Замена других
представлений указанными языками принципиально и практически возможно, хотя и
сопряжено с техническими или смысловыми трудностями. Для представления знаний
совокупностью простого знания в языке Лейбниц имеются базовые операции, в
стандартной части лексикона имеются общеупотребительные термины. Если этого
набора операций и терминов недостаточно, то пользователь вправе ввести новые
операции и новые термины.
Формализация знаний у человека начинается при поступлении сообщений в его
мозг. Представляется сложным делом познание процессов формализации знаний в
мозгу человека. Будем заниматься исследованием процессов формализации знаний
при вводе их в память ВМ. Пройдена первая фаза формализации: знания, выраженные
утверждениями или их композицией, переводятся в логические выражения языка
Лейбниц. Можно высказать утверждение о том, что и ЯПП уже является средством
формализации знаний. Этот тезис оставим на рассмотрение читателя. Процесс
кодирования логического выражения при вводе его в память ВМ можно рассматривать
составной частью формализации знаний. Например, замена имен или значений кодами
внутримашинного представления или адресами-ссылками на такие объекты является
составной частью формализации. Будем интересоваться конечным итогом
формализации знаний. Сам процесс формализации можно представить шагами.
Например, можно выделить такие глобальные шаги:
- формулировка высказываний на ЕЯ,
- преобразование высказываний на ЯПП (это самая сложная часть формализации,
которая выполняется уже на последнем шаге полуавтоматически по меню
инструментария Интеллсист), эта часть формализации подразделяется на семь
шагов, о которых говорилось в томе 4,
-
трансляция высказываний на ФЯ Лейбниц (автоматическая работа Интеллсист),
декомпозиция сложных выражений в древовидную структуру пар имя-значение
(работа именуется логическим выводом решения логического уравнения).
Будем считать, что подобные процессы нам хорошо известны, они могут
представляться последовательностями других шагов, но выполняющих, в конечном
счете, те же функции. Технология формализации считается известной в информатике.
Здесь принята та технология, которая описана в данной работе. Самыми важными
обстоятельствами в таком процессе являются следующее. Происходит потеря
информации на каждом шаге формализации знаний (высказывание на ЕЯ
предполагает потерю эмоциональной окраски описания предмета, явления или
процесса). Если окажется, что решена другая задача, то необходимо иметь средства
для восстановления потерянной информации (именно эмоциональные окраски могут
сыграть главную роль в решении задачи). С другой стороны, правильно ли устранена
избыточность в исходных представлениях знаний (вполне возможно, что вводные
слова относятся к существу рассматриваемой проблемы). Наконец, имеются ли
избыточные шаги самого процесса формализации знаний (и такое может быть построение алгоритмов в ответ на запрос пользователя может не передать части
сущности проблемы). Все это говорит о необходимости проявления внимания к
проделываемой работе в информатике для сохранения точности обработки знаний.
1.5.3. О точности передачи знаний. Ранее уже рассматривали вопросы
формализации знания с помощью системы ввода фраз ЕЯ (см. введение в т.4),
трансляции их на ФЯ и использовании таких представлений для обработки знаний
алгоритмически. Такой подход позволяет осуществить сбор сведений и знаний в
форме фактов, утверждений и правил вывода фактов. Коснемся таких вопросов:
- точность передачи знаний (невозможность появления противоречий),
- как увеличить точность представления знаний (необходимость дополнительного
знания),
- как восполнить потери некоторой части знания (необходимость сообщения
системе фактического материала),
- какова точность ответа (все ли результаты являются фактами),
- кто или что должны способствовать уточнению новых знаний (консультации со
знаниеведами или поиск дополнительного знания),
- можно ли принципиально получить точное знание или оно всегда будет иметь
погрешности (иногда синтезированная в Интеллсист программа может дать
точный ответ на запрос пользователя),
- а может быть знания с погрешностью являются более ценными, чем точные знания
(при аналитических выкладках и получении новых зависимостей),
- а что такое точные знания, является ли совокупность альтернатив совместных
фактов (элементарных знаний) точным ответом,
- можно ли построить абсурдное знание, если основываться на знаниях низкой
точности и другие вопросы (выявленные противоречия являются окончательным
решением задачи).
Приведем предварительные соображения о точности знаний. Полный ответ на
поставленные вопросы можно получить только после освоения всего материала
информатики. В численной математике точность выражается через гипотетически
точное значение Х*, реально полученное приближенное значение Хn и требование
точности eps так, что можно считать точность достигнутой, если можно дать
положительный ответ на соотношение |Х* - Хn|<eps. Такой подход обеспечивает
количественную оценку точности. В информатике точность знаний существенно
отличается от указанного подхода в численной математике, хотя численный подход
оценки точности является также и информатическим. Она оценивается главным
образом полнотой знаний, возможностью получения новых фактов, а также
непосредственно или через построение программ. Точность выражения знаний
определяется возможностью получения конечного результата в решении логических
уравнений. Если получаем единственный набор совокупностей простых фактов, то
знание для получения решения данного уравнения вполне достаточно. Если получаем
альтернативный набор совокупностей простых фактов, то знание для получения
решения данного уравнения можно считать полным (может быть и скорее всего
избыточным). Чем ближе к такому результату, тем точнее полученное решение. А
меру близости определить довольно сложно.
В БЗ абсолютной полноты не может быть. Каждая операция определяется в
контексте себя самой, затем в контексте других (остальных) операций. Это не
реализуется фактически в БЗ. Некоторые операции вводятся без контекста других
операций. Это недостающее знание может сообщаться при формулировке запроса (или
не сообщаться вовсе). Полноту БЗ гарантировать невозможно.
1.5.4. Вопросы пользователю от Интеллсист. Основной трудный на наш взгляд
вопрос для проекта Интеллсист - одна из основных проблем информатики - генерация,
синтез или построение вопроса пользователю для получения через его ответ
дополнительного знания и уточнение окончательного ответа путем решения
логического уравнения. Так могут решаться и некоторые вопросы точности знаний.
Для характеристики Интеллсист способность ее ставить новые вопросы для
пользователя можно считать главным требованием. Вопросы пользователю могут
быть представлены и в форме объявления ошибки, тогда ее исправление является
вводом дополнительного знания (для его уточнения).
Данный в предыдущем пункте перечень вопросов вытекает из того факта, что
при формализации знаний происходит частичная потеря знаний. Каждый может
представить себе те места, в которых осуществляется потеря знаний. Вопрос потери
знания при формализации ясен. Какова же мера точности потерь? Эта проблема
интересна, но она остается без решения в рамках данного рассмотрения. Нам важно
зафиксировать факт потери знаний и иметь интуитивные представления о способах
сохранения или пополнения знаний. Точность представления знаний (как она
понимается на интуитивном уровне) сохраняется путем уменьшения числа
преобразований информации, путем выбора таких способов преобразования, которые
обеспечили бы максимальную точность передачи знаний, путем приближения форм
представлений к естественной человеческой форме.
Далее. Алгоритмы преобразования представлений знания должны удовлетворять
требованиям, обеспечивающим восполнение недостающего знания (осуществлять
запросы пользователю для восполнения знаний). Алгоритмы должны иметь средства
для формирования вопросов пользователю и учета получаемых ответов в дальнейших
вычислениях. Проблема формирования вопросов пользователю является достаточно
сложной, но в большинстве случаев разрешимой. Восполнение недостающего знания
может вызвать плохие эмоциональные реакции. Более того, запросы ВМ на
дополнительное знание может породить проблему, разрешение которой можно
поручить самой ВМ. Процесс может оказаться рекурсивным. Это определит
внутренние проблемы решаемой задачи. Можно надеяться на то, что вопросы от ВМ
пользователю будут простыми и найдут быстрое решение.
Так или иначе, но ВМ по имеющимся знаниям находит ответ или получает новое
знание. Точность ответа должна быть высокой. Это означает, что знания-ответы
должны представляться фактами. Если же точности и полноты знаний, имеющихся в
БЗ, и знаний, поступающих по запросам для ВМ недостаточно, то ответ от ВМ должен
быть наиболее точным из всех возможных ответов, формулировка ответов должна
максимально приближаться по форме к формулировкам фактов. Заметим, что
«неточный» ответ, например представленный формулой, может быть самым точным,
если решается проблема аналитических выкладок при выводе новых методов.
Вопросы точности представления ответов ВМ на запросы пользователя всегда должны
решаться конкретно и в соответствии с запросами пользователя. Неточные знания
можно назвать приближенными.
Из сказанного вытекает, что между пользователем и ВМ должен присутствовать
в сложных ситуациях человек некоторой квалификации. Этого человека будем
называть знаниеведом. Его функции и возможности будут изложены при
рассмотрении структуры Интеллсист (см. т.7). В отличие от программиста, который
переводит знания пользователя в алгоритмы (возможно с потерями), знаниевед
должен заниматься только интерпретацией представлений знаний для пользователя.
Он не сможет внести в ответ Интеллсист дополнительные знания, которые могут
исказить исходные знания.
ВМ является весьма точным инструментом, поэтому следует ожидать, что ответ
Интеллсист будет точным, если знания согласованы и их достаточно в базе для его
получения. Конечно, если в базу заложить негативные знания, то и ответ будет
абсурдным (негативным). Если в базе неполные знания, то и ответ будет весьма
приблизителен. Примерно так поступает любой человек, может быть за исключением
следующего случая. Человек обладает знаниями из других областей, которые не
имеют никакого отношения к рассматриваемой проблеме. И тут работает человеческая
интуиция или аналогия (здравый смысл), с помощью которых в соответствии со
здравым смыслом человек находит ответ при малом знании предмета, относительно
которого ставится данная проблема. Ответ будет приближенным, но соответствующим
требованиям процесса принятия решения. Это проявление особенностей человека, она
может быть заложена в ВМ будущего, когда памяти и быстродействия будет
достаточно для выполнения таких способностей поиска ответа. Некоторые
предварительные соображения будут даны в томе 6.
В связи с только что сказанным надо заметить, что малая БЗ может оказаться
полезнее вот в каком случае. При отсутствии полного знания ВМ находит
приближенный ответ. Он может оказаться полезнее точного ответа, он будет
напоминать рассуждения по здравому смыслу. Скорее всего приблизительный ответ
явится замыслом (откровением Интеллсист) для нового понимания проблемы,
конкретная проблема при таком ответе открывает новый класс проблем или идей.
Можно сказать, что это рассуждение является плодом фантазии. Согласен. Но
рассуждения по аналогии свойственны человеку, можно себе представить, что так
интерпретируется процесс рассуждений по здравому смыслу в ВМ.
Итак. Будет именовать знания точными, если Интеллсист формирует после
логического вывода (альтернативные) совместные факты в качестве ответов на запрос
пользователя, а факты в форме пар имя-значение. Правда, такие пары не всегда
просты. Надо понимать такую пару обобщенно. Выше уже была приведена
совокупность представлений пар, выражающих элементарные знания. Парой имязначение формально выражается элементарное знание. Более сложное знание
выражается при использовании, например, логических операций & (конъюнкция)
и/или \/ (дизъюнкция). Будем считать, что такие формы выражения элементарного
знания являются точными (дизъюнкция конъюнкций пар). Другие представления
ответов ВМ будем считать приближенными, Например, ответ Интеллсист в форме
выражения: F(X) = G(Y) представляет собой приближенное разрешение проблемы.
При наличии хотя бы одного подобного выражения в альтернативе совместных фактов
квалифицирует решение как приближенное. И еще пример: P(X) - предикат с именами
переменных, не имеющих значения, является приближенным решением исходного
запроса пользователя. На этом завершается рассмотрение метода формального
представления знаний, получаемого при исследовании знаний и запросов
пользователей для ВМ.
1.5.5. О плохо формализуемых знаниях. Некоторое представление о
формализации знаний будем считать данным. Теперь перейдем к неформализованным
знаниям или к плохо формализуемым знаниям. Может создаться впечатление, что
любое знание формализуемо. Это отчасти так, потому что, если знание дано в форме
факта или утверждения, то оно и будет формализовано. Если в этом разобраться
глубже, то окажется, что имеется возможность считать факты и утверждения
неформализованными. Простой пример в этом убедит нас. Если некоторое понятие не
определено, не описано или описано как абстрактное, то факт, построенный
относительно этого понятия будет также неопределенным. Если некоторая операция
не описана, то и выражение, использующее эту операцию, будет неопределенным, а,
следовательно, неформализованным.
Процесс формализации в самом общем смысле понимается как процесс
последовательного определения объекта, его свойств и отношений между объектами.
На формальном языке знаний это выражается так. Имеются понятие операнда
(терманды) и понятие операции (термации) над значениями операндов. Для нас
представлениями объектов являются имена и значения, а также операции композиции
представлений простых объектов. Смысл имени и значения определяется через
понятия, которые описываются по правилам языка представления знания. Если все
элементы знания описаны полностью, то эти элементы считаются формализованными.
Интеллсист сама определит те факты и утверждения, которые формализованы, а
которые не формализованы. Это, с одной стороны, важное обстоятельство и важная
характеристика системы переработки знаний как контролёра формализма, а, с другой
стороны, до конца формализовать знания невозможно, поскольку память ВМ
ограничена и ввод всего необходимого знания невозможен. Всегда существует
некоторая неполнота знаний в силу неточности определения понятий, вводимых в
память ВМ. Это же свойственно и человеку, всегда имеется некоторая мера
неопределенности, не позволяющая до конца формализовать знания. Однако
оптимизм подкрепляется тем, что недостающее знание не будет использовано во вред
результату при разрешении данной проблемы. ВМ должна иметь средства для
определения полноты знаний (кроме умения определять непротиворечивость и
независимость). Конечная формализация знания осуществляется на этапе логического
вывода ответа на запрос пользователя.
Каждое утверждение, в частности элементарное знание, вводимые в память ВМ,
является определением некоторого факта или некоторой операции над фактами.
Утверждения или факты являются прикладными аксиомами. Аксиома-определение не
полностью определяет понятие или операцию. Некоторое дополнительное знание
задается в самом запросе. Некоторое знание уже содержится в процессорах ВМ, во
встроенной БЗ. Наконец, логический вывод приводит к появлению нового знания,
которое доопределяет не полностью определенные понятие или операцию.
Доопределение и составляет процесс дополнительной формализации понятия или
определения.
Итак, подведем некоторые итоги рассмотрения процесса формализации знания
путем перечисления опорных действий над знаниями. Три обобщенных пункта итожат
рассмотрение обобщенного процесса формализации с позиций введенного понятия
знание (более точная процедура рассмотрена в т.4):
1. Процесс формализации начинается с построения лексикона. При неточном
определении понятия или операции реализуется неточная формализация этого
понятия. При постепенном доопределении понятия осуществляется постепенная
формализация этого понятия или этой операции.
2. Процесс формализации продолжается при анализе вводимого знания или
вводимого запроса в память ВМ и при анализе их в процессе логического вывода. При
вводе неполного знания реализуется частичная формализация, а пополнение БЗ
приводит к более точной формализации знания.
3. Процесс формализации завершается получением нового знания. При
логическом выводе разрешения запроса получается дополнительное знание, которое
не содержалось в базе. Оно доопределяет и дополнительно формализует исследуемые
понятия, уточняемые в этом процессе.
4. В результате решения задания может получмться точное новое знание, оно
должно состоять из одного (!) набора совместных фактов.
Хорошим примером плохой формализации знаний является арифметика. В ней
определены все операции, типы данных и константы. Однако, в арифметике
отсутствует аксиома (или аксиомы), задающие отношение операции сложения и
возведения в степень. В силу этого великая теорема Ферма не может быть решена
арифметическими методами и средствами.
1.5.6. Представление знаний аксиомами. Формализация знаний приводит к
абстракции, которая именуется исчислением. Исчисление определяется тройкой:
<ЯППФ, НА, НП>, где ЯППФ - язык правильно построенных формул, которым для
нас является язык логических формул как часть языка Лейбниц; НА - набор аксиом
исчисления; НП - набор правил логического вывода в исчислении. Все используемые
здесь множества конечны.
Воспользуемся математической практикой строгого определения предметов,
явлений, процессов и их свойств с помощью аксиом. Аксиомы обладают весьма
полезными свойствами, которые перечислены далее в разд. «Введение. О логиках».
Мы говорим аксиомами, поскольку уверены в том, о чем говорим. Они могут
иногда противоречить локально или глобально накопленным знаниям о предмете
рассуждения. Противоречия (как и другие ошибки) должны обнаруживаться при
работе Интеллсист. Аксиомы, определяющие все объекты внутреннего языка
представления знаний, подразделяются на классы: естественные (или синтаксические),
языковые или семантические, концептуальные, структурные или прагматические,
логические или рассудительные, прикладные или алгоритмические, системные.
Формально аксиомы подразделяются на модельные, состоящие из фактов и схемные,
устанавливающие отношения абстракций (с параметрами для подстановки или без
них). Имеются и другие классификации аксиом, например, аксиомы подразделяются
по видам. Рассмотрим предложенную классификацию. Она будет повторена и
подробно представлена в разделе 4.7.
Применение аксиом связано с применением правил преобразования знаний.
Правила предназначены для построения вывода решения логического уравнения в
исчислении ИЛ. Основными правилами в классах правил являются подстановка
(проблема экономики), элиминация (проблема разрешения), унификация (проблема
разрешения), оптимизация (проблема экономики) и построением альтернатив
совместных фактов (техническая проблема).
Относительно знаний и целей их использования имеются самые различные
толкования. Например, знания необходимы для обеспечения жизнестойкости, для
конструирования или добывания нового знания. Информатику интересуют проблемы
целей использования представлений знаний. Частные случаи целей использования
представлений знания уже рассмотрены. Подведем итоги частного рассмотрения в
виде следующих позиций.
Прежде ставятся вопросы или подаются запросы для получения некоторых
сведений или знаний. Вопросы или запросы являются формами представления
некоторого знания. В вопросах содержится и ответ, там же имеется знание, которое
надо знать для формирования ответов на запросы или вопросы. Знания, введенные в
БЗ, являются хорошей основой для синтеза нового знания.
Определенное выше исчисление относится к формулировке оснований
информатики. Методом же информатики является получение БЗ из имеющихся
знаний. В этом случае подразумевается понятие исчисления БЗ. Накопление БЗ для
человека уже происходит непрерывно. Вначале это собрание книг в библиотеках,
затем сбор данных в памяти ВМ. Осознание сказанного приводит к появлению БЗ,
которые обеспечивают доступ к знаниям пользователя для решения своих проблем.
Эта функция собрания данных и знаний важна и признана. БЗ готова обеспечить, в
отличие от БД, любого пользователя необходимыми сведениями для решения его
проблем. Новые БЗ обычно строятся на стыках наук.
1.5.7. Что такое истина. Истинное утверждение создает комфорт. Из истинных
утверждений можно строить другие истинные утверждения. Может быть, поэтому
человек занят поиском истины. Часто поиск истины определяет цель материальной,
энергетической или информационной деятельности человека. В информационной
деятельности целью может быть формулировка понятия истины так необходимая для
реализации поиска истины. В этой деятельности формулировка понятия истины
должна предусматривать подцели определения понятий, в которых будет определено
понятие истины. Процедура определения может оказаться бесконечной. Можно
считать плодотворным поиск истины, если начать с простого описания истины и
установления взаимосвязи понятия истины с другими понятиями.
Важно фиксировать язык, на котором строится определение. В нашем случае –
ЯПП. Язык и устанавливает взаимосвязи понятий. При этом важно помнить, что
истинно в одном языке, может оказаться ложным в другом языке. Язык может быть
естественным или формальным. Тот и другой язык определяет, по крайней мере, две
исходные категории: термины и лексемы. Кроме рабочего языка, на котором
формируются утверждения, необходимо рассматривать язык описания языка или
метаязык, на котором определяется рабочий (объектный) язык. Метаязык должен быть
описан в объектном языке. В нашем случае – это язык Маркова. Тогда можно
находить смысл термина метаязыка. Определение должно быть в самом языке,
который рассматривает понятие истины. Оно должно самообслуживаться и не
прибегать к метаязыку.
После определения понятия истины необходимо определить объем этого
понятия. Объем может оказаться большим, тогда поиск истины будет более
успешным. Имеется некоторое число форм определения понятия, они будут
применены к определению истины. Каждое понятие выражается парой: имя (термин
понятия) и значение (текущий смысл понятия). Истина проистекает из любого
определения объекта (они обычно даются без доказательства). Истина или истинное
утверждение как понятия состоят из имен терминов и значений - лексем,
определяемых в языке. Имя ИСТИНА имеет значение истина, как лексема языка.
Требование истинности утверждения может привести к поиску условий истины.
Задача определения или логического вывода условия при этом является важной. В
процессе вывода можно обнаружить противоречия, которые аннулируют поиск и все,
что с ним связано. Поиск должен начаться заново после внесения исправлений.
Противоречия не позволяют выполнить главное - это определить значение или смысл
понятия или утверждения. Можно считать, что процесс, не приводящий к
противоречиям, позволяет определить сущность понятия или утверждения. В
математике исчисление содержит набор аксиом, который по количеству мал. В этом
содержится красота теории. Здесь указывается на множества аксиом, что для
информатики является важным обстоятельством.
Описание истины. Эмпирическая логика - логика реальности. Часто
рассматривают пример косвенного определения истины: «Снег бел» истинно тогда и
только тогда, когда Снег бел. В кавычках пишется имя утверждения, а без кавычек –
реальность.
Текст понятен всем, кто знает язык, алфавит и построение слов и предложений
из слов. Объясняться предметами весьма сложно. Еще большую проблему составит
процесс общения графиками. Поэтому ограничимся текстовой информацией при
рассмотрении вопросов, связанных с понятием истины. При текстовом изложении
необходимо придерживаться ряда правил. Надо договориться об одинаковом
понимании текста и его структуре. Текст состоит из лексических элементов (слово,
число, логическое значение, выделенный символ, выделенная строка, знаки). Они в
свою очередь состоят из графически представляемых символов: букв, цифр, знаков
отличия, знаков препинания, знаков операций и не графических знаков. Каждый
лексический элемент должен быть осмысливаем своим назначением, или быть частью
графического представления имени понятия, или быть недопустимым. Конечный
текст должен состоять из последовательности графически представленных терминов.
Термин – это последовательность лексических элементов или графически
представляемых символов. Любой рассматриваемый текст состоит из
последовательности терминов и лексем.
Синтаксически текст подразделяется на предложения, которые также можно
именовать фразами, фразы объединяются в абзацы, а абзацы составляют весь текст.
Фразы имеют некоторый допустимый смысл. Абзац обозначает законченную мысль и
имеет смысл логического значения истины или лжи. Законченная мысль – это значит
иметь вычисляемый логический смысл. Каждое утверждение либо верно, либо не
верно, либо не выяснено, что оно верно или не верно. Переходим к способам
описания истины.
1/. Без доказательства. Верное утверждение, не нуждающееся в доказательстве,
представляет истину. Имеется утверждение, которое представляет истину – это само
слово «истина». Это слово по всеобщей договоренности является логическим
значением, константой в русском языке. В других языках имеется слово, полностью
соответствующее этому русскому слову. Истина не совпадает по смыслу со словом
истина так же, как и со словом ИСТИНА (склонение слова истина допускается в
русском языке). Слово истины по прямому назначению будет писаться как истина с
выделением слова полужирным шрифтом. Итак, есть одно слово формального языка:
истина – значение логического типа (по договоренности).
2/. По договоренности. Существует процедура договоренности о чем-либо, иначе
создатель текста и его читатель не будут понимать друг друга. По договоренности – это
значит, что в описании или обсуждении конкретной проблемы (задачи, ситуации,
вопроса, темы и другое) установлена истина, принимающаяся договаривающимися
сторонами. Лист зеленый – договорились! Никто не называет в русском языке цвет
листа красным. Конечно, имеется и красный лист, опять работает договоренность. У
такого-то растения лист является красным. Выше приведен пример договоренности о
том, что собственно истина будем писать полужирным шрифтом. Способ описания
истины по договоренности во многом является субъективным.
3/. По определению. Каждый термин определен для того, чтобы он был понятым.
Определяемое понятие связывается с другими понятиями и создает контекст
определяемого понятия. Ниже рассматриваются семь способов определения. Каждый
способ может применяться для слова «истина».
4/. По сопоставлению с практикой. Истина становится объективной, если
устанавливается соответствие ее реальности, которая может быть материально
представленной, энергетически (физически) наблюдаемой или информационно
воображаемой. «Истина» есть как бы приравнивание вещи к слову, подобно тому, как
обычная бумажная денежная купюра приравнивается к золотому эквиваленту.
Утверждение истинно, если оно соответствует положению вещей. Этот способ
описания истины во многом является объективным. По Канту истина "есть
соответствие знания с его предметом".
5/. В соответствии с доказательством. Имеется 7 способов доказательства:
1. Сопоставление утверждения с наблюдениями в окружающем мире или в мозгу,
которое устанавливает (практически доказывает) истину утверждения.
2. Простая убежденность или эмоциональная уверенность могут служить
средством установления истины, но часто легко опровергается найденными
противоречиями.
3. Часто строгое определение служит доказательством истинности определяемого
понятия.
4. Вычисления по правилам, сохраняющие истину, является убедительным
доказательством истинности определяемого значения термина.
5. Самым достоверным способом доказательства служит логический вывод,
который в логике предназначен для получения доказательной истины.
6. Вместо или параллельно можно применять правила (алгебраического)
преобразования, для установления истинности исходного утверждения, если правила
сохраняют его свойства истинности.
7. Наконец, в сложных ситуациях для доказательства истинности следует
применять вывод здравого смысла, который может обеспечить быстрое
«доказательство».
Математика может установить или доказать относительную равносильность всех
определений или установить вес каждого способа доказательства.
6/. С проверкой в деле. Все утверждения могут подвергнуться проверке в деле.
Конечно, проверка может быть и умозрительной. Например, запуск программы или
выполнение алгоритма является их проверкой в деле.
7/. Проверка системы истин. Каждая из проверок отражает одну из сторон
описания истины. Только совокупное применение всех проверок может быть
удовлетворительной или результативной. Такой подход относится к проверке системы
истин. Высказанные утверждения истинны, если не обнаружено глобальных
противоречий.
Взаимосвязь истины. Неэмпирическая логика (металогика) - формальные
предпосылки всякой логики. Истина строится, выводится или проверяется с помощью
некоторого языка. Вне языка истина для человека не существует. Во избежание
парадоксов надо различать два языка: объектный (язык, на котором высказывается
нечто о внеязыковой реальности) и метаязык (на котором говорим о самом языке).
Понятие истины относится к объектному языку, но формулируется оно в метаязыке.
Естественный (ЕЯ) и формальный (ФЯ) языки допустимы в качестве объектного
языка для определения и использования истины. Имеется также метаязык, который
существенно богаче объектного языка. Язык не может быть определен, пока не
рассматриваются метасимволы для построения его определения. Расширение уже
создает новый язык и так далее. Язык служит для записи истин, утверждений и команд.
В практике существует ЯПП, синтаксис которого прост, он определяет
последовательность терминов предметов и терминов операций. Если операнд или
операция применяется неправильно, то определить истину весьма сложно, можно
придти к противоречию. Языки опираются на алфавит, из которых строятся лексемы
(константы, слова, структуры из лексем), термины (имена объектов или имена
действий с объектами) и знание в виде последовательности утверждений.
Определение истины. Воображаемая логика. Пример самого общего
определения истины таков:
утверждение P истинно, если и только если P соответствует Q, где на место Q
могут подставляться фразы "внешнему факту", "требованию согласованности с
другими предложениями", "критерию полезности для говорящего", "принятой
конвенции" и т.п.
Каждое определение должно строиться из определенных уже понятий. Это
необходимо для полноты и ясности любого определения. Процесс расширения
определений бесконечен. Поэтому определить абсолютную истину никогда не удастся.
Иногда привлекаются метапонятия, которые считаются полностью определенными.
Например, известно, что слово состоит из букв. Определение понятия буква является
метапонятием и ясным изначально. Хотя в конкретном алфавите буква определяется
списком самих букв. Но список букв как определение использует метасимволы скобок
и запятой в перечислении. Теперь ясна бесконечность определения понятия. Поэтому
можно говорить об относительности истины.
Слово истина является заимствованным из старославянского языка. В
старославянском языке оно образовано от ИСТЪ – «настоящий, несомненный,
действительный» с помощью суффикса – ина. Истина – это бытие, сущее, то, что
есть – таково общее определение. В определении должны использоваться только
ясные и определенные понятия. Формальное определение записывается так:
«Х истинно тогда и только тогда, когда Р истинно»
или
«Х истинно тогда и только тогда, когда Р имеет место».
Кроме утверждений в языках имеются команды. Поэтому необходимо рассматривать
понятие выполнимости наравне с понятием истина. Выполнение команды
соответствует истине, а невыполнение – лжи. Рекурсивная процедура для определения
выполнимости есть вычисление смысла.
Понятно, что взгляды философов охватывают все популярные теоретикопознавательные концепции истины.
1. Экзистенциалистская концепция. Это процесс, в котором мир открывается нам
с одной стороны, а с другой - человек сам волен выбирать каким способом и чем можно
познать этот мир.
2. Когерентная концепция рассматривает истину как соответствие одних знаний
другим.
3. Концептуальная концепция: Истина – это вполне определенная сущность.
4. Конвенциальная концепция: Истина - это то, что считает большинство,
соглашение.
5. Классическая теория истин: Истина - это правильное отражение предмета,
процесса в индивидуальном познании, соответствие факту.
6. Прагматическая концепция. Эта концепция, распространенная в особенности в
Америке, говорят, что истиной считается то, что полезно для человека.
7. Неатомистическая концепция говорит о том, что истина - это божье
откровение.
Истина - адекватное отражение объекта познающим субъектом, воспроизведение его
так, как он существует сам по себе, не зависимо от человека и его сознания;
объективное содержание чувственного эмпирического опыта, понятий, идей,
суждений, теорий, учений и целостной картины мира в диалектике ее развития. Теперь
переходим к рассмотрению семи способов определений.
Описательное определение. Самым простым и распространенным определением
понятия является описательное определение. Такие определения содержатся почти во
всех естественнонаучных дисциплинах. Обычно для создания описательных
определений используются тексты ЕЯ. В последнее время в связи с проникновением
информатики в естественные науки начинается использование формальных и
неформальных средств и методов представления знаний таких наук. Каждая наука
использует чаще не ЕЯ, а язык профессии или ЯПП. Знание и изучение средств ЯПП
важно для интенсификации проникновения информатики в конкретную науку.
А теперь рассмотрим пример описательного определения с ответом на вопрос: что
можно отнести к понятию истина? Обработка знания связана с поиском истины при
передаче интеллектуальной системе (Интеллсист) текстов запросов на решение задачи.
Основное требование к обработке состоит в применении только таких преобразований
знания, которые сохраняют истинность текста. Если в процессе обработки получается
ложь, то система объявляет противоречие и процесс обработки заканчивается. Перед
обработкой предполагается, что исходный текст соответствует истине. В результате
обработки знаний предположение может опровергаться.
Контекстное определение. Это второй способ определения. Знания,
представленные текстами, выражениями и таблицами, используют именно контекстные
определения. Поток сведений конкретной области знания состоит из определений
различных понятий с указанием связей между ними. Каждый абзац текста представляет
законченную мысль (содержательно) и связи понятий, которые и являются
контекстным определением величин или операций через связь с известными
величинами и операциями. Контекстное определение строится на основе знания связи
определяемого понятия с другими в контексте. Контекст по своему существу
определяет некоторый смысл понятия. Контекстное определение можно именовать
смысловым определением. Такие определения имеют широкое распространение в
практике фиксации знания. Например, совокупность всех абзацев данного раздела есть
контекстное определение контекстного определения. Может создаться впечатление, что
почти все определения понятий являются контекстными. Контекстные определения
почти всюду являются неполными. Здесь истина определяется контекстом всех текстов
статьи. До этого абзаца определение истины было контекстным.
Перечислительное определение. Это самое простое определение понятия, оно
состоит из явного перечисления составляющих понятие терминов объектов. Такие
определения содержат весь объем понятия и являются вербальными, или словесными.
Имеется несколько типов конструкций простых определений. Наиболее
распространенными являются следующие типы.
Первый тип - это определение через класс объектов, указанных в самом
определении. При этом необходимо помнить, что рекурсивное определение не
допустимо, а точнее сказать, если определение содержит рекурсию, то оно не является
перечислительным. В перечислении объектов нельзя употреблять непосредственно сам
определяемый объект. В качестве примеров можно дать определение типов
определений или определение истины, в котором оно составляется из набора аксиом
некоторого исчисления.
Второй тип - это определение через образцы, по которым можно восстановить
полный объем понятия. Например, в определении N из-за невозможности явного
перечисления всех целых чисел натуральный ряд определяется по образцам целых
чисел, составляющих начало натурального ряда. N = 1, 2, 3,.. Предполагается, что такие
определения «достраиваются» автоматически по образцам. Истина определяется
своими представителями для схемы аксиом: 1=1, 2=2, 3=3, 4=4, 5=5,…
Третий тип - это определение, построенное на основе имеющегося определения с
добавлением новых значений понятия или отдельных образцов объектов. Например,
определение понятия словаря можно дать через перечисление всех видов словарей.
Интеллсист содержит в БЗ словари из слов, терминов, строк, комментариев, паспортов
и чисел. Определение фактической части БЗ для пользователя можно ограничить таким
перечислением словарей. Истина может определяться на всех языка своим словесным
изображением: истина, true, truth,...
Четвертый тип - это определение, включающее перечисление всех значений
термина. В качестве примера возьмем определение понятия цвет радуги. Цвета радуги это красный, оранжевый, желтый, зеленый, голубой, синий и фиолетовый цвета. Для
определения понятия истина можно указать перечень утверждений, которые
подразумевают логическое значение истины.
Пятый тип - это определение с помощью аксиом так, как это сделано в гл.5.
Шестой тип - это определение по непосредственному указанию на сами объекты,
которые обозначаются определяемым термином. Например, Интеллсист можно
определить как программный комплекс, состоящий из программ интерфейса (меню),
транслятора смешанных вычислений, машин логического и аналитических вывода и
синтезатора программ.
Седьмой тип - это определение, которое дается системой определений, которая
«функционирует» в совокупности. 7 определений проверяются для каждого понятия.
Это составит своего рода критерия правильности определения понятия.
Каждый сорт определения отличается незавершенностью, поскольку в них не
содержатся связи с другими понятиями (кроме тех, которые включены в определение).
Для конкретных нужд перечислительное определение является достаточным, в то
время как для других проблем оно не годится для успешного разрешения задач.
Имеется одно общее замечание. Многие определения являются смешанными, их трудно
отнести к тому или иному типу или даже классу, поскольку они несут оттенок свойств от всех
типов и классов определений.
Интенсиональное определение. Интенсиональное определение характеризуется
следующими атрибутами. Оно должно содержать:
описание свойств, характеристик объектов, выделяющих определяемое в
сравнении с другими объектами соответственно;
пояснения смысла термина указанием правил выделения его среди прочего;
указание ближайшего понятия и отличительных признаков по сравнению с
другими определениями других понятий.
Таково синтетическое определение понятия интенсионального определения.
Понятие - это некоторое семейство подмножеств универсума. Действительно,
формально это утверждение можно пояснить следующим образом. Признаки, которые
позволяют выделять понятие, имеют значения, которые характеризуют данное понятие
и принадлежат к некоторому множеству значений, или образуют полное множество
значений данного признака. Таких множеств, связанных с данным понятием,
несколько, а именно столько, сколько признаков характеризует данное понятие.
К интенсиональному виду определений относится реальное определение, которое
отображает существенные признаки, свойства и характеристики объекта с целью
формирования отличий от других объектов. Как видно, главной частью содержания
определения является указание на набор существенных отличительных признаков
исследуемого объекта. К интенсиональному виду определений относятся
собирательное и представительное определения. Все они являются синонимными
определениями, друг друга напоминающими и содержательно не отличающимися.
Аксиоматическое определение. Аксиоматические определения являются
фундаментальными. Это следует из существа самого понятия, определение которого
строится из суждений (логических выражений). В информатике принято, что любое
высказывание, содержащее знание, является прикладной аксиомой, определяющей
величину (или константу), операцию или их комбинации. Аксиоматическим
определением называется (конъюнктивная) совокупность утверждений, содержащих
определяемое и определяющие понятия в этих утверждениях. При формулировках
таких определений на ЕЯ будет возникать определенная трудность, связанная с
распознаванием терминов из лексем, входящих в утверждения. Использование же ЯПП
не будет вызывать трудностей распознавания терминов. Уже упоминалось, что каждое
определение можно вполне именовать аксиоматическим определением. Можно
выделить критерий для разделения чисто аксиоматических и «неаксиоматических»
определений.
Любой ФЯ вполне определяет и использует аксиоматическое определение.
Можно рассмотреть метаязык, определяющий ФЯ программирования, например, в
форме Бэкуса-Наура (см. язык Марков). Любые синтаксические определения связаны с
введением аксиоматических определений некоторых текстовых конструкций.
Классическим примером аксиоматических определений являются также аксиомы
логики. Если к типу определений подходить не строго, то формулировка определения
любого типа представляет собой аксиому и, следовательно, оно является
аксиоматическим. Может быть, в силу этих обстоятельств аксиоматические
определения именуются фундаментальными.
В таком случае говорят о построении исчислений некоторой теории, в состав
которого входит данная совокупность аксиоматических определений. Если некоторое
исчисление не содержит аксиому, связывающую величины или операции, то оно
теоретически будет не полным. С увеличением объема знаний теория, построенная на
базе нового исчисления, может стать классически полной. Итак, теория определяет
множество истин.
Аксиоматические определения предназначены главным образом для
представления знаний в Интеллсист. Все знания представляются обычно на части ЕЯ –
ЯПП - путем выделения профессионального лексикона, создания семантической
грамматики. В конечном счете, фразы ЯПП преобразуются транслятором в логические
формулы внутреннего языка Лейбниц для формирования БЗ из отдельных аксиом,
которые являются аксиомами предметной области (для объектов) или проблемной
области (для операций).
Операциональное определение. Операциональное или алгоритмическое
определение задает правила, которые указывают, что необходимо сделать для
построения понятия, что с этим понятием можно сделать или какими операциями
можно воспользоваться для синтеза определяемого понятия. Такое определение связано
с понятиями алгоритма или программы - конкретного предписания о способе
получения нового понятия. Такие определения чаще других используются в
информатике. Действительно, каждая запись алгоритма или программы может
рассматриваться как средство определения некоторого понятия. Например, программа
вычисления корней полинома определяет значение корня. Алгоритмы или программы это представление алгоритмического знания, которое определяет новый смысл понятия
по значению, получаемому после выполнения или реализации алгоритма или
программы.
Определить истину алгоритмически – это значит указать операции и порядок их
применения для получения правильного искомого результата. Истина утверждается,
вычисляется, доказывается, проверяется. Истина в ЕЯ связана с понятиями. В кластер
операциональных определений входит и генетическое определение, которое
предписывает правила порождения объекта, указывает на его происхождение в
некоторой классификации или систематике. Такие определения подразумевают
действия по формированию понятия или его определения. Ближе всех других к
операциональному определению находится номинальное определение, которое
является предписанием требований, какими должны быть определяемые объекты.
Также близким является дескриптивное определение. Деятельное определение также
входит в кластер алгоритмических определений, но оно предполагает больший упор в
определении на физические перемещения или преобразования.
Любой вариант алгоритмического определения предполагает выполнение ряда
операций следующего сорта:
как сделать объект, какие действия необходимы для формирования
определяемого объекта;
как оперировать некоторым исходным материалом и что получится в результате
выполнения операций на этом материале;
что делает объект и что получается в результате его деятельности, какой объект
или какая сущность объекта;
какие правила могут привести к определению истины;
что делается с объектом после применения операций из некоторого набора при
получении определяемого объекта;
создание или синтез определяемого объекта.
Применяемые в розницу или комплексно эти операции должны привести к
формированию понятия и его определения. Совокупность выполняемых процедур
составит алгоритмическое определение истины.
По Гегелю осуществляется обобщение всего содержания системы научного
знания в понятии «истина». В результате этого процесс развития системы научного
знания принял логическую форму процесса определений истины. В системе
абсолютного идеализма Гегеля категория «истина» приобрела значение логической
субстанции мира – «абсолютной истины». Поскольку для Гегеля истина означала саму
предметную сущность, то определения предметной сущности в мышлении были для
него равнозначными определениями истины. Предметная сущность объективной
действительности - это и есть, с точки зрения Гегеля, истина, поэтому определения
предметной сущности есть не что иное, как определения истины.
Индуктивное определение. Индуктивное определение позволяет отталкиваться
от некоторых исходных понятий путем применения некоторых логических операций
строить новое определение нового понятия таким образом, что в процессе построения
можно использовать данное понятие как рекурсивное. Рекурсивных определений в ФЯ
чрезвычайно много, они являются экономными и эффективными в применениях. Для
устного анализа рекурсивных определений возникают сложности запоминания
глубинных состояний анализируемого определения. Важная особенность индуктивного
определения заключена в том, что оно обобщает все предыдущие способы
определений. Если рассмотреть некоторый способ определения и в определяющую
часть поместить определяемое понятие, то осуществляется переход к индуктивному
определению (если это возможно). Индуктивное определение строится обычно для тех
объектов, которые имеют бесконечное число значений определяемого объекта.
Например, ФЯ определяют бесконечные словари, хотя практическое использование
словарей связано с конечным набором слов или терминов. Следует помнить одно
важное ограничение на индуктивные определения: каждое индуктивное определение
должно содержать «начальную точку» или частный случай определяемого понятия. Без
«начальной точки» определение является неправильным, оно может привести к
ошибочным решениям в задачах, использующих неправильное определение.
Понятие истины многозначно. Это зависит от формулировки самого изучаемого
понятия. Вот некоторые примеры.
Предмет
Структура
Назначение
Понятие
Термин и лексема
Вычисления
Картина
Текст и рисунок
Ассоциация
Картина
Рисунок и текст
Художество
Язык
Грамматика и текст
Лингвистика
ЕЯ
Текст и синтактика
Анализ текстов
Программа
Имя программы и текст
Программирован
ие
Логика
Утверждение и истина
В Интеллсист
Грамматика
Синтаксис и семантика
Язык
…
…
…
Центральное место в определениях занимает смысл, который определяется в
теории семантики, или в теории определения смысла. Отмечается 7 видов семантики.
Описательная семантика указывает на приемы и способы получения смысла
утверждения.
Графовая (языковая) семантика определяет смысл представлением связей
элементов языка, что выражается графом языка (см. т.2).
Концептуальная семантика разъясняет понятие смысла и правил его получения
для утверждений. При описании понятия с его термином связывают множество
смыслов понятия. Термин принимает значение в соответствии с алгоритмом, которое
служит исходными данными для вычисления значения утверждения. Вычисленное
значение является смыслом утверждения. Смысл текста должен представляться
логическим значением.
Денотационная (математическая) семантика выражает значение понятия,
которое работает и циркулирует как пара имя-значение. Текущий смысл понятия
можно определить динамически.
Аксиоматическая (дедуктивная) семантика - семантика языков
программирования, в которой значение языковой конструкции или программы на
некотором языке программирования определяется «аксиомой». Для каждого
конкретного высказывания аксиома указывает, что должно быть истинным в контексте
того, что было истинным до реализации высказывания. В отличие от операционной
семантики дедуктивная семантика отказывается от того, чтобы связывать смысл
конструкций языков программирования с каким-либо способом проведения
вычислений. Таким образом, она абстрагируется от ряда деталей вычислений,
несущественных для понимания смысла программы.
Операционная (трансляционная) семантика определяется заданием способа
вычисления некоторых функций для получения значений утверждения. Операционный
подход ближе других стоит к задаче создания, как интерпретаторов языков
программирования, так и компиляторов для них.
Определенная расширением семантика. В системе понятий можно определить
смысл данного понятия, по контексту, если смыслом не обладает в данный момент
данное понятие.
Законы истины. Формальная (математическая) логика. Научная истина - это
знание, которое отвечает двойному требованию: во-первых, оно соответствует
действительности; во-вторых, оно удовлетворяет ряду критериев научности. К этим
критериям относится: логическая стройность; эмпирическая проверяемость, в том
числе проверка временем; возможность предсказывать на основе этих знаний новые
факты; непротиворечивость тем знаниям, чья истинность уже достоверно установлена.
Критерием истины могут служить следствия, выводимые из научных положений. По
принадлежности аксиомы подразделяются на семь классов. Все классые рассмотрены
в данном томе, в разделе 4.7.
Связи знаний и истины обычно рассматриваются относительно пары
отображений. Например, материальное и информационное отображения
сопоставляются так, чтобы установить соответствие знаний объективному
материальному миру. Для этого необходимо сопоставить знания с самим объективным
миром. Мысль противоположна своему предмету (явлению или процессу). Она
представляет собой идеальную конструкцию, информационную модель изучаемого
объекта. Чтобы сопоставить мысль с объектом, необходимо сделать их
однопорядковым. Это достигается в процессе материального воплощения мышления в
человеческой практике. Именно практика снимает противоположность материального и
идеального. Совершенно иным является материальное воплощение знаний в практике.
Здесь материальное выступает как реализация этого содержания. По существу, знание
становится явлением материального мира. Человек реализует свои знания через
технику и технологию. Практика, включенная в систему взаимодействия с
объективным миром, сама оказывается подчиненной законом этого взаимодействия.
Это обстоятельство обусловливает возможность выполнения практикой функции
критерия истины. Являясь, с одной стороны, воплощением знаний о материальном
мире, а с другой - частью этого мира, подчиненной его законам, практика самим
процессом своего функционирования осуществляет проверку истинности знаний. Если
представления человека не соответствуют законам объективного мира и если
практическая деятельность построена в соответствии с этими представлениями, то
законы объективного мира сделают практику неэффективной. Например, если самолет,
построенный в соответствии с теорией аэродинамики и сопромата, летает, то можно
сделать заключение об истинности этих знаний. Аналогично можно рассмотреть другие
пары: энергетическое и информационное, энергетическое и материальное. В качестве
критериев истины могут выступать результаты сопоставления, одинаковость
реализации, работы алгоритмов, понятий, языков и др.
1.6. Проблемы, вопросы, запросы и задачи.
Общий подход к решению проблем
Что такое проблема? Наиболее общее представление о существе проблемы дают
следующие рассуждения. Проблемы вызываются в случае появления дискомфорта,
или при желании сохранения или изменения чего-либо, или когда возникла насущная
потребность в чем-то. Иногда проблема проявляется в вопросах кому-либо, а иногда в
постановке задач описания чего-либо. Так или иначе, у пользователя возникает запрос
на разрешение его проблем. Конечно же, имеются и другие точные или менее точные
формулировки определений понятий, указанных в заголовке раздела.
Будем считать, что перечисленные в заголовке понятия известны. Для нас эти
понятия будут уточнены для того, чтобы провести разграничение между ними. Каждое
из указанных понятий подразумевает формулировку некоторого высказывания и
требование реакции от адресата высказывания. С общих позиций эти понятия будут
для нас эквивалентными. Они формализуются в математике совершенно идентично:
all X: Т1 (exists Y: Т2 (Q(X, Y)))
Такие записи интерпретируются примерно так: даны некоторые исходные данные Х
типа Т1, требуется найти У типа Т2 такой, что Q(X, Y). Q в частности может иметь
вид: Q(X, Y):= (F(Х, У) = 0). В таких случаях говорят о некоторой математической
задаче.
Проблема - это формулировка утверждения, которое требует поиска условий для
истинности утверждения. Вопрос - это формулировка утверждения, которое требует
ответа с или без пояснения. Запрос - это формулировка утверждения, которое требует
разрешения в заданных терминах. Задача - это исходные факты и запрос на поиск
искомого неизвестного. Краткие формулировки могут оказаться для многих
неудовлетворительными. Каждому предлагается самому использовать известные или
построить новые формулировки. Интеллсист не различает таких тонкостей в
формулировках и сводит понятия проблемы, вопроса или задачи к единственному
понятию запроса. Конечно же, можно говорить о задании для Интеллсист вместо
слова запрос.
Для понимания дальнейшего необходимо описать в общих чертах процесс
получения решения проблемы. Это описание помогает увидеть место каждого
утверждения в реальном процессе получения решения проблемы. Шаги процесса
перечислены в естественном порядке. Они рассматривались ранее и будут
рассматриваться еще и еще раз, поскольку ИП имеет особую организацию,
существенно отличную от распространенного ПП.
Шаг 1. Построение предметной и проблемной областей. Работа сводится к
созданию лексикона понятий об объектах и операций над объектами (термандов или
термаций). Здесь можно увидеть отчасти простые действия по сбору известных
терминов с известными характеристиками или отчасти изобретательские действия по
построению новых терминов и/или их характеристик.
Шаг 2. Формирование структуры новых БЗ или БД или настройка Интеллсист на
имеющиеся БЗ или БД конкретного применения. БЗ бывают либо стандартными, либо
покупными, либо вновь создаваемыми. В последнем случае требуется тщательная
работа со знаниями. Структура БД определяется описанием таблиц и записей, а
заполнение таблиц требует кропотливого труда по сбору фактического материала.
Шаг 3. Ввод и отладка знаний, помещаемых в БЗ. Это ответственная работа по
логическому программированию класса задач. Использование стандартных или
покупных БЗ гарантирует существенное уменьшение сложности и времени отладки
(или ее полное отсутствие). Отладка БД также необходима либо с помощью
фильтрации данных, либо в контексте знаний с помощью контрольных запросов.
Шаг 4. Ввод начальной формулировки проблемы в форме запроса. Слово
«начальная» взято из осторожности, поскольку запросы также требуют отладки.
Уменьшение сложности и времени отладки можно достигнуть использованием
шаблонов или анкет для запросов, если шаблон устраивает пользователя по существу
(или он сам создал шаблон для своих задач) или если анкета является его
единственной формой запроса.
Шаг 5. Автоматическая формулировка логического уравнения. Транслятор ЯПП
на язык Лейбниц обеспечивает этот шаг с автоматическим поиском ошибок по 13
классам. Если предыдущие шаги пройдены успешно, то и шаг будет выполнен
автоматически. Обнаруживаемые ошибки потребуют возвращение к предыдущим
шагам для внесения изменений и нового их прохода (прогона).
Шаг 6. Автоматический логический вывод решения проблемы или разрешение
запроса. Решение логического уравнения, составленного из БЗ (с БД) и запроса,
приводит к формированию совокупности альтернатив совместных фактов, которая
является ответом на запрос пользователя.
Шаг 7. Анализ полученного вывода и принятие решения. Результаты
логического вывода использует человек либо для принятия некоторого практического
решения, либо для накопления новых фактов, они могут передаваться по каналам
связи, если решения предназначены для управления объектами, они могут
использоваться для запуска другой Интеллсист в качестве запроса. Судьбу итогов
работы Интеллсист всегда определяет человек либо до ввода запроса, либо после
получения ответа на запрос.
Семишаговая процедура является кибернетической, поскольку на каждом шаге
может возникнуть необходимость возврата к предыдущим шагам. Даже шаг 7 может
определить возврат к предыдущим шагам, поскольку могут рассматриваться варианты
запросов по количественным или качественным параметрам. Возврат на предыдущие
шаги может быть вызван при формулировках вопросов системой, вызванных
запросами недостающего знания. Таковы проблемы, возникающие при использовании
Интеллсист.
1.7. Методы приобретения знаний
Краткая заметка. Знания приобретаются человеком в процессе наблюдения за
предметами, явлениями и процессами. Для ВМ этот метод приемлем при условии
создания средств ввода информации, которой обладает человек. ВМ в современных
условиях может воспринимать сообщения с клавиш, с печатных текстов, телекамерой
или через микрофон. Человек пока превосходит ВМ по использованию средств
восприятия. Развитие технических средств восприятия сообщений происходит
непрерывно. Не нужно быть прорицателем, чтобы утверждать, что в ближайшем
будущем появятся все средства ввода знаний, аналогичные средствам у человека.
Современных технических средств достаточно для ввода сведений в память ВМ для
решения большинства проблем, которые человек решает в своем темпе. Решение
проблем в реальном времени в полном объеме пока проблематично из-за отсутствия
средств оперативного ввода сведений из окружающей среды. С другой стороны,
вопрос приобретения знаний по наблюдениям разрешается с помощью человека.
Будем считать, что метод приобретения знаний путем наблюдений остается за
человеком, который может ввести полученные таким образом знания в память
Интеллсист. Источниками знаний могут быть: наблюдения и документирование
предметов, явлений, процессов или их свойств, взятие интервью у специалистов,
опрос и анкетирование чьей-либо деятельности, опрос эксперта или специалиста,
использование печатной продукции и многое другое. Наилучшим методом
приобретения знаний является известный метод коллекционирования знаний из тех
или иных публикаций. Далее, источниками знаний могут быть: проведение
исследований в определенной области знаний с проведением логического анализа,
создание своих индивидуальных знаний, использование библиотек БЗ, Интеллсист,
Интернет и других атрибутов ИП (см. [Осуга89, Приобрзн90]).
В связи с приобретением знаний представляет огромный интерес автоматизация
процессов сбора знаний. Здесь не имеется в виду использование сканеров для ввода
содержимого публикаций. Больший интерес представляет создание устройств
«всякого зрения» для ввода знаний из окружающего мира (автоматически). Под
всяким зрением имеется в виду имитация всех органов чувств человека.
При анализе источников знаний целесообразно изучать формы развития знания,
проблем, гипотез, а также предположения об их развитии. Объяснение, доказательство
или опровержение гипотез может производиться с помощью Интеллсист. Методы
информатики указывают на приемы добычи знаний в различных ситуациях (см. т.6).
Знание границ не знает
Глава 2. Отношения - взаимосвязь данных
Основной формой фиксации текстовых знаний любого сорта для человека
являются фразы ЕЯ, фразы специалиста являются также фразами ЕЯ. Однако,
необходимо помнить, что фразы ЕЯ сложны для понимания машиной в силу
сложности и синтаксической направленности грамматики ЕЯ. Поэтому принята
следующая гипотеза: необходимо используется подмножество ЕЯ, которое здесь
именуется ЯПП (см. том 2). Понятие ЯПП будет означать использование той части ЕЯ,
с которой знаком специалист конкретной области знаний и которая может быть
представлена в памяти ВМ. Это не значит, что в памяти машины представлены
отдельные фразы. Это значит, что в памяти машины будет представлена грамматика
ЯПП как часть ЕЯ.
Обычно ЕЯ предстает перед нами в форме речи, текстами, картинками или
рисунками и выражает отношения между предметами, явлениями и процессами. Эти
формы общения людей устраивают всех и почти не зависят от специальности
человека. Все виды знаний могут быть представлены средствами ЕЯ. Не вызывает
сомнения представление знаний гуманитарных наук описаниями. Также нет сомнения
относительно представления знаний о смысле некоторого понятия или его
определении. Сложнее всего можно представить текстами некоторые математические
формулы, например использующими специальные знаки. Даже можно представить
себе использование ЕЯ для изображения алгоритмов и систем произвольного
назначения. Данный перечень видов знаний дан для того, чтобы можно было
задуматься над проблемами представления знаний и понять основную идею
представления знаний: один и тот же вид знаний может использоваться для
представления всех других видов знаний.
Представление знаний всех видов необходимо для разрешения проблем
эффективного функционирования системы человек-ВМ. Пока примем гипотезу о том,
что ЕЯ является хорошим (подходящим) средством для фиксации знаний в памяти
ВМ. Если фразы ЕЯ «разбавлены» словами профессионального лексикона (мы имеем
дело с ЯПП), то такая часть ЕЯ будет приемлема для специалиста в качестве рабочего
языка общения с Интеллсист. Все приведенные доводы в пользу применения ЕЯ
подкрепляются следующим фундаментальным и известным в программировании
положением:
УРОВЕНЬ или СТЕПЕНЬ ИНТЕЛЛЕКТУАЛИЗАЦИИ ПРОГРАММЫ ВМ
ПРЯМО ПРОПОРЦИОНАЛЬНЫ УРОВНЮ или СТЕПЕНИ
СООТВЕТСТВЕННО ОТТОРГАЕМОСТИ ПРОГРАММНОГО ПРОДУКТА
ОТ РАЗРАБОТЧИКА или ОТ СПЕЦИАЛИСТА РАЗРАБОТКИ.
Это положение в равной степени относится и текстам другого назначения, и к
вычислительной технике и к описаниям алгоритмов. Чем выше уровень общения
человека с ВМ, тем скорее система будет использована специалистом, знания
которого существенно отличается от знаний программиста.
Имеется важная особенность в деле использования ЕЯ для представления
знаний. Она состоит в понимании или интерпретации текстов, передающих знания,
которые связаны с предметами, явлениями и процессами. Эти понятия будем
связывать с понятием операнда. Операнд выделяет во фразе сущность, относительно
которой делается высказывание, содержащее что-либо до сих пор неизвестное. С
этими сущностями связаны признаки, свойства, симптомы, операции, отношения или
соотношения, которые уточняют знания о сущностях. Они создают контекст для
понимания сущностей. Перечисленные понятия ассоциируются с операциями над
сущностями. Так можно рассматривать всю фразу как формулу или выражение,
состоящую из операндов и операций. Знания по своему существу являются
утверждениями логического типа. Можно считать, что знания изображаются
логическими выражениями.
Имеется одна особенность ЕЯ, которая отражается в профессиональной прозе.
Она состоит в том, что предметы (сущности) одной части ЕЯ могут стать признаком в
другой части. Естественно можно предположить и обратный эффект: признак может
стать сущностью. В таких случаях используется контекст термина. Понятие контекста
важно и будет использоваться в дальнейшем. Контекст термина должен быть известен
заранее и учтен при программировании на естественном или формальном языках.
Математик или информатик, исследующий ИЛ должен владеть формальными
языками математики и информатики. Математический ФЯ аналогичен используемому
в МЛ языку правильно построенных формул. Информатический ФЯ для ИЛ является
частью языка Лейбниц. Фрагмент этого языка рассматривается ниже, а полностью он
рассмотрен в т.2.
Другая особенность в деле использования ЕЯ для представления знаний состоит
в том, что предметы, явления и процессы всегда находятся во взаимосвязи или
взаимозависимости. Они находятся в отношениях друг к другу. Отношения с другой
стороны - это взаимосвязь данных, представляющих конкретные объекты.
Фундаментальным понятием, используемым для передачи смысла некоторого текста,
является понятия отношения. Рассмотрим это понятие и покажем основные операции
с отношениями.
2.1. Определения понятия отношение
Отношения (как и простые высказывания) являются результатом формализации
элементарных знаний. Чаще других форм представления знаний отношения являются
также и формой представления результатов вывода нового знания. Для получения
более точного понимания отношение дадим серию его определений. Совокупность
данных ниже определений достаточно полно характеризуют это понятие.
Описательное определение. Отношение - это описание свойств(а) некоторого
предмета Х, принадлежащего подмножеству S множества Е. Структуры множеств S и
Е определяют все разнообразие конкретных определений и применений отношения.
Если под условием понимать высказывание, не являющееся ни истинным и ни
ложным, то отношение является абстракцией от условий.
Смысловое определение. Отношение - это модель взаимозависимости,
взаимосвязи или взаимовлияния предметов, явлений, процессов или их свойств.
Модель обычно представляется на некотором формальном или формализованном
языке. Действительно, пусть имеется переменная Х и переменная У, тогда пара
переменных <Х, У> определяет или устанавливает отношение между этими
переменными.
Концептуальное определение. Концептуальное определение выглядит так.
Отношение - это БЗ или ее элементы (например, лексикон), представляющие в
совокупности БЗ, формируемые путем накопления, сопоставления, уплотнения и
построения связей между представлениями понятий предметов, явлений и процессов.
Фактографическое определение. Отношение - это совокупность данных,
агрегатов массивов и (или) записей, кортежей высказываний и массивов данных,
возможно включающих процедурные данные.
Теоретическое определение. Отношение R - это подмножество декартового
произведения (*) некоторого набора множеств S1,S2,...,Sк; R << M, M = S1*S2* ... * Sк
(неоднородное отношение). На ФЯ такие подмножества описываются записями. Здесь
к - ранг отношения. Однородное отношение (представляемое массивами)
рассматривает одинаковые множества набора:
S1 = S2 = ... = Sк = S, R << Sк,
к = 0, 1, 2,..
Алгоритмическое определение. Отношение - это аналитическая зависимость
(операция над) между именами предметов, явлений или процессов, выражаемая
формулами
или
вычислительными
процессами.
При
этом
отношения
классифицируются так:
к = 0 - соответствует нульместной операции (константе);
к = 1 - соответствует унарной операции (свойству);
к = 2 - соответствует бинарной операции;
к = 3 - соответствует тернарной операции и т.п.
Возможно рассмотрение бесконечномерных отношений для теоретического
исследования. Если R = S1*S2*...*Sк, то отношение R называется универсальным (или
полным). Если R = 0, то оно называется пустым. Заметим, что любое отношение
определяет к-арный предикат.
Кибернетическое определение. Отношение - это знание, вводимое в память ВМ
или выводимое из памяти ВМ для хранения, обработки или представления его для
восприятия человеком или ВМ и для обнаружения различных ошибок. Самое общее
определение отношения подводит итог анализа разнообразных определений.
Кибернетическое определение выражает отношение человека к ВМ как средства
поиска нового знания на основе имеющегося.
В дальнейшем в этом томе будем использовать теоретическое и алгоритмическое
определения, так как это самая краткая форма представления отношений и более всего
соответствует принятым абстракциям (обобщениям) для выражения всего
разнообразия представления знаний. Отношения других форм может рассматривать
сам пользователь в качестве данных или операций.
Отношения понятий могут быть самыми разнообразными. Они могут быть
стандартными (равно, меньше или больше), редко используемыми (отношение
принадлежности) или пользовательскими (например, функции). Среди отношений
могут быть отношения эквивалентности, отношения-функции, отношение
конгруэнтности, пустое отношение чисел и др. Все они либо определены во
встроенных знаниях, либо в пользовательском знании. Над отношениями определены
операции, которые частично рассматриваются ниже. Можно различать следующие
классы отношений:
(1) синтаксические отношения, вытекающие из описания грамматик и определяющие
связи между символами, лексемами и другими конструкциями языка,
(2) семантические отношения, определяющие связи имен и значений обозначаемых
объектов,
(3) каузальные отношения, подлежащие исследованию и определению всех
условностей,
(4) концептуальные отношения, определяющие связи понятий между собой и их
свойствами,
(5) логические отношения, устанавливающие одновременность, альтернативность или
отрицание различных объектов,
(6) функциональные отношения, устанавливающие операционные связи значений
различных объектов,
(7) отношения структуризации устанавливают конструктивные связи объектов.
2.2. Операции с отношениями
В этом томе, ориентированном на изложение оснований информатики, будем
использовать общепринятые математические обозначения для машинного ввода
передаваемых для Интеллсист знаний. Это не означает, что каждый пользователь не
сможет применять синонимы математических обозначений. Первое введение
обозначения будет сопровождаться дополнительными пояснениями. Они необходимы
для уточнения машинных представлений.
Сами отношения могут рассматриваться как объекты, над которыми могут
выполняться операции, можно установить новые отношения между отношениями.
Рекурсивное понимание отношений часто используется для полного понимания самих
отношений. Например, свойства объектов представляют отношения, обозначаемые
одноместной операцией. Над такими операциями вновь можно реализовать операции
(сравнение свойств объектов). Рекурсивное представление используется повсеместно.
Совместное свойство двух объектов (двухместная операция) также часто
используется. Здесь ограничимся рассмотрением только нульместных, одноместных и
двухместных операций, выражающих свойства вообще, свойства объекта и свойства
двух объектов. Сами свойства выражаются предикатами (или, говоря обобщенно,
функциями). Ниже приведены некоторые примеры. Наиболее часто используемыми
свойствами являются:
1. P(X, X) => истина (аксиома рефлексивности):
2. P(X, X) => ложь (аксиома антирефлексивности противоположна аксиоме 1);
3. P(Y, X) => P(X, Y) (аксиома симметричности);
4. not (P(Y, X) => P(X, Y))
(аксиома антисимметричности противоположна аксиоме 3);
5. P(Y, X) => not P(X, Y) (аксиома асимметричности);
6. P(X, Y) & P(Y, Z) => P(X, Z) (аксиома транзитивности);
7. not (P(X, Y) & P(Y, Z) => P(X, Z))
(аксиома антитранзитивности противоположна аксиоме 6);
8. P(X, Y) \/ P(Y, X) \/ not (X = Y) (аксиома связности);
9. P(X, Y) => P(F(X, Z), F(Y, Z)) & P(F(Z, X), F(Z, Y)) (аксиома монотонности).
Указание общих свойств каждой функции (разумеется, исключая встроенные
функции и операции) может потенциально осуществляться двумя способами. Первый
способ состоит в явном перечислении свойств функции при ее описании. Второй
способ состоит в задании аксиом, описывающих требуемые свойства функции.
Первый способ не приемлем, поскольку свойства легко указать для двухместной
операции или функции, но сложно указать их свойства для многопараметрических
функций или многоместных операций. Например, нужно указать такое свойство
функции: функция коммутативна по пятому и восьмому параметрам и по первому и
третьему параметрам. Второй способ проще (по подсказке), контролируем и
эффективен. Ошибка более вероятно при первом способе и менее вероятна при втором
способе. Причем ошибка при втором способе может обнаружиться при вводе знаний в
БЗ (контролируемость). Эффективность второго способа заключена в том, что
возможно
задание
полукоммутативности,
полуассоциативности
или
полудистрибутивности (и др. полу-).
Рассмотрим второй способ указания свойств функций (любых заданных типов,
включая тип логический - для предикатов) фразами с иллюстрациями примеров для
многопараметрических функций. Сами аксиомы формируются математиком - автором
функции. Заметим, что для встроенных функций и операций все свойства учтены.
Свойство коммутативности функции (операции) двух переменных записывается так:
f(x, y) = f(y, x). Для указания коммутативности функции трех аргументов по первому и
третьему параметрам используется фраза: f(x,y,z) = f(z,y,x). Этот пример намекает на
полукоммутативность функции. Свойство ассоциативности функции (операции) двух
переменных записывается так: f(x, f(y, z)) = f(f(x, y), z). Для указания частичной
ассоциативности функции трех аргументов используется фраза: f(f(x,y,z),u,v) =
f(x,y,f(z,u,v)). Можно привести записи знания о других свойствах ассоциативности
этой функции относительно других комбинаций параметров. Содержательно это
означает, что допустимыми порядками вычислений и использования параметров
являются некоторые их комбинации, отличные от указанного. Все их перечислить
сложно, еще более сложным делом является текстуальное указание о том, какой
именно ассоциативностью обладает функция многих переменных.
Свойство дистрибутивности функции (операции) двух переменных записывается
так: f(x, g(y, z)) = g(f(x, y), f(x, z)). Такая запись аксиомы передает только один вариант
взаимосвязи функций (f и g), а можно указать записи для случаев многих функций со
многими параметрами. Текстовое указание «корреляции» функций и параметров
является сложным для двуместной операции, еще более сложным будет выглядеть
указание дистрибутивности для функций многих переменных. Даже написание
примера вызывает огромные мозговые усилия. Хорошо знающий свойства функции
сможет написать аксиомы в БЗ для передачи требуемых свойств его функции.
Свойство функции быть нейтральным (или нулевым) элементом (условно) также
сложно записать текстами, поскольку функция может иметь много параметров и
участвовать в одной или нескольких операциях (функциях) для указания
нейтральности. В простом случае нейтральный элемент (функция) A0 для операции f с
двумя параметрами записывается аксиомами: f(x, A0) = A0; f(A0, x) = A0. Аналогично
нейтральному элементу свойство функции быть единичным элементом (условно)
сложно по тем же причинам. Простейший случай единичного элемента A1 для
операции f с двумя параметрами записывается аксиомами: f(x, A1) = x; f(A1, x) = x.
Свойство рефлексивности функции (предиката) двух переменных записывается
так: f(x, x). Сложнее текстуально передать свойство рефлексивности предиката трех
переменных, которое можно записать, например, так: f(x, y, x) или f(x, y, y). Имеется
достаточное число свойств функций. Еще пример, гомоморфизм выражается
отношением: f(x @ y) = f(x) @ f(y), а идемпотентность таким выражением: f(x, x) = x.
Конечно, имеются многочисленные свойства функций, которые следует
учитывать аксиоматически. Среди свойств могут оказаться и неизвестные математике.
При изучении свойств функций следует иметь в виду, что Интеллсист сама может
открыть некоторые свойства новых функций, которые будут выведены в качестве
результата логического вывода по заложенным в Интеллсист знаниям.
Последствия от помещения свойств функций или предикатов в БЗ скажутся на
результатах логического вывода положительно. Каждая аксиома - дополнительное
знаний, которое может существенно уточнить ответ Интеллсист после разрешения
конкретного запроса.
Над отношениями применяются операции, которые перечислены ниже. Они
представлены математическими записями с операндами-отношениями R и P:
Операция объединения: R + P = ((a, b): (a, b) in R or (a, b) in P).
Операция пересечения: R * P = ((a, b): (a, b) in R and (a, b) in P).
Операция включения: R << P = ((a, b): (a, b) in R => (a, b) in P).
Операция эквивалентности: (R = P) = ((a, b): (a, b) in R = (a, b) in P).
Операция разности: R \ P = ((a, b): (a, b) in R and not (a, b) in P).
Операция композиции: R @ P = ((a, b): exists c ((a, c) in R and (c, b) in P)).
Операция получения обратного отношения: R -1 = ((a, b): (b, a) in R).
Операция диагонали: D(R) = ((a, a): a in R)
Операция дополнения: R' = ((a, b): (a, b) in A and (a, b) in R)
Имеются многие и многие другие операции, здесь дан представительный или
показательный перечень часто используемых операций. Записи свойств отношений и
операций над отношениями могут использоваться как аналог для записи
пользовательских отношений и операций. Бывают: отношение эквивалентности,
отношение-функция, отношение конгруэнтности, пустое отношение, полное
отношение,...
2.3. Свойства отношений
Имеется достаточное число свойств отношения, которые должны отражаться в
аксиоматике информатики. Рассмотрим далее последовательно все аксиомы, которые
относятся к девяти свойствам отношения. Некоторые из них уже рассматривались
выше в качестве примеров. При описании отношения (логической функции) такие
свойства должны указываться явно. Язык Лейбниц указывает толкование умолчания
таких указаний. Аксиомы для свойств отношений условны, если не выяснено, что
отношение обладает таким-то свойством или не обладает. Например, если функция
конструируется, то заведомо неясно какими свойствами она обладает.
При задании свойств отношений для Интеллсист необходимо учитывать, что
полнота знаний об объектах или отношениях определяется числом задаваемых аксиом.
Число аксиом определяется так. Аксиомы задаются для объекта или отношения
(собственное определение), для пар объект-объект, объект-отношение, отношениеобъект и отношение-отношение (определение взаимозависимости), для троек,
четверок и т.д. Конечно же, с одной стороны, всех аксиом не задать никогда, с другой
стороны, все аксиомы и не нужны, поскольку зависимости некоторых пар в принципе
не построить, с третьей стороны, некоторые зависимости не нужны для решения
многих классов задач. Как уже упоминалось вскользь, имеется хороший пример
великой теоремы Ферма: X**n + Y**n = Z**n, при всяком n > 2. Для доказательства
теоремы достаточно знать аксиому, устанавливающую связь операций + и **. Поиск
доказательства связан с поиском именно такой связи.
Одни операции избыточны по отношению к другим. Вопрос избыточности важен
для построения алгоритмов оптимизации. Некоторые свойства операций над
отношениями даны ниже в перечислении:
1. (R1 @ R2) @ R3 = R1 @ (R2 @ R3) - ассоциативность композиции
2. (R-1)-1= R.
3. (R1 @ R2) -1= R2-1@ R1-1
4. (R1 + R2) -1 = R1-1 + R2-1.
5. (R1 * R2) -1 = R1-1 * R2-1.
6. (R1 + R2) @ R3 = R1 @ R3 + R2 @ R3 - ...
7. (R1 * R2) @ R3 = R1 @ R3 * R2 @ R3 - ...
8. (R1 = R2-1) = (R2 = R1-1) - ...
9. (R2) -1 = (R -1) 2.
10. R1-1 @ R2-1 = (R1@ R2 ) -1.
11. D(R-1)= D(R) - ...
12. D(R) -1 = D(R) - ...
13. Рефлексивность D(M) << R
14. Антирефлексивность D(M) * R = 0
15. Симметричность R-1<< R
16. Антисимметричность R * R-1<< D(M)
17. Транзитивность R @ R << R
18. Связанность M \ D(M) << R + R-1
19. Функциональность R-1@ R << D(M)
20. Дифункциональность R = R @ R-1@ R
Кроме свойств абстрактных отношений и операций ниже будут рассмотрены
свойства конкретных операций, встроенных в Интеллсист. Такие свойства встроены в
МЛВ, их задание является избыточным. Однако не все математические свойства
отношений уже учтены в Интеллсист. Проблема учета является весьма сложной для
реализации. Но она может разрешаться в частных случаях.
2.4. Предикаты - обобщение отношений
Одна из форм уточнения высказываний состоит во введении параметров,
атрибутов или данных. Предикат грамматически в русском языке выражается обычно
(но не всегда) группой сказуемого. Свойства, признаки, характеристики определяются,
отражаются, наличествует у некоторого объекта. Предикат - это анатомия
высказываний. Рассмотрим 7 взаимозаменяемых определений предиката (как частный
случай отношений).
Определение 1. Высказывание, зависящее от параметров или ситуаций и
принимающее в зависимости от их значений логическое значение, называется
предикатом. Для каждого набора значений параметров или ситуаций предикат
принимает конкретное истинностное значение в двузначной логике: ложь или истина.
Множество значений параметров и ситуаций (предметная область предиката)
подразделяется на две подобласти. На одной подобласти предикат принимает
истинные значения, на другой - ложные значения.
Определение 2. Предикат - это функция, значения которой являются
конкретными высказываниями, имеющими истинностные значения. Предикат - это
развитие понятия высказывания, выраженного на некотором языке.
Определение 3. Пусть S1, S2, ... , Sk - набор множеств. Всякое соответствие
P(X1, X2, ... ,Xk), ставящее каждому набору из k элементов (х1, х2, ... ,хk) - агрегата,
где х1 in S1, х2 in S2, ... , хk in Sk, булевское значение истинности, называется k арным предикатом на М = S1*S2*...*Sk. M составляет предметную область для
предметных переменных X1,..., Xk, Р - элемент проблемной области.
Определение 4. Предикат - это логическое выражение, включающее имена,
логические операции, операции отношения. Причины, из-за которых имена ссылаются
на конкретные значения, являются неизвестными. Их могут называть показателями
качества, чертами, особенностями, штрихами, атрибутами, характеристикой
принадлежности, приметами, симптомами, квалификацией и др. Их наличие или
отсутствие определяют или отражают значение предиката. Предикат часто может
определяться таблицей.
Определение 5. Предикат R может специфицироваться как x R y, R x, R(x),
R(x, y), х, у - логические выражения.
Определение 6. Предикат - это некоторый алгоритм (функция), определяющий
логическое значение. Утверждение или программа являются примерами предикатов.
Определение 7. Предикат - это возможная смесь данных выше определений 1-6
и принимающая логическое значение. В частности, предикат может составляться из
предикатов и логических операций.
Смысл предиката выражается логическим значением, как ложь или истина, но
не то и другое вместе. Как уже отмечалось, предикат по форме - это отношение или,
если говорить точнее, спецификация отношения. Предикат может не зависеть от
параметров или зависеть от некоторого числа параметров.
И последнее. Понимание таблиц иногда возможно и полезно интерпретировать
как представление предиката, заданного своими значениями. Табличный предикат
истинен только в том случае, если все значения его аргументов имеются в таблице и
занимают целиком всю строчку. В остальных случаях предикат ложен. Такое
понимание таблиц полезно при построении выражений, связанных с поиском по
таблице.
2.5. Логика отношений
Таблицы, отношения или предикаты используются в выражениях либо в
качестве входных отношений, либо в качестве искомых. Поскольку значениями
предиката являются логические значения, они могут входить в выражения с помощью
логических операций. В таких случаях можно говорить о логике предикатов. Причем,
если отношение является искомым, то логика предикатов именуется логикой высшего
(выше первого) порядка. Результатами решения задач с таким использованием
предикатов будет новый факт, соответствующий определению искомого предиката
(таблицы или отношения).
Для или в связи с Интеллсист нет необходимости заниматься обособленно
логикой отношений или предикатов. ИЛ рассматривает определение отношения или
предиката, но не рассматривает набора аксиом, определяющих их свойства, исключая
встроенные операции отношения. Логика отношений может изучаться с помощью
Интеллсист - вот важное замечание для практических нужд. Предварительное
изучение логики отношений важно, но не является обязательным для решения класса
задач, использующих стандартные отношения. Предварительное изучение может
принести пользу для сокращения затрат на их исследования. Решение задач с
использованием отношения может инициировать вопросы от Интеллсист
относительно недостаточности знаний. Причем форма вопроса может подсказать
направление, в котором необходимо реализовать поиск недостающего знания.
Логику отношений, определенных пользователем, строит сам пользователь,
задавая аксиомы как прочие элементы знаний в классе прикладных аксиом. Они
должны отражать определение отношения, свойства определяемых отношений и
логические связи различных операций с отношениями. Совокупность таких
прикладных аксиом составляют логику отношений, заданных пользователем для своих
исследований. Именно так строится логика пользователя, которая может существенно
или частично отличаться от общепринятой логики. Можно с уверенностью сказать,
что для решения практически любой задачи создается своя пользовательская логика.
2.6. Многомерные отношения
До сих пор рассматривались только классические предикаты, не зависящие от
параметров или зависящие от одного или двух параметров. В практике используются
многопараметрические предикаты. Как уже определялось, любая таблица может
рассматриваться как предикат с количеством параметров, равным числу столбцов в
таблице. Такой предикат, как уже было сказано, истинен для тех значений параметров,
которые помещены в таблицу в одной строчке, и ложен для тех, которые не помещены
в таблицу в одной строчке. Функции, также устанавливающие отношения, могут
содержать любое (заданное пользователем) число параметров или аргументов. Все
подобные величины относятся к классу многомерных отношений.
Все изложенные операции над отношениями пригодны или могут быть
распространены для многомерных отношений. А вот свойства самих отношений и
операций над отношениями не могут быть распространены непосредственно. Можно
лишь условно применять определения свойств к многомерным отношениям.
Например, можно рассматривать (как уже ранее рассматривалось) коммутативность
функции f(x, y, z) по первым двум параметрам: f(x, y, z) = f(y, x, z). Отсюда следует,
что свойства многомерных отношений должны задаваться самим пользователем в
виде, указанного в примере.
Таким образом, вся работа по определению и использованию многомерных
отношений выполняется пользователем от начала до конца. Интеллсист рассматривает
формальные определения терминов, которые по смыслу становятся многомерными
отношениями. Таблицы и функции могут быть многомерными, о чем сообщается при
описании термина - имени таблицы или функции соответственно. Любой абзац
является законченной мыслью и логическим выражение, принимающим значения лжи
и истины. Можно говорить, что любой абзац представляет многомерный предикат.
2.7. Система встроенных отношений в Интеллсист
На состав стандартных или пользовательских операций было обращено
значительное внимание (т. 2 - языковое определение записей отношений, т. 3 определение смысла отношений, т. 4 - иллюстрация некоторых отношений) как с
формальной точки зрения, так и с неформальной. Если на операции взглянуть как на
отношения, то надо рассматривать аксиоматику, определяющую каждую операцию.
Это сделано в гл.5.
Встроенными отношениями являются операции равно, не равно, больше, больше
или равно, меньше, меньше или равно и принадлежности или отрицание
принадлежности множеству. Все они определены аксиомами. Более того, базисными
операциями являются равно, меньше и принадлежности множеству. Остальные
операции выражаются базисныеми операциями. Заметим, что аксиоматика операций
не полна. Например, отсутствуют аксиомы, которые полностью связывают операции
отношения, сложения и возведение в степень. Если пользователь или создатель БЗ
определяет отсутствующие аксиомы, то он сообщает их в запросе (или перестраивает
существующую БЗ), расширяя тем самым область применения БЗ.
Термины всех встроенных операций помещаются в стандартный лексикон
вместе со всеми характеристиками, отражающими все их свойства. Совокупность
встроенных отношений образуют систему, принятую как всеобщую. Эта (базовая)
система обычно изучается в средней школе и в институте. Поиски новых данных,
операций или отношений, проведение новых исследований может привести к
построению логики, отличной от встроенной. Например, изучение векторов связано с
теми же операциями, которые входят в состав встроенных. Задание операций над
векторами должно заботить пользователя. От того, как он их определит, зависит
результат разрешения его запросов.
Знание - половина ума
Глава 3. Логические уравнения
Основу решения любых задач составляют логические уравнения. Каждая задача логическое уравнение, в котором имеются известные (по логической связи) величины
и неизвестные (искомые) величины. ИЛ предназначена для формирования алгоритмов
логического вывода решения логического уравнения. Другими словами ИЛ можно
именовать исчислением логических уравнений. В разделе рассматриваются понятие
логического уравнения, различные способы и подходы к его решению и подходящая
классификация самих логических уравнений.
3.1. Определение понятия логического уравнения
Понятие логического уравнения может показаться несколько неожиданным на
первый взгляд. Их почти не рассматривают в литературе. Однако, когда вспомним о
том, что f(x)= 0 является логическим уравнением, то сразу станет ясной проблема,
которую собираемся рассматривать. С другой стороны, логическим уравнением
является запись А&В, что может привести в замешательство искушенного математика,
поскольку в записи отсутствует символ равенства. Однако приступим к формальному
определению понятия логического уравнения.
В соответствии с энциклопедическим словарем или справочником по математике
и по аналогии с соответствующим определением понятия алгебраического уравнения
имеем следующее определение понятия логического уравнения. Логическое уравнение
- это аналитическая запись проблемы о разыскании значений аргументов, при которых
значения двух данных функций равны. Схематически логическое уравнение имеет
вид:
f(X) = g(X),
где f и g - некоторые функции со значениями из некоторой области, X - искомый
аргумент. В частном случае f и g могут быть функциями для получения логических
значений, а равенство можно истолковать как операцию эквивалентности. Аргументы,
от которых зависят функции и которые входят в уравнение, называются
неизвестными. Значения неизвестных, при которых значения функций равны,
называются решениями уравнения или корнями уравнения. Конечно, это определение
имеет общий характер. Будем рассматривать и такие логические уравнения, которые
имеют вид А&В с неизвестными А и В. Решения уравнения также называются
корнями уравнения. Говорят, что они удовлетворяют данному уравнению.
Мы будем рассматривать логические уравнения, одна функция которого
является логическим выражением, а другая функция - логическое значение истины:
L(X) = истина.
В частном случае функция L может быть вновь равенством: L(X):= (f(X) = g(X)).
Присваивание (двоеточие с равенством) обычно используется для указания того, что
его правая часть рассматривается вместо левой части, или левая часть ссылается на
выражение в правой части. Рассмотрение таких логических уравнений равносильно
рассмотрению логической функции L(Х) с точки зрения неизвестных. В силу такого
рассмотрения логическая формула А&В является логическим уравнением типа L(А,В).
Будем обращать внимание главным образом на уравнения такого сорта. При этом не
будем пренебрегать и обычными уравнениями, например такого вида:
L(X) := (f(X) = 0).
Здесь рассматривается предикат L, выраженный через функцию f и равенства нулю,
или уравнением для корня X. Вместо эквивалентности рассматривается равенство. Эти
операции являются синонимами. И для эквивалентности, и для равенства, когда
функциями являются логические выражения, подразумевают одинаковые значения
обеих функций равенства или эквивалентности. Только в этом случае будем иметь
дело с истинами, представленными равенствами или эквивалентностями.
Для логических уравнений вида А&В также можно говорить о его корнях. Их
значения будут истина для А и В (А = истина и В = истина). Областью значений
неизвестных в таких случаях будет набор {истина, ложь}. Если логическое уравнение
не имеет решения, то будем говорить, что это уравнение неразрешимо или
противоречиво. Уравнение может иметь полное решение, т.е. все возможные
комбинации для неизвестных, тогда можно говорить о том, что уравнение есть
формула, которая представляет теорему. Эти два крайних случая обычно
рассматривает математика. Нас будет интересовать любое промежуточное положение,
хотя и не исключаются также и эти два крайних случая.
И все-таки логические уравнения имеют более сложную структуру, по
сравнению с алгебраическими уравнениями, представленными логическими
выражениями. Неизвестными таких уравнений могут быть вещественные переменные.
Иногда можно говорить о бесконечном числе корней исходного уравнения. И такие
уравнения нас будут интересовать. В информатике рассматриваются самые
разнообразные уравнения, поэтому их обобщение в информатике важно и актуально.
Например, уравнение, определяющее некоторое аналитическое выражение или
программу, представляет несомненный интерес при синтезе новых вычислительных
методов или моделирования. Трудно представить себе всю совокупность уравнений с
современных позиций в исследованиях с применением информатики. Однако, можно
внимательно рассмотреть язык Лейбниц и определение логического выражения, чтобы
мысленно очертить множество уравнений, которые рассматривает информатика. К
уравнениям относятся записи равенств или эквивалентностей относительно
неизвестных, специфицируемых процедурами или именами функций. Возможно, что
именно здесь намечается реальная связь практических задач с исчислениями
предикатов высших порядков.
Обоснование ИЛ (как и обоснование любой теории или науки) связано с
формированием утверждений относительно понятий ИЛ или их связей. Каждое
утверждение можно рассматривать как логическое уравнение, которое можно решить.
Решение даст ответы на свойства ИЛ. Обоснованием ИЛ занимается металогика ИЛ.
3.2. Исчисление проблем
Совокупности любых уравнений, соединенных логическими операциями
образуют также логическое уравнение (в математике такие совокупности называются
системами уравнений). Системой уравнений называется совокупность уравнений, для
которых необходимо найти значения неизвестных, удовлетворяющих одновременно
всем уравнениям в некоторой логической зависимости (в математике вероятнее всего
используется конъюнкция уравнений). Например, значения неизвестных должны
удовлетворять всем уравнениям одновременно. Система уравнений может
рассматриваться как одно логическое уравнение, если учесть сказанное выше. Пусть
имеется система уравнений:
f1(Х) = g1(Х),
.......................
fn(Х) = gn(Х).
Пусть эти уравнения связаны между собой требованием: одновременно
удовлетворять корню системы. Тогда система уравнений может быть представлена
одним логическим уравнением вида:
f1(x) = g1(x) & ..... & fn(x) = gn(x)
Такие системы в основном и рассматриваются во всех задачах. Но можно
представить и другие логические связи между уравнениями системы. Обычно в
математике рассматривают только такие связи. Практика поставляет для информатики
и другие сорта уравнений. Например, вместо операции & (и) можно рассмотреть
операцию \/ (или). Так обращается внимание на более широкие классы уравнений,
которые становятся логическими. Это для информатики является весьма характерным,
она рассматривает логические уравнения, определенные логическими выражениями и
логическими операциями.
Каждая проблема выражается логической формулой или логическим
выражением. Можно рассматривать совокупность проблем и из них построить новую
проблему на основе имеющихся логических операций, переводящих любые
предметные области в область логической переменной. Такие манипуляции совокупно
образуют исчисление проблем, которое имеет самостоятельный интерес. Не будем
рассматривать вопросы исчисления проблем, кроме постановочной формы.
Далее рассмотрим еще ряд связанных с логическими уравнениями определений.
Два уравнения называются равносильными, если решение одного уравнения является
одновременно и решением другого уравнения. Это понятие будет рассматриваться
далее. ИЛ занимается исчислением равносильных уравнений. Общая канва методов
решения логического уравнения: исходное уравнение преобразуется последовательно
в равносильные ему уравнения до тех пор, пока не будут получены простейшие
неразложимые уравнения, которые везде в тексте именуются фактами.
В истории математики известны вехи для появления и решения разнообразных
уравнений и систем уравнений. Начиная с XVI - XVII веков развиваются
трансцендентные, линейные, тригонометрические, логарифмические, показательные и
др. уравнения и системы уравнений. Широко в настоящее время известны
дифференциальные и интегральные уравнения, операторные и функциональные
уравнения. Наименование уравнения зависит от того, какие зависимости или
операции используются для формулировки уравнений. Их рассмотрение интересно не
только для истории науки, но и для поиска новых методов решения таких уравнений.
Для информатики важны всякие сорта или классы уравнений, до их решения они
сводятся к логическому уравнению.
Логические уравнения также можно классифицировать в зависимости от
используемых в них операций математики или логических операций. Операции
математики определяются при построении логических уравнений каким-либо образом,
их определения также составляют логические выражения. Поэтому классификация
логических уравнений в зависимости от логических операций для ИЛ важнее. В таком
случае можно рассматривать: высказывательные уравнения (уравнения для синтеза
тестов логических схем), предикатные уравнения (уравнения для синтеза понятий),
кванторные уравнения первого порядка (уравнения для поиска неизвестных любого
типа), кванторные уравнения второго и высших порядков (уравнения для поиска
функций любого типа).
Особое место занимают предикатные уравнения. Именно проблема их решения и
побудила исследовать проблему логических уравнений. Равенство - это частный
случай для решения задач информатики. Равенство - это только один пример
предиката. Другим примером известного предиката является предикат неравенства.
Системы неравенств известны в математике, они могут послужить примерами
предикатов, отличающихся от равенства. Шаг за шагом можно построить различные
уравнения логического типа с предикатами любой природы.
Представляет интерес следующее простейшее уравнение. Оно предназначено для
разрешения вопроса - является ли логическое выражение А уравнением в известном
смысле понятия равенства? Разрешением вопроса может послужить доказательство
теоремы или поиск решения следующего уравнения:
А = (А = истина)
Это уравнение гласит, что А равносильно уравнению А = истина. Попробуем решить
его по интуиции. Исходное уравнение можно заменить системой следующего вида (по
выражению равенства или эквивалентности через базовые логические операции «и»,
«или» и «не»):
А & (А = истина) or not A & not (А = истина)
По этому же правилу для равенства получаем следующее эквивалентное логическое
уравнение:
А & А & истина
or A & not A & not истина
or not A & not A & истина
or not A & A & not истина
Простые эквивалентные преобразования логического выражения приводят к решению
номер один - А := истина и решению номер два - A := ложь. Именно таким образом
все возможные значения аргументов являются решениями исходного уравнения.
Следовательно, исходное уравнение является теоремой. Тем самым установлена
истинность исходного утверждения, представляющего логическое уравнение.
Исчисление задач впервые рассмотрел А.Н. Колмогоров. Формулировка задачи это логическое утверждение (логическое уравнение). При рассмотрении
совокупностей задач можно прийти к построению новых задач в форме нового
логического утверждения, составленного из имеющихся формулировок задач и
логических операций. Распространяем эту идею на наши логические конструкции. В
первую очередь рассмотрим исчисление классов проблем (задач). Вспомним, что
каждый класс проблем формулируется в форме БЗ (КВ) и запросов. Совокупность
классов проблем - это совокупность КBi и Q, хранящиеся в библиотеке (знаний).
Новый класс проблем можно построить в результате применения операции
одновременного рассмотрения двух имеющихся БЗ: КВ := КВ1 & КВ2. Это наиболее
распространенный способ построения новых классов проблем. Поскольку КВ - это
совокупность аксиом и правил вывода (прикладное исчисление), поэтому можно
предположить, что заданием КВ задается практическая теория. Новая теория строится,
в частности, на стыке двух теорий. Построение совершается по указанной выше схеме
соединения двух прикладных исчислений. Новые классы проблем получаются
применением логических операций к имеющимся КВi. Например, новый класс
проблем можно построить в результате применения операции альтернативного
выбора: КВ := КВ1 \/ КВ2. Этот способ построения нового прикладного исчисления
еще слабо изучен в практике решения классов проблем. Для Интеллсист такие
постановки приемлемы. Новый класс проблем можно построить из имеющейся
проблемы путем применения операции not: КВ:= not КВ1. «Антитеория» представляет
интерес для имеющейся теории, поскольку она дает новые сведения о самой теории.
Наконец, новые классы проблем строятся на основе имеющихся КВi и логических
операций хотя бы из числа приведенных. Исчисление классов проблем, только что
рассмотренное выше схематически является обобщением исчисления задач (по
Колмогорову). Но логическими связками могут быть другие логические операции,
например, следование, равенство или неравенство, кванторы и т.п. Исчисление задач
тем самым расширяется.
Следует отметить практические трудности, связанные с построением новых
исчислений или теорий. Основная трудность состоит в построении лексиконов новых
исчислений и теорий. По своему существу для нового исчисления (или теории)
лексиконом должен быть совокупным лексиконом двух исходных исчислений. Об
этой трудности будет сказано ниже.
3.3. Общий подход к решению проблем
-
Теория информатики предусматривает решение следующих (тактических) задач:
найти такие значения высказываний, которые обеспечивают истинность исходного
высказывания, реализуя тем самым получение ответа на вопросы пользователя
(или опровергнуть истинность высказывания),
-
-
разложить систему уравнений или одно уравнение на более простые уравнения для
эффективного решения исходной системы или формирование вопросов для
пользователя по получению дополнительного знания,
максимально упростить исходную формулировку уравнения до простого
понимания частей исходного уравнения или получить его решение,
проанализировать на ВМ знания любого сорта и для любых целей, и использовать
это для решения задачи или получения ответа на вопросы пользователя,
доказать (или опровергнуть) теорему или определить условия того, что
высказывание является теоремой,
обнаружить ошибки в записях уравнений.
Сущность метода решения логического уравнения заключена в сведении
сложных выражений к простым или к простейшим. Простые выражения понимаются
точно и всегда. Простейшими выражениями являются выражения, которые имеют вид
имени объекта с присвоенным ему значением (являются записями фактов). Как уже
отмечалось, пара имя-значение - это факт, который понимается пользователем
быстрее. Имя объекта - это термин понятия, с которым связан этот факт.
Процесс решения логического уравнения складывается из шагов по применению
логических правил вывода решения. Один шаг применения одного правила вывода
приводит к результату, который будем называть условно предрешением. На
некотором шаге предрешение становится решением - выражениями для корней
уравнения (везде будем подразумевать под понятием уравнение и систему уравнений,
если не оговорено специально, с чем имеем дело). Критерием остановки процесса
вывода решения является неприменимость ни одного правила вывода решений к
предрешению. Поиск решения иначе называется поиском смысла высказывания.
Каждое предрешение также постепенно раскрывает смысл высказывания. Считается,
что найденное решение полностью раскрывает смысл исходного высказывания.
Аналогично осуществляется логический вывод решения других видов уравнений (с
функциями, предикатами или с кванторами).
Решение уравнения образует множество фактов или утверждений о фактах,
раскрывающих смысл исходного высказывания - запроса, вопроса, проблемы, задания
или задачи. Если решение представлено в единственном экземпляре, то это обычно
считается академически хорошим признаком. Если решение образуется из множества
альтернатив совместных фактов, то это обычно считается прагматическим признаком,
стимулирующим исследования. Получение альтернативных решений можно считать
плохим признаком, потому что в таких случаях нужны дополнительные знания для
вывода единственного решения - одной совокупности совместных фактов. Однако это
можно подвергнуть некоторому сомнению. Вообще же решения всегда образуют
множество, оно может быть пустым, может содержать один элемент, может содержать
конечное число элементов, а может содержать и бесконечное число элементов
(некоторая мощность множества решений всегда определяется). В языке Лейбниц
принято обозначать через {~Х~: Т; А(Х)} множество элементов Х типа Т,
удовлетворяющих условию А(Х). Другими словами, множество значений Х, которые
являются решением уравнения А(Х) и обеспечивают истинность высказыванию А(Х).
Т - это тип переменной (он может быть и неопределенным). Заметим, что множество
решений уравнений представляет искомые новые знания. Каждое решение - это
элемент нового знания.
Общий подход к решению проблем по существу определяет последний шаг,
который приводит к рассмотрению технологии ИП, как нового направления в
информатике. Другие сорта программирования исследованы не только с технической
точки зрения, но и с учетом человеческого фактора. Этим не может похвастать
рассмотренное новое направление в применении ВМ.
Для технологии ИП характерен следующий пример. Известна цепочка
рассуждений [Логический90]: все птицы летают, Тити является птицей, следовательно
Тити летает. Но Тити - страус, он летать не может. Как справится с этой задачей
Интеллсист. Для Интеллсист каждая птица представляется записью, в которой
имеются поля «летать» со значениями «нет» или «да» и «наименование» птицы. Если
в массиве записей «птица» имеется запись с наименованием «страус» и о Тити
известно, что она является страусом, то высказывание о Тити будет ложным. Если
сведения о Тити отсутствуют, то высказывание «Тити летает» останется
неопределенным. Недостаток сведений не позволяет решать задачи до факта, до
значения ложь или истина. В аналогичную ситуацию попадает человек, которому
задают аналогичные вопросы. Может сложиться впечатление, что в утверждении
использовано семантическое правило. Это не так для Х = Тити (Тити является
страусом). В утверждении использовано синтаксическое правило, включающее
логическое следование, интерпретация которого для Тити устанавливает ложность
исходного утверждения. Относительно Тити, если он - птица, будет получен ответ:
Тити летает. Утверждение «если Х птица, то Х летает» не всегда является истинным.
В таких случаях необходимо составлять БЗ совсем с другими характеристиками.
Логический вывод о невозможности для Тити летать не должен связываться с
указанным утверждением.
Интеллсист может задавать вопросы или ее ответы на запросы будут выглядеть
как вопросы. Пользователь обязан пополнить БЗ или запрос дополнительными
сведениями для получения окончательного ответа. Может создаться впечатление, что
для Интеллсист необходимо непрерывно давать дополнительное знание. Да. Для
получения точного ответа БЗ или запрос должны содержать все необходимые
сведения. В записи для Тити содержатся сведения о том, что она - птица и не летает.
Тогда утверждение о том, что все птицы летают - будет ложным. И частная проблема
разрешится точно. Рассмотренный академический пример не показателен и прост (для
иллюстрации). Незначительные рассуждения приводят нас к точному ответу. В
реальных запросах на более сложные темы не так просто построить ответ, даже при
полном знании. Поэтому и рассматривается технология работ с Интеллсист.
Рассмотрим примеры задач, сводящихся к решению логических уравнений. Эту
классификацию необходимо дать для подсказки и для убедительности. Например,
некоторые образцы сортов уравнений и их решений:
Пример 1. Обоснование алгоритмики. Программист получает задание (или сам
его формулирует) на составление программы. Исходная постановка задания в общем
математическом виде имеет такую форму: для каждого X (A(X) => найти Y такой,
что B(X, Y)), где A(X) - свойства исходных данных Х, B(X,Y) - связь исходных
данных и искомой величины Y. Утверждается, что необходимо найти Y, если из
свойств A(X) вытекает связь B(X,Y) для всякого Х. Решением такой задачи имеет вид
альтернативного набора Y := F(X). В результате получится либо число для величины
Y, либо аналитическое выражение F(X), либо программа, вычисляющая Y:= F(X),
вообще говоря, альтернативные выражения для Y, Y:= Fi(X).
Пример 2. Диагностика устройств (или состояний живого организма). ЭС
большей частью призваны решать задачу, которая на языке математики может быть
выражена так: (&i Ki) => (B => D) или (&i Ki) & (B => D), где Кi - элемент БЗ высказывания о структуре и свойствах устройства (или соотношение симптомов и
болезней для живого организма), В - обследование устройства (организма), записанное
в виде (опросной) анкеты, D - требуемый диагноз. Эти логические уравнения могут
быть решены в форме конечного выражения D:= (&i Ki) & B. Диагностика устройства
вычисляется по конечной формуле. Аналитические преобразования выражения для D
может исключить избыточность в формулах, определять локальные противоречия или
установить глобальное противоречие. Самая, пожалуй, важная задача называется
проблемой диагностики. Решение проблемы можно использовать для определения
состояния человека, общества, устройства и др. Переменными являются признаки,
симптомы, характеристики и др. атрибуты, представляемые атомарными
высказываниями. К переменным относятся неисправности, болезни, классы свойств и
др. атрибуты человека, общества, устройства и др. Высказывательное уравнение имеет
вид: &iКi => (В => Д) или другой вариант, где Кi - элемент знания, представленный
логическим выражением с переменными всех сортов, В - запрос, представленный
логическим выражением с переменными сорта симптомы или признаки, Д неизвестная логическая функция (диагноз), зависящая от переменных сорта
неисправности или болезни, &i - логическое произведение. Логическое уравнение
имеет функциональное решение в виде: Д = &iКi & В. На изложенных принципах
построены диагностические ЭС.
Пример 3. Постановка задачи исследования утверждений. На основе БЗ
можно решать задачи установления корректности высказывания Z, которое должно
вытекать из знаний в базе. Задача формально записывается в виде логического
уравнения (&i Ki) => Z, где Z - обозначение исследуемого высказывания, оно
определяется в конечном виде так: Z := &i Ki. По существу такая формулировка задачи
является исследованием свойств БЗ. Если Z - некоторое конкретное высказывание, то
указанное выше решение не принимается во внимание. Исходное уравнение
необходимо решить по правилам ИЛ.
Пример 4. Поиск новых теорем по запросу Q при определенных условиях.
При формулировке любой задачи Q формируется решение логического уравнения в
одном из трех видов (число, формула или программа). Пусть решения обозначены как
C1,...,Cn. Тогда требование истинности Q приводит к следующей записи итога
решения задачи: C1&C2&...&Cn => Q. Это представляет собой новую теорему или
высказывание, которое будет истинным при тех же самых условиях (с учетом
наполнения БЗ). В связи с этой задачей представляет интерес генерирование новых
теорем в некотором исчислении. В качестве гипотезы выступает некоторое
высказывание В. Решение высказывательного уравнения, в которое входит данное
высказывание, приведет к формулировке условий, при которых высказывание
становится истинным (см. предыдущий пример). Тогда генерируемая теорема примет
вид: &iСi => В, где Сi - построенное при поиске решения высказывательного
уравнения условие, В - исходное высказывание. Этим самостоятельная в некотором
смысле задача генерации теоремы завершается.
Пример 5. Доказательство теорем в данном исчислении высказываний. Эта
задача относится к разряду плохих. Она менее интересна по сравнению с задачей
решения высказывательного уравнения. Пусть сформулировано логическое
выражение, которое представлено как теорема. Решение уравнения, составленного из
этого выражения может содержать все комплексы (альтернативы совместных фактов).
Тогда считается, что теорема доказана. В противном случае выражение не является
теоремой. Здесь возникают две проблемы: (1) заданное исчисление для встроенной БЗ
может оказаться противоречивым, тогда необходимо вводить новые обозначения для
пользовательских операций, (2) может возникнуть информационный взрыв от
количества альтернатив, как положено, можно и здесь найти приемы устранения
причин возникновения.
3.4. Классификация проблем
Проблема (в частном смысле - задача) - это сложный теоретический или
практический запрос, требующий изучения и разрешения, возникающий в реальных
или мыслимых противоречивых ситуациях и передаваемый Интеллсист для
разрешения. Каждая проблема может быть отнесена к тому или иному классу.
Классификация проблем устанавливает связи понятий, предметов и явлений в
процессе изучения источников проблемы. Необходимость классификации вытекает
также из следующего. Каждая классификация (предлагаемая также) устанавливает
области интересов и базируется на известном или заданном критерии (признаке). Если
быть более точным, то можно сказать, что классификация указывает всю совокупность
проблем, которые могут решаться излагаемыми в ИЛ средствами. С помощью
классификации можно осуществить корреляционный или сравнительный анализ
проблем, изучаемых различными науками или отраслями одной и той же науки.
Классификация устанавливает только первоначальный порядок в наборе
проблем. Она определяет "независимые координаты - признаки". Практически же
некоторые проблемы не могут быть отнесены непосредственно к тому или иному
классу, так как они имеют смеси признаков классификации. В этом ограничительное
свойство любой классификации, в частности и в приводимой ниже. Сопоставлением
классификаций различных объектов можно установить свойства рассматриваемых
объектов (или проблем). Поэтому классификация проблем может решать вопросы
сложности проблем по некоторым параметрам (например, сложность получения
решения, размер памяти, время получения решения). Таковы некоторые пункты
назначения классификации. Они высказаны для оправдания настоящего раздела.
Следует возлагать большие надежды на роль классификации в сравнительном анализе
решаемых проблем известными средствами математики и новыми средствами ИП.
Высказанное здесь утверждение также относится и к классификации уравнений,
которую рассмотрим в следующем разделе. Можно было бы в процессе анализа
классов проблем определить основной признак классификации. Он состоит в
выделении отдельных свойств логического уравнения и результата его решения.
Предварительное объяснение алгоритма решения проблем полезно как с точки зрения
понимания самого алгоритма, так и с точки зрения вычленения его свойств
практического применения. Вся совокупность изучаемых проблем подразделяется на 7
классов. Они перечислены ниже. Некоторые классы проблем совпадают с классами
вопросов, представленными в [Чень83 (гл. 11)].
Класс 1. Проблема доказательства истинности - этот класс запросов (проблем)
направлен на установление истинности высказывания в запросе на основе имеющихся
знаний, или совокупность проблем, которые требуют ответа «ДА» или «НЕТ».
Утверждение, представляющее вопрос, запрос, проблему, в математике именуют
гипотезой, которая может стать теоремой, если утверждение будет доказано.
Сущность решения такой проблемы состоит в построении доказательства теоремы
(установление гипотезы). Если говорить прагматически, то такие проблемы
именуются установлением факта правильности (или истинности) утверждения.
Иллюстрацией из математики может служить формула:
A & (A => B) => B
Знанием являются высказывания А и A => B. Запросом является утверждение: «Верна
ли данная формула В?». Представленная здесь формула напоминает правило
дедукции. Можно условно проблему именовать синтезом категоричного ответа.
Класс 2. Проблема поиска условий истинности - этот класс запросов
направлен на установление логических условий, при которых исходное высказывание
становится или будет истинным. Этот класс проблем собирает все вопросы или
запросы для синтеза новых фактов или синтеза теоремы, если выражаться языком
математики. Построение теоремы необходимо для установления условий, при которых
данная формула становится истинной (или ложной). Формально дело можно
представить так. Имеется формула Ф, для которой надо определить условия С1, С2, ...,
Ск такие, что следующая формула будет истинной:
С1&С2&...&Ск => Ф
Она представляет новую теорему. Этот класс проблем является самым емким,
большинство запросов относится к этому классу.
Класс 3. Проблема синтеза понятий - этот класс запросов направлен на
формирование характеристик или имени понятия на основе имеющегося знания.
Например, распознавание образов, речи, анализ сцен составляют совокупность
проблем, которая связана с формированием понятия по имеющимся фактам или
утверждениям о фактах. В результате формируется логическая формула, с помощью
которой можно однозначно или с некоторой заданной «точностью» определить:
является ли фактический экземпляр искомым понятием или он относится к другому
понятию. Например, даны факты А1, В1,...,Аn, Вк, по ним выделяются два понятия А
и В. Имеется данный факт С, требуется определить относится ли С к понятию А или к
понятию В. В качестве решения синтезируется логическая формула Ф, значение
которой Ф(С) определяет принадлежность С к классу А или к классу В. Если Ф(С) =
истина, то С относится к классу А, иначе - к классу В. Условно проблемы именуются
синтезом понятий. Класс таких проблем ставит конкретные задачи определения
признаков, по которым распознаются экземпляры объектов и которые получаются в
результате обучения известным образцам.
Класс 4. Проблема информационного поиска - это класс запросов
пользователя направлен на поиск дополнительной информации о предмете, явлении
или процессе на основе имеющихся данных и знаний в базах. Например,
использование СУБД, СУБЗ, машинного перевода, понимания естественного языка.
Этот класс представляет собой совокупность проблем поиска информации по смыслу
с заданными свойствами. Математически проблемы такого сорта можно представить
так. Имеется собрание взаимосвязанных данных (таблица или БД), которые могут
выражаться как P(Ai, Bi,...,Ei) с предикатом связи Р. Практически это значит, что
имеется, например, таблица, которую объявляем предикатом Р таким, что если данная
запись [Ai, Bi,...,Ei] содержится в таблице, то Р принимает значение истины, в
противном случае Р - ложь. Требуется определить тот набор данных X, Y, который
обладает признаками Ai,Bi,...,Ei. Формально проблема записывается так:
n
\/ (& P(Ai,Bi,...,Ei) => P(Ai,...,X,...,Y,...,Ei)).
X, Y i=1
Слева от следования перечислены все строчки таблицы, а справа - указан запрос на
поиск значений искомых X, Y, в контексте известных Ai,...,Ei (n – размер таблицы). В
качестве ответов должны быть определены значения X, Y, которые устанавливают
представление запрашиваемого знания. Такие проблемы именуются информационносправочными. С такими проблемами можно связать табличные исчисления. Процесс
поиска можно усложнить заданием логических связей для известных данных и
неизвестных величин. Другими словами, предикат Р может быть задан явно
аналитически.
Класс 5. Проблема синтеза плана - этот класс запросов направлен на
построение пути решения конкретной проблемы по исходным знаниям в базе и от
пользователя до получения полного ее решения. Например, поиск рассуждений,
графиков работ, схем программ и др. Этот класс представляет совокупность проблем
построения дерева для вывода некоторого вопроса или запроса по правилам
пользователя. Маршруты в дереве вывода представляют ответы на поставленные
вопросы или запросы. Практическая формулировка проблем может быть определена
как синтез цепи рассуждений. Здесь самым важным обстоятельством является
формулировка правил вывода и получения цепочки имен правил в последовательности
их применения.
Математическая формулировка может быть пояснена на примере переправы
через реку миссионеров и людоедов [Осуга89]. Статья не приводится здесь. В ней
используются обозначения состояния: S(X, Y, E), где X - число миссионеров на левом
берегу, Y - число людоедов на левом берегу, действие: M = (U, V, K), где U - число
миссионеров в лодке, V - число людоедов в лодке, и K - направление движения лодки
{L, R}. Исходное утверждение: S(3, 3, L) есть функция SL(3, 3) и конечное состояние:
S(0, 0, R) есть функция SR(0, 0). Условия допустимости состояний определяется
выражением: not((X < Y) & (X <> 0) \/ (X > Y) & (X <> 3)). Запись программы на ЯПП
будет выглядеть так:
раздел типа
~Т~ = (0, 1, 2,);
раздел понятий
~ТТ~: таблица "PathOfBoat"
~x~, ~y~: целые;
~i~, ~j~ : T;
~k~ : символьный;
конец таблицы.
~SL~: функция(~X~, ~Y~ : T): логическая = (если X + Y = 0, то стоп
существуют ~i~, ~j~: T(i + j < 3 & i + j <> 0 &
not(((X < Y) & (X <> 0) \/ (X > Y) & (X <> 3)) & SR(X - i, Y - j);^
добавить к(TT, [X, Y, i, j, "R"]));
~SR~: функция(~X~, ~Y~ : T): логическая = (если X + Y = 0, то стоп;^
существуют ~i~, ~j~: T (i + j < 3 & i + j <> 0 &
not((X < Y) & (X <> 0) \/ (X > Y) & (X <> 3)) & SL(X - i, Y - j);^
добавить к(TT, [X, Y, i, j, "L"]));
раздел запроса ~проблема миссионеров и людоедов~: SL(3, 3) & SR(0, 0).
конец.
Комментарий. Программа начинает работу с данными X = 3, Y = 3 на левом берегу и
завершает на том же берегу с X = 0, Y = 0. Функции состояния рекурсивны взаимно,
так как необходим переход в рассмотрении с одного берега на другой. Функции SL и
SR имитируют применение правил построения пути в графе. Результат - план перевоза
миссионеров и людоедов - будет находиться в таблице ТТ с пятью колонками X, Y и i,
j и k. Заметим, что
(1) функция (предикат) может играть роль оператора, если она принимает
логические значения;
(2) прямая или косвенная рекурсия функции требует предварительного
объявления, чтобы термин не попал в разряд "не описанных" (пока это не
реализовано);
(3) квантор "существует" должен реализовываться с полным перебором
значений связной величины, иначе решений будет неправильным.
Класс 6. Проблема синтеза алгоритма - этот класс запросов направлен на
построение алгоритмов по исходным знаниям в базе и от пользователя в запросе при
неизвестных исходных данных. Этот класс представляет совокупность проблем
построения планов действий (построение или синтез алгоритмов и программ).
Формально проблема может быть представлена логическим уравнением (уже
рассмотренным ранее), сформулированным в работах З. Манна и Р. Уолдингера:
для X (A(X) => существует Y (B(X, Y)))
или
существует Y (для X (B(X, Y)))
где X - заданная переменная предметной области (скаляр, вектор, функция и др.),
Y - искомая переменная (скаляр, вектор, функция и др. независимо от типа X),
A - предикат условия, накладываемого на X,
B - запрос, включающий или не включающий KB.
Неформально задача формулируется так: для исходных данных X, удовлетворяющими
условию или требованию A, найти альтернативные Y, удовлетворяющими условию
или требованию к связи с X, а именно - B(X, Y). Результатом решения задачи является
функция (или альтернативный набор функций в общем случае) Y = F(X) такой, что для
набора значений Х, для которого верно A(X), выполняется условие связи с Х - B(X,
F(X)). Здесь F - искомый алгоритм. Ответ можно интерпретировать и так: либо X не
удовлетворяет условию A, либо Y = F(X). Существенно заметить, что таких равенств
(альтернативных алгоритмов или программ) может быть несколько (ни одного, одно,
два и т.д.), все они будут зависеть от исходного значения Х. Следует заметить, что
формулировка З. Манна и Р. Уолдингера является частным случаем. Ее можно
обобщить формально так, как это сделано в записи второй строчки. Условие A(X)
спрятано в B, но оно обязательно присутствует в расшифровке В. Именно такие
формулировки и рассматриваются всюду.
Класс 7. Проблема информационного синтеза структур и систем - этот класс
запросов направлен на конструирование систем на основе исходных знаний в базе и от
пользователя в запросе при неизвестных функциях. Например, построение планов
обучения или систем моделирования. Этот класс представляет совокупность проблем
информационного конструирования системы (в самом общем смысле), которая
удовлетворяет заданным требованиям. Формальная постановка проблемы имеет вид:
существует F такая, что G(.., F(..),..).
Здесь G - критерий отбора конкретной системы с заданными свойствами из множества
систем F. Таких формулировок может быть бесконечное число. Важно отметить, что
искомыми являются функции в общем понимании, которые представляют некоторые
альтернативные структуры искомой системы. Конечно, условно проблемы именуются
информационный синтез систем.
Можно было в процессе анализа классов проблем определить основной признак
классификации. Он состоит формально в выделении отдельных свойств логического
уравнения и результата решения логических уравнений. Этот вопрос рассматривается
в следующей главе. Классификация проблем может быть идентичной классификации
логических уравнений. В предлагаемом случае признак соответствует семимерной
классификации знаний и процессов их обработки.
3.5. Классификация уравнений
Причины классификации были пояснены выше. Даваемая ниже классификация
уравнений менее строгая, она по возможности охватывает большую часть
практических применений, описываемых логическими уравнениями. Каждая группа
(кластер) уравнений (каждый класс уравнений) формулируется вместе с признаком
классификации.
Кластер 1. Классификация определяется составом используемых операций,
свойствами проблемной области. Здесь выделяются логические уравнения такого
сорта (заимствуется из математики):
- чистые логические уравнения (с логическими величинами и операциями);
- вычисление значений по формуле;
- вычисление неравенств;
- линейные алгебраические уравнения;
- трансцендентные уравнения;
- дифференциальные уравнения;
- интегральные уравнения;
- операторные уравнения;
- функциональные уравнения.
В такой классификации не выделены смешанные сорта, например, интегродифференциальные уравнения (парные сочетания, тройные сочетания различных
сортов уравнений).
Кластер 2. Классификация определяется размерностью данных, свойствами
предметной области. Здесь выделяются следующие группы логических уравнений:
- скалярные уравнения;
- векторные уравнения;
- матричные уравнения;
- по числу выражений, входящих в логическое уравнение;
- по числу используемых типов данных;
- по числу используемых переменных;
- по числу используемых операций.
Как и в предыдущей классификации, здесь не выделены смешанные сорта уравнений,
например матрично-скалярные уравнения.
Кластер 3. Классификация определяется сортом исчисления, фундаментальными
свойствами логик. Здесь выделяются следующие группы логических уравнений,
которые состоят из функций заданного исчисления:
- исчисление высказываний;
- исчисление высказываний с равенством;
- арифметические исчисления;
- открытое исчисление предикатов первого порядка;
- закрытое исчисление предикатов первого порядка;
- исчисление предикатов высокого порядка.
Почти такая же классификация уже приводилась выше. Ее можно реализовать,
опираясь на все логические операции.
Кластер 4. Классификация определяется видами знания. Эти сорта уравнения
связаны со способами представления знаний:
- лингвосемиотические логические уравнения;
- семантические логические уравнения;
- концептуальные логические уравнения;
- фактографические логические уравнения;
- теоретические логические уравнения;
- алгоритмические логические уравнения;
- кибернетические логические уравнения.
Об этом говорилось много ранее в т.1.
Кластер 5. Классификация уравнений определяется типами обрабатываемых
данных: символьные данные, числовые данные, графические данные, предметные
данные и др. или различные смеси данных. В языке Лейбниц определены 35 типов
данных, следовательно, таков объем кластера для Интеллсист.
Кластер 6. Классификация уравнений определяется применениями в решении
проблем. Сюда можно отнести, например:
- информационные уравнения;
- диагностические уравнения;
-
вычислительные уравнения;
аналитические уравнения,
теоретические уравнения,
алгоритмические уравнения,
схемо-технологические уравнения.
Кластер 7. Классификация уравнений определяется сортами проблем, которые
представлены в предыдущем разделе главы.
Условное подразделение логических уравнений по кластерам не принимается во
внимание при производстве логического вывода его решения. Поэтому будем иногда
рассматривать практически три сорта логических уравнений: высказывательные,
предикатные и функциональные. Все указанные уравнения из классификации будем
укладывать в эти три сорта. Только с формальной точки зрения имеет смысл
рассматривать сорта высказываний. С точки зрения пользователя все высказывания
имеют один цвет. Высказывание - это грамматически правильная текстовая фиксация
данных (в общем смысле слова) о самих предметах, явлениях или процессах и их
свойств, их наличие или отсутствие, их состояние или положение в пространстве или
во времени.
3.6. Высказывательные и предикатные уравнения
Такие уравнения пользуются огромными практическими запросами.
3.6.1. Смысл высказываний. Относительно высказывания всегда известно:
либо оно ложно, либо оно истинно. Эти значения и определяют смысл высказывания.
Если высказывание имеет модальную оценку, то ее необходимо указать в тексте явно,
тогда высказывание вместе с модальностью должно иметь некоторые возможности,
формально оцениваемые как истинные (или ложные). Вообще же будем считать, что
третьего варианта состояния для высказывания не существует. Однако, когда будем
определять конечное состояние высказывания при возникновении ошибок, тогда оно
будет находиться в состоянии неопределенности. Это означает, что пока будем
рассматривать только такие высказывания, которые моделируются двузначной
логикой. Это не означает, что не будем рассматривать многозначные логики (как уже
было подмечено косвенно). И в этом случае высказывания будут истинными,
например, "возможно дождь идет" - истинное высказывание. О таких логиках будет
сказано ниже.
Высказывания условно будем подразделять на сорта собственные и
несобственные высказывания. Собственные высказывания - это предложения
естественного языка, точно указывающие на то, что они истинны или что они ложны.
Такие константные высказывания известны под именами ложь или истина. Истинные
высказывания всегда истинны, а ложные высказывания всегда ложны. Имена
константных высказываний являют примеры собственных высказываний. Если
рассматривать целые числа и обычные операции отношения, то истинными будут
высказывания типа 3 > 1 и 65 >= 0, а ложными будут 28 < 19 или 7 = 49, но это не
собственные высказывания. Такие высказывания могут быть построены для всех
операций с известными свойствами и алгоритмами получения значений.
Несобственными высказываниями являются имена или наименования высказываний,
относительно которых нельзя сказать являются они истинными или ложными в
зависимости от контекста применения. (Многозначные логики можно представить в
двузначной логике некоторыми выражениями.) К несобственным высказываниям
относятся логические выражения языка Лейбниц. Имена и наименования, которые
представляют несобственные высказывания, будем называть элементарными
высказываниями.
Критерием того, что рассматриваются высказывания, является:
- высказывание является чем-то целым, не расщепляемым текстом; имеющим
законченную мысль,
- высказывание построено грамматически верно; в соответствие с семантической
грамматикой ЯПП,
- любое высказывание не может быть (ни при каких условиях) одновременно
истинным и ложным (нужно иметь в виду, что условий может быть недостаточно
для выяснения истинности исходного высказывания); чаще всего предполагается,
что высказывание является истинным,
- высказывание может входить в сложные высказывания и это не изменяет его
сущности;
- высказывание может отсылать к более простым, составляющим его высказываниям.
Высказывания предназначены для выражения (или представления) знаний. Это
главное и неотъемлемое назначение высказываний, фактов, утверждений о фактах,
логических выражений или формул.
Под логикой высказываний понимается совокупность процедур или действий
построения и анализа высказываний. Будем рассматривать логику высказываний для
постепенного преобразования сложных высказываний в простые, все более и более
понятные, приближающие к истине и к пониманию исходного высказывания.
Совокупность процедур и действий должна быть известной заведомо до применения
каких-либо рассмотрений высказывательных предложений. Прежде всего ИЛ связана
с решением логических уравнений. Поэтому результатом процедур или действий
должен быть точный и конкретный набор простых высказываний относительно
неизвестных, входящих в исходное логическое уравнение.
Дадим определение высказывательного уравнения. Высказывательным
уравнением (ВУ) называется логическое уравнение, в котором неизвестными являются
несобственные высказывания (имена). ВУ составляются из имен или наименований
высказываний и логических операций. Решение ВУ - это наборы значений
элементарных высказываний, при которых (после подстановки которых) выражение,
составляющее уравнение, принимает значение истина. Всего имеется 4 операции над
одним высказыванием и 16 операций над любыми двумя высказываниями. Эти
операции являются предопределенными, они задаются, например, таблично или
аксиоматически. Остальные операции могут быть определены составителем
уравнения.
В качестве примера можно привести уравнение А & В с неизвестными А и В.
Одним и единственным решением этого уравнения являются значения А=истина и
В=истина. Другой пример использует новое обозначение известной операции
логического умножения:
&i Кi & (В => D).
Это уравнение называется уравнением диагностики для D по анкете В. Первый знак в
уравнении расшифровывается как групповое логическое произведение:
&i Кi = К1&К2&...&Кn.
Здесь также получается единственное функциональное решение D := &i Кi & В.
Заметим, что исходное соотношение можно представить еще следующим образом:
для каждого i (Кi) & (В => D).
-
-
-
Обычно используются следующие свойства высказываний:
причины, из-за которых то или иное элементарное высказывание принимает
истинностное значение, неизвестны; такие высказывания являются неизвестными в
составе ВУ;
значение сложного логического выражения может определяться с помощью
таблицы истинности для каждой логической операции; вычисление значения
логического выражения требует экспоненциального времени, оно возможно только
при незначительном числе переменных в выражении;
высказывания появляются из фраз естественного языка или ЯПП, при этом
операции и операнды должны определяться специалистами до анализа
высказывания на ВМ.
ВУ возникают в самых разнообразных случаях. Признаками таких случаев
является наличие в выражениях несобственных элементарных высказываний. Особый
случай - использование в ВУ сложных неизвестных высказываний (компоненты,
агрегаты, предикатная запись и др.)
3.6.2. Бинарные операции. Имеется всего 16 бинарных операций. Будем
рассматривать только 10 из них, как наиболее полезных при построении
высказываний. С такой постановкой дела согласится любой. Все бинарные операции
даны в таблице:
А В 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Л
Л
И
И
Л
И
Л
И
Л
Л
Л
Л
Л
Л
Л
И
Л
Л
И
Л
Л
Л
И
И
Л
И
Л
Л
Л
И
Л
И
Л
И
И
Л
Л
И
И
И
И
Л
Л
Л
И
Л
Л
И
И
Л
И
Л
И
Л
И
И
И
И
Л
Л
И
И
Л
И
И
И
И
Л
И
И
И
И
В таблице указаны 2 операнда А и В. Для сокращения объема таблицы использованы
обозначения Л для ложь, а И для истина. Поделим все бинарные операции,
отмеченные в таблице номерами, на две группы. Одна группа - неиспользуемые
операции в силу их «принадлежности» к одноместным, вторая - используемые в
формальном языке Лейбниц. Первая группа (номер операции – смысл операции)
состоит из 6 операций:
1 (1) - тождественно ложная операция Л, она может быть задана словом ложь,
4 (2) - тождественно левый операнд операции,
6 (3) - тождественно правый операнд операции,
11 (4) - отрицание тождественно правого операнда операции,
13 (5) - отрицание тождественно левого операнда операции.
16 (6) - тождественно истинная операция И, она может быть задана словом
истина (отрицание тождественно ложной операции).
Вторая группа (номер операции - смысл операции) состоит из 10 операций:
2 (1) - логическое умножение или одновременность (&),
3 (2) - отрицание логической операции следования (not (А => В)) или отношение
больше (А < В),
5 (3) - отрицание логической операции обратного следования (not (А << В)) или
отношение меньше (А > В),
7 (4) - отрицание логической эквивалентности или неодинаковости (not (А = В))
или (А xor В),
8 (5) - логическая операция сложения или альтернативы (А or В),
9 (6) - отрицание логического сложения, или одновременность отрицаний
операндов (not (A or В)), или штрих Шеффера,
10 (7) - операции эквивалентности (А = В), или отношение равно, или операция
одинаковости,
12 (8) - логическая операция обратного следования (А << В) или отношение
больше или равно (А <= В),
14 (9) - логическая операция следования (А => В) или отношение меньше или
равно (А >= В),
15 (10) - отрицание логического умножения (not (А & В)) или альтернативы
отрицаний операндов,
Заметим еще раз, что операции 1 и 16 будем использовать в форме логических
констант ложь и истина, они определяют логические константы. Остальные операции
первой группы определяют одноместные операции. Заметим также, что все 16
операций применимы и в многозначной логике, в которой число операций велико, но
данные классические операции будут в ней использованы как часть встроенных
операций, а остальные могут вводиться самим пользователем для математического
исследования.
Все 10 бинарных операции второй группы будем использовать при построении
правил вывода решений логических уравнений. Если возникнет необходимость в
использовании других четырех, то все результаты (например, правила вывода) можно
легко построить, поскольку эти шесть операции выражаются через 10 принятых к
рассмотрению операций. Сказанное обеспечивает нам разгрузку материала от лишних,
в общем бесполезных, затрат внимания. В языке Лейбниц введено всего восемь
обозначений бинарных логических операций (2, 3, 5, 7, 8, 10, 12, 14). Их обозначения
указаны в перечислении в скобках. Не вводится других специальных обозначений для
операций, являющихся отрицаниями (9 и 15). Данные здесь соглашения будут
полезны, а их важность и получаемые при этом выгоды будут видны в дальнейшем.
Логические уравнения могут содержать величины, типы которых являются
перечислимыми. Решение таких уравнений является предметом специального
рассмотрения. Правила вывода решения уравнений в многозначных логиках,
использующих указанные операции, могут быть построены по аналогии с
построением правил для двузначной логики. Однако приняты ограничения, связанные
с интерпретацией логических операций в многозначных логиках. Аналогичные
рассуждения передаются читателю.
3.6.3. Поиск смысла высказываний. Поиск смысла высказывания важен для
понимания логического уравнения. Под поиском смысла высказывания понимается
процедура определения (вычисления или вывода) условия, при котором высказывание
истинно или ложно. Условиями для ВУ являются комплексы (альтернативы
совместных фактов) значений элементарных высказываний или неизвестных ВУ.
Имеется два известных метода выявления смысла высказывания. Один метод
состоит в получении (вычислении) значений высказывания, представленного
логическим выражением, при всевозможных значениях входящих в него
элементарных высказываний (переменных). Высказывание принимает одно из двух
возможных значений (ложь или истина) при полном переборе всех комбинаций
переменных. Экспоненциальная сложность этого метода известна. Другой метод
состоит в выводе входящих в высказывание переменных, при которых высказывание
принимает определенное значение. Первый метод связан с построением таблицы
истинности, а второй - с применением правил вывода. Сложность второго метода
зависит от самого высказывания. Если высказывание - это тавтология (всегда
истинное высказывание), то сложность такого вывода может быть почти такой же, как
и сложность вычисления таблицы истинности. Правда, это не совсем так, поскольку
применение правил вывода тесно переплетается с правилами сокращения
(оптимизации) записей промежуточных результатов.
Несмотря на указанные трудности, будем применять второй метод установления
истинности высказывания. Первый метод известен и эффективен при решении многих
задач, но при малом числе переменных. Второй метод эффективен для целей решения
ВУ. При этом возможные исходы (получение решения ВУ) будем классифицировать
на 4 группы. ВУ может и не иметь решения в случае обнаруживаемых противоречий это первая группа. ВУ может иметь одно единственное решение - это вторая группа.
ВУ может иметь несколько решений - это третья группа. Наконец, ВУ может иметь в
качестве решения все комбинации значений переменных в случае теоремы - это
четвертая группа. Получение последней группы может иметь экспоненциальную
трудоемкость, если не применять методы оптимизации промежуточных записей..
Остальные логические уравнения (сверх высказывательных) называются
предикатными, которые, вообще говоря, также являются по своим свойствам и
применениям высказывательными. Отличительными чертами предикатного уравнения
является вхождение в них предикатных (вообще функциональных) имен и операций с
этими именами. Все операции указаны в таблице, по ней легко обнаружить операции,
которые уже рассмотрены в связи с высказывательными уравнениями, и те
(остальные) операции, которые входят в предикатные уравнения. Свойства всех
операций заданы аксиоматически в гл.5.
Предикаты могут присутствовать и в ВУ в качестве неопределенных или
почти определенных утверждений. В предикатных уравнениях предикат играет
существенную роль. В предикатных уравнениях используются указанные выше
операции и еще некоторые логические операции. Рассмотрим предварительно
несколько примеров ВУ, включающих предикаты и дополнительные логические
операции.
3.6.4. Примеры высказываний. Проблемы применения всегда были оценкой
важности и полезности рассматриваемой теории. Здесь рассмотрим несколько
наиболее интересных применений теории для решения известных задач, но теми
новыми методами, которые приведены в томе. В каждом примере необходимо
определить независимые переменные, интерпретацию знания, форму запроса или
вопроса и смысл решения задачи.
Задача 1. Построение тестов электронных схем. Это практически интересная
задача. Она сводится к решению уравнений следующего вида:
&i Кi => Ф
или
&i Кi & Ф,
где Кi = (Уi = Fi(X)) - логическое описание электронной схемы без памяти с
входами X и выходами У, Ф - логическое условие контроля схемы. В качестве
примера можно рассмотреть такое условие контроля: определить зависит или не
зависит выход схемы от данной конкретной переменной Хj. Условие выражается
логически следующей зависимостью:
Ф = (Fi(not Xj) = not Fi(Xj)).
Здесь Ф - логическая производная по переменной Xj.
Таким образом, задача формализует поиск тестов электронных схем. Решение
ВУ определит наборы комплексов, которые и будут тестовыми наборами. Логическое
условие Ф примет другой вид, если поставить задачу поиска парных ошибок в схеме
или поиск только замыкания. Чуть сложнее представляется алгоритм построения
наборов тестов для схем с памятью.
Задача 2. Машинный детектив. Исходное знание в задаче - это все сообщения
детектива о ситуации и проверках гипотез. Вопрос формируется относительно того,
кто же является преступником. Формально это можно представить так:
&i Кi => A or Б or В or ... or Ж,
где Кi - фразы детектива по результатам расследования, А - синоним утверждения о
том, что Абрам является преступником, Б - Борис - преступник, В - Владлен преступник и Ж - Жора - преступник.
Решение этого уравнения должно дать ответ, содержащийся в том, какая
переменная из А, Б, В или Ж имеет значение истины. Если ответ не однозначен
(нескольким переменным присвоено значение истина) или все переменные имеют
значения ложь, то система должна выдать подсказку относительно того, какой
информации недостает для более точного ответа.
Задача 3. Проверка гипотез детектива. Задача является продолжением
предыдущей задачи. Ее формулировка такова:
&i Кi => А,
где А- конкретное предположение относительно преступника А, Ki имеет тот же
смысл, что в задаче 2. Решение А= истина не является обязательным для вывода о том,
что Абрам является преступником. Это дает информацию только для подтверждения
гипотезы детектива. Решение другого сорта А = ложь дает основание для снятия
обвинения с Абрама. Другие совместные новые факты послужат основой для
формулировки вопросов к сообщениям детектива.
Задача 4. Отладка программ. Исходными знаниями являются фразы
специалистов (программистов), которые знают симптоматику программ и
«неисправности» программ, а также логические связи между симптоматикой и
неисправностями в программах. Эта задача во многом аналогична первой задаче, но в
качестве объекта исследования использована программа. Формализация задачи
совершенно аналогична формализации в задаче 1.
3.6.5. Некоторые проблемы для исследований. Данный перечень задач
является репрезентативным, следовательно, неполным. Задач на решение логических
ВУ весьма много. Было бы бесполезным занятием перечислять хотя бы
приблизительно весь перечень задач. Частные задачи не раскрывают глобальных
проблем, которые перечисляются ниже. Проблем таких много, но среди них укажем
только следующие.
Задача А. Вся теория была основана на представлении логических выражений
нормальными дизъюнктивными формами. В связи с этим рассматривалось некоторое
число альтернативных конъюнктивных комплексов. По аналогии с этим можно
рассмотреть нормальные конъюнктивные формы. Тогда необходимо будет
рассматривать некоторое число конъюнкций альтернативных комплексов альтернатив.
Комплекс альтернатив - это дизъюнкт. Решением уравнения будет конъюнкция
комплексов из дизъюнктов. Результаты переноса будут симметричны результатам,
изложенным выше. Также аналогично этому можно рассматривать в основе
логическую операцию штрих Шеффера или операцию следования. В таких случаях
можно будет наблюдать некоторые семантические различия между разнообразными
теориями. Однако это будет представлять только развлекательный интерес. С
формальной точки зрения новых знаний едва ли можно обнаружить.
Задача Б. Здесь нет стремления к построению метаматематики оснований
информатики. Целесообразным были бы результаты доказательства теорем,
устанавливающих существование решения логического уравнения, оценку сложности
вывода решений и других теорем, свойственных метаматематике.
Задача В. Важной по сравнению с задачей А является задача распространения
методики построения теории решения ЛУ для многозначной логики. Здесь могут быть
получены не только семантически новые результаты, но и новые синтаксические
результаты. Только один пример трехзначной логики указывает на продуктивность
рассмотрения многозначных логик. Частично такая проблема разрешается в гл. 5.
Задача Г. Вся изложенная теория необходимо должна быть распространена на
исчисления предикатов любого порядка. Эту задачу будем решать во всех
последующих главах. Сущность данной задачи состоит не только в том, чтобы
распространить все разделы исчисления высказывательных уравнений, но и в том,
чтобы эти результаты полностью использовать без исключения какого-либо раздела.
3.7. Функциональные уравнения
Наиболее сложными для решения являются функциональные уравнения. Под
функциональным уравнением понимается логическое уравнения, содержащее в
качестве неизвестных величины или функции как свободные переменные и зависящие
от остальных параметров уравнения. Рассмотрим только примеры ФУ, один метод
решения и подходящие решения приводимых примеров. Более того, ограничимся
уровнем исчисления высказываний и операций теории множеств. Связные
переменные-функции обычно должны рассматриваться в предикатных уравнениях
некоторого порядка.
Пусть через X обозначены неизвестные величины уравнения. Тогда простейшим
ФУ в исчислении высказываний будет уравнение вида X, решение которого есть X :=
истина. Более сложное уравнение вида A\/X, имеет решение X := not A. Аналогичные
ФУ и их решения представлены ниже:
уравнение not A \/ X имеет решение X := A;
уравнение A \/ not X имеет решение X := A;
уравнение not A \/ not X имеет решение X := not A.
Пусть через D обозначается неизвестный диагноз при наличии запроса A и БЗ из
Ki для некоторых i. Тогда проблема диагностики записывается логическим
уравнением (оно есть и ФУ) следующего вида: для каждого i (Ki) => (A => D) с
решением-функцией D := для каждого i (Ki) & A.
Относительно решения некоторых ФУ ничего нельзя сказать, а относительно
других ФУ можно только охарактеризовать решение. Например, относительно
логического уравнения A & X можно сказать, что оно не может иметь решение вида
X:=not A. Как зависит X от A и каким образом можно получить эту зависимость
ответить при данных знаниях невозможно. Если относительно уравнения или X будут
известны дополнительные сведения, то решение может уточниться.
Наряду с уравнениями подобного сорта можно рассматривать системы
уравнений, содержащих некоторое число переменных, значения которых надо
определить как функции параметров ФУ. Область ФУ мало изучена. ФУ здесь
рассмотрены постановочно. Специальные исследования ФУ дадут значительно более
точные сведения о свойствах решений ФУ. Интеллсист ориентирована на решение
ФУ.
Рассмотрим пример функционального уравнения из [Ледли61]. Знания и запрос в
принятых в статье обозначениях записываются так:
K1 := d2 => s1;
K2 := d1 & not d2 => s2;
K3 := not d1 & d2 => not s2;
K4 := s1 \/ s2 => d1 \/ d2;
KB := &iKi; запись знаний в БЗ с элементами:
KB => (G => f), запись логического уравнения,
f := KB & G, запись его решения относительно f.
Решение находится следующим образом:
KB := (not d2 \/ s1) & (not d1 \/ d2 \/ s2) &
(d1 \/ not d2 \/ not s2) & (not s1 & not s2 \/ d1 \/ d2);
KB := d1 & d2 & s1 \/ d1 & s1 & s2 \/ d1 & not d2 & s2 \/
not d1 & not d2 & not s1 & not d2 \/ d2 & s1 & not s2;
При анкетном опросе выяснены симптомы:
G := not s1 & s2;
Тогда решение примет вид (с одновременной выдачей анкеты):
f := d1 & not d2 & G;
Для логических ФУ рассмотрим один простой метод. Он состоит в применении
МЛВ и получении альтернатив совместных фактов, каждый из которых имеет вид
атомарной формулы или вызова функции, среди которых имеются неизвестные.
Рассмотрим все неизвестные и сопоставим их с выражениями, которые не содержат
неизвестных. Воспользуемся законом исключенного третьего А \/ not А. Пусть Х обозначение неизвестной величины или функции, тогда можно получить систему
равенств для Х. Решением ФУ будет система равенств вида Х = А. Система равенств
образуется при всевозможных сопоставлениях. После подстановки равенств система
сократится. Таким образом рассмотрим все альтернативы и построим системы
равенств. Для альтернатив построим системы равенств вида Х = not А, выражения в
соответствии с законом исключенного третьего, причем Х берется из одной
совокупности, а выражение А - из другой. Совокупность альтернативных систем
равенств является решением исходного ФУ.
ФУ распространены в теории множеств. Пусть * обозначает произведение
множеств, + - сложение множеств, - (минус) - дополнение некоторого множества, <<
(меньше или равно) - включение множеств, = (равно) - равенство множеств, null пустое множество, Х - неизвестное множество, остальные буквы обозначают
известные множества. ФУ являются равенствами или неравенствами. Следующие
четыре системы равенств и неравенств образуют ФУ для поиска Х.
Пример 1.
А * Х = В,
А + Х = С,
В << А << С
Пример 2.
А \ Х = В,
Х \ А = С,
В << А,
А * С = null,
Пример 3.
А \ Х = В,
А + Х = С,
В << А << С
Пример 4.
А * Х = null,
В * (- Х) = null,
В << - А,
В << Х << -А
ФУ и их решения важны для построения определений понятий. Их рассмотрение
продвигает проблему, которая числится одной из главных в классификации проблем,
решаемых Интеллсист.
Знания на плечи не давят,
знания никому не в тягость.
Глава 4. Решение логических уравнений
Для введения в теорию решения логических уравнений необходимо методически
рассмотреть для наглядности способы и примеры решения уравнений различных
сортов. Рассмотрим последовательно высказывательные и более сложные уравнения.
Общая постановка проблемы о решении логического уравнения имеет следующий вид
искомого факта:
<логическое уравнение, истина>.
Ставится задача поиска истины. (Можно поставить задачу поиска лжи.) Однако в
Интеллсист взят именно такой факт - логическое уравнение должно быть истинным.
Такая постановка соответствует пониманию уравнения, смысла записи факта и
отображению понятия знание как пары имени (подразумеваемое имя записи
уравнения) и логическое значение. Имя задано уравнением (утверждением,
выражением или формулой), а значение - логической константой истины. Ставится
задача логического вывода из этого факта новых фактов. Пустой по имени или
значению факт не имеет смысла, пустой факт не должен появиться ни при каких
условиях. Общее окончательное решение логического уравнения есть альтернативы
(дизъюнкции) комплексов (конъюнкций) совместных фактов.
Сразу же расширим поставленную задачу поиска новых фактов. Поскольку
указано, что решений столько, сколько имеется в альтернативном наборе совместных
фактов, то представляет интерес начальная интерпретация понятия альтернативных
решений. Сложность решения - это число шагов логического вывода, или число
применений правил логического вывода в единицу времени (число ЛИПСов). МЛВ и
МАВ в Интеллсист автоматически выводят число шагов и отображают их в качестве
статистического результата.
Единственное решение, состоящее из одного набора совместных фактов, обычно
принято в математике (доказательное единственное решение), переносится и в
информатику. Такое решение может получиться, но оно не является практически
обязательным. По факту получения одного решения можно судить о единственности
решения задачи (или о доказательстве единственности). Исследование единственности
решения уравнения важно в математике и на практике. Если без существенных затрат
можно получить доказательство единственности, то им надо воспользоваться для
контроля получаемых решений. Однако пользователю в подавляющем большинстве
недоступен математический аппарат доказательства единственности решения.
Интеллсист поможет ему в автоматическом решении этой проблемы. Следует
заметить, что практику не всегда удовлетворяет единственное решение в особенности
в том случае, когда решается уравнение с неполными знаниями.
Случай получения нескольких решений (доказательное альтернативное решение)
также принят в информатике. Этот случай говорит о том, что знаний недостаточно для
получения единственного решения, или для принятия окончательного решения,
например, отсутствует критерий отбора решений. Пользователю необходимо самому
решать дополнительную задачу выбора по сформулированному им критерию
окончательного решения или считать, что все решения могут использоваться в
практических целях. Последняя проблема важна при решении вариантов задачи или
для определения свойств задачи. Единственное решение все-таки может быть найдено
с помощью некоторого критерия отбора решения из числа полученных альтернатив.
В случае получения полного решения (этот случай соответствует доказательству
теоремы, или все может допускаться в качестве решения), или при выводе на печать
результата истина, новый факт состоит в правильности введенного в задании
утверждения. Полное решение означает, что любые наборы значений искомых
величин допустимы в качестве решения. Эта ситуация практически является весьма
полезной и не сравнима с проблемами доказательства теорем в математике (хотя
исходное утверждение доказано). Наконец, если получены решения в виде
альтернативного набора, то тем самым выведены условия того, что исходное
утверждение будет истинным только при этих условиях.
Последний общий случай - отсутствие решения - важен для оценки поставленной
задачи. Отсутствие решения говорит о том, что запрос противоречит БЗ или
встроенным знаниям Интеллсист. В этом случае необходимо внимательно изучить
постановку задачи и определить ее ошибочность (требуется новая или обновленная
формулировка задачи) или выявить неправильный выбор БЗ.
Имеются еще пять вариантов отрицательного исхода процесса решения задачи.
Первый вариант - индикация ошибки одного из 13 классов ошибок. Тогда их
необходимо устранить и повторить запуск Интеллсист по исправленному или
дополненному заданию. Вторым вариантом «человеческого решения» следует считать
отсутствия времени на ВМ, которое может наступить по двум причинам: нехватка
ресурсов ВМ (памяти или времени) для пользователя или для Интеллсист (необходима
покупка новой ВМ, дополнительного времени или новой версии Интеллсист). Этот
вариант решения является скорее техническим, и проблема так или иначе будет
разрешимой. Быстродействие Интеллсист оценивается в ЛИПСах и равно для слабых
моделей ВМ 500 - 2000 единиц (шагов применения правил логического вывода в
единицу времени [сек]). Чаще всего пользователю такого быстродействия вполне
достаточно. Но можно представить задания, для решения которых этого параметра
Интеллсист будет недостаточно. Третий вариант «решения» - нехватка памяти для БЗ
или задания. Выход из этой ситуации аналогичен: покупка новой ВМ, дополнительной
памяти или новой версии Интеллсист, а также деление задачи на подзадачи.
Четвертый вариант «решения» - сбой ВМ (или системного программного
обеспечения). Эта техническая трудность требует повторного запуска запроса или
тестирование и проверки оборудования ВМ с последующим устранением технических
неисправностей. Наконец, пятый вариант «решения» - нарушение технологии
взаимодействия с ВМ или Интеллсист. Следует еще раз заглянуть в руководства по
Интеллсист для проверки правильности и точности взаимодействия.
Решение любой проблемы может быть получено в полном соответствии с
объемом БЗ и знаний запроса. Уточнить решение можно только добавлением знания в
базе или в запросе. Универсального решателя проблем не существует, получение
точного решения любой проблемы невозможно одним решателем (например, с
помощью Интеллсист). Можно построить универсальную технологию построения
решателей заданий с возможностью пополнения знаний. Надо учитывать, что МЛВ и
МАВ содержат встроенные знания и встроенные правила вывода решений обобщенное хранилище знаний. Запрос содержит дополнительные (пользовательские)
знания и правила. Интеллсист является универсальным решателем заданий только при
наличии достаточного знания. Заметим, что любое задание имеет по крайней мере
одно одношаговое решение (оно само). Что такое неразрешимость логического
уравнения и имеется ли подобная ситуация? Неразрешимость логического уравнения это неприменимость ни одного из правил логического вывода (шестой вариант исхода
решения задачи). Оказывается, что неважно имеется ли решение или его нет.
Получение окончательного решения соответствует полноте знаний. Всегда наступает
момент неприменимости правил вывода, тогда считается, что решение получено. Сами
МЛВ и МАВ определяют разрешимость логического уравнения. Если решение
неудовлетворительно, то необходимо позаботиться о пополнении БЗ или знаний в
запросе. Практически может встретиться уникальный случай: исходный запрос,
представленный уравнением, привел к результату, который совпадает с исходным
уравнением. Нужны знания! Всем этим вопросам посвящена настоящая глава.
ЛЮБАЯ ПРОБЛЕМА ИЛИ ЗАДАЧА - ЭЛЕМЕНТ ЯЗЫКА
ПРАВИЛЬНО ПОСТРОЕННЫХ ЛОГИЧЕСКИХ ФОРМУЛ.
4.1. Решение высказывательного уравнения
Высказывательное уравнение определяется как формула (или логическое
выражение), содержащая логические переменные и логические операции. Решение ВУ
получается в результате применения последовательных шагов преобразования
исходного уравнения в некоторый окончательный вид. Преобразование связано с
применением правил логического вывода, о которых будет сказано ниже. После
каждого применения очередного правила вывода получается уравнение, которое
будем именовать (как было определено выше) предрешением уравнения.
Предрешение, к которому невозможно применить ни одного правила логического
вывода (хранящегося в памяти Интеллсист или заданного пользователем), называется
итоговым решением исходного или заданного логического уравнения.
Последовательность предрешений образует логический вывод решения исходного
логического уравнения.
В результате рассмотрения ВУ должны получиться наборы значений
переменных (элементарных высказываний или фактов), при которых логическое
уравнение принимает значения истина. Число переменных в наборе должно быть не
больше числа неизвестных в уравнении. Еще раз рассмотрим все интересные случаи,
они в некотором смысле главные.
Первый случай: уравнение не имеет ни одного решения (в итоге ложь), как
решение уравнения, которое определяет глобальное противоречие типа A & not A.
Второй случай: уравнение имеет всевозможные решения (в итоге истина), как
для уравнения: А & B or not A & B or A & not B or not A & not B (теорема).
Третий случай: уравнение имеет одно решение. Пример такого уравнения имеет
вид: not (А or not B or C or not D). Таким одним решением является: А = ложь, В =
истина, С = ложь, D = истина или not А, В, not С, D.
Четвертый случай: уравнение имеет несколько решений. Пример такого
уравнения имеет вид: А or В, которое имеет три альтернативы (комплекса) решений:
А = истина, В = истина;
А = ложь, В = истина,
А = истина, В = ложь.
или
А, В;
not А, В;
А, not В.
Комплекс совместных фактов оформляется списком (перечисление через запятую),
альтернативы - перечнем (перечислением через точку с запятой), в конце результата
помещается точка.
Сразу отметим, что при построении решения могут возникнуть проблемы памяти
для хранения промежуточных данных и времени построения комплексов решений.
Необходимо позаботиться (указание для Интеллсист) об экономном расходовании, как
памяти, так и времени получения результата. Для достижения этих целей
используются правила логического вывода, которые оптимизируют задачу по всем
признакам или параметрам.
Интересен случай, когда уравнение имеет все решения. Под понятием «все
решения» имеется в виду полный перебор всех альтернатив комплексов значений
переменных, входящих в уравнение. Пример такого уравнения имеет вид: (А => (В =>
А)). Здесь приведена аксиома из МЛ. Ее значения при всех комбинациях переменных
есть истина. Для получения полного результата требуется память и время. В
частности, доказательство теорем исчисления высказываний приводит (как кажется на
первый взгляд) к экспоненциальной сложности по времени и месту представления
результата доказательства. Однако алгоритмы МЛВ и МАВ построены таким образом,
что экспоненциального роста памяти не получается из-за наличия алгоритмов
оптимизации представлений. Например, использование представлений о правиле
сечения может сократить объем промежуточных данных. Для этого воспользуемся
такой формулой: А & ~В = А. Знак ~ используется для обозначения переменной,
которая входит в уравнение следующим образом: ~В - это В или not В. Решением
уравнения являются альтернативные комплексы значений всех переменных уравнения
приводящие после подстановки в уравнение этих значений к значению истина. Таково
практическое определение решения уравнения.
Каждый шаг вывода решения образует новую форму исходного уравнения. В
математике существует проблема доказательства существования решения. Следует
подумать: дешевле или сложнее поиск решения по сравнению с доказательством
существования решения. С таких позиций Интеллсист выглядит привлекательнее по
сравнению с математическими приемами доказательства.
Вывод - то место в тексте, где вы устали думать.
Афоризм Матца
4.2. Правила вывода решения
Главная задача получения решения любого логического уравнения состоит в
постепенном сведении его к более простым формам. Как было обусловлено,
высказывания будем представлять в МЛВ и МАВ логическими выражениями языка
Лейбниц. В связи с правилами сведения будем рассматривать переменные (операнды)
и операции выражений. Сведение уравнений связывается с устранением
(элиминацией) констант, переменных и операций, входящих в выражение
(высказывание). Элиминация операций осуществляется преобразованием исходного
выражения к выражению другого вида, но при этом смысл исходного высказывания не
должен изменяться, а постепенно уточняется. В таких случаях говорят: без потери
знания. Под преобразованием понимается получение выражения-следствия из
выражения-посылки по правилам логического или алгебраического вывода.
Выражение-следствие сохраняет смысл выражения-посылки, таково условие,
накладываемое на все правила преобразований. Это значит, что выражение-следствие
сохраняет свое значение таким же, что и выражение-посылка при одинаковых
значениях входящих переменных или подвыражений. Вместе с преобразованием
операцией может элиминировать переменная, или она выразиться логической
константой. Например, выражение А or not А заменяется константой истина.
К решению логического уравнения приводит процедура последовательного
применения правил логического или алгебраического вывода решения. Каждое
применение правил связано с операцией или ее отрицанием. Очередная операция
выбирается по следующим признакам. Из исходного выражения строится дерево
(известными методами), которое и определяет очередную операцию по вершине или
фрагменту дерева или поддерева. Правило вывода решения на каждом шаге приводит
к порождению одного или нескольких поддеревьев или к устранению
рассматриваемого дерева. В дальнейшем правила применяются к компонентам
поддеревьев. Правила применяются до тех пор, пока в результате применения правил
не получим в качестве компонентов логические переменные или формулы без
операций, для которых правила отсутствуют. На этом, если придерживаться
схематического рассмотрения, вывод решения ВУ заканчивается.
Конструктивно правило состоит из двух частей: правая часть - посылка и левая
часть - заключение (архитектура правила). Посылка указывает операцию или ее
отрицание, а заключение - схему предрешения. Всего имеется 12 правил в
соответствии с таблицей операций. Они приведены в следующей таблице:
Номер операции
Посылка
1
16
ложь
not(А Л В)
2
А and В
15
not(А and В)
14
А => В
3
not(А => В)
12
А << В
5
not(А << В)
10
А=В
7
not(А = В)
8
А or В
9
not(А or В)
16
истина
Операции сечения используется для
результатов.
Заключение (альтернативы)
Нет решения (противоречие)
(not А, not В); (not А, В); (А, not В);
(А, В).
(А, В).
(not А, not В); (not А, В); (А, not В).
(not А, not В); (not А, В); (А, В).
(А, not В).
(not А, not В); (А, not В); (А, В).
(not А, В).
(not А, not В); (А, В).
(not А, В); (А, not В).
(not А, В); (А, not В); (А, В)
(not А, not В).
Теорема
оптимизации решений и промежуточных
Применение правил логического вывода решения приводит к (альтернативному,
указанному в таблице перечислением через точку с запятой) набору двоичных
деревьев (совместных фактов, указанных в таблице перечислением через запятую
внутри круглых скобок), являющихся решением исходного логического уравнения.
Полученное решение используется для построения БЗ, когда производится заполнение
базы, или для поиска ответа на запрос, когда производится анализ запроса.
Совокупность всех двоичных деревьев определяет полное решение логического
уравнения. Если исходное знание имеет вид доказательства, то такое знание имеет
значение истины! Если исходное знание имеет вид «нет решения», то такое знание
является внутренне противоречивым! Другими словами, если запрос имеет вид «нет
решения», то запрос абсурден! Остальные случаи исходных знаний имеют
определенный уровень интеллектуальности.
Сущность правил вывода решений состоит в следующем. Каждое правило - это
обобщение знаний в БЗ. Знания в первичном представлении - это собрание фактов.
Объем БЗ можно ограничить введение средств сокращения объема базы. Вместо
набора фактов в БЗ можно поместить правило, из которого можно получить факты
набора. Так можно представить первую абстракцию в представлениях фактов.
Правила вывода решения логического уравнения не должны требовать доказательства
правильности, они представляют собой обобщение фактов. Это положение
демонстрируется на примерах приведенных правил вывода решения логического
уравнения. Выше в таблице указаны правила вывода, связанные с логическими
операциями. Другие правила, связанные с остальными операциями рассматриваются в
гл. 5, в форме аксиом определения констант, величин и операций.
4.3. Природа правил вывода решений
Сущность данных выше в таблице правил вывода для ВУ состоит в следующем.
Если анализируемое выражение разложить в нормальную дизъюнктивную форму
(НДФ), то все конъюнкты и представят решения уравнения. Следовательно, получение
решения связано с построением НДФ для логических операций ВУ. Если выражение
ВУ состоит из одной операции, то решение представлено в таблице одной строчкой.
Отсюда следует, что каждой табличной операции можно поставить в соответствие
наборы переменных, представленные в НДФ конъюнктами. Число конъюнктов
заведомо определено. Указанное соответствие и определяет существо правил вывода
решений.
Каждый конъюнкт включает в логическое произведение все переменные, но
вместе с операцией not или без нее. Будем считать, что операция not является просто
характеристикой данной переменной. Кстати вспомним, что в соответствии с МЛ
ПЕРЕМЕННАЯ = ложь представляется как not ПЕРЕМЕННАЯ, а ПЕРЕМЕННАЯ =
истина - как ПЕРЕМЕННАЯ. При изображении векторов будем использовать сами
имена переменных (возможно вместе с операцией not). Итак, правило вывода
происходит из представления логических выражений через НДФ, затем конъюнктами
и, наконец, логическими векторами.
Для иллюстрации рассмотрим операцию or: (А or В) = (А&В оr not A & В or A
& not В). Тогда правило вывода решения для операции or можно записать так:
А or В -> (А, В); (not A, В); (А, not В).
В скобках указан комплекс или вектор (конъюнкт), совокупность скобок - дизъюнкты
или набор альтернатив. Аналогично строятся правила для всех 12 операций, которые
представлены в таблице. Также аналогично можно рассмотреть все операции, которые
встроены в Интеллсист.
Кроме этого, правила вывода строятся из аксиом. Для вывода решений ВУ
используются свойства логических операций, которые даны или содержатся в
аксиомах. Такие правила играют оптимизационную роль в процессе вывода решений.
4.4. Множество решений
В языке Лейбниц имеется определение типа в форме множества истинности Т.
Его вид: МХ = {Х: Т; А(Х) } где А(Х) является здесь формальным представлением
запроса. Тип составляется из тех «Х» типа Т, которые обеспечивают значение истина
предикату А(Х). С точки зрения информатики множество МХ представляет множество
решений уравнения А(Х). Если известны решения для уравнений, составленных из
предикатов А(Х) и В(Х), то по правилам можно определить множество решений более
сложных уравнений. Выше были рассмотрены правила вывода множеств решений для
уравнений, содержащих логические операции. Аналогично строится таблица для
логических операций, примененных к предикатам, определяющим множества
решений логического уравнения. Правила приведены для фундаментальных 12
операций
Номер операции
1
16
2
15
14
3
12
5
10
Посылка
{x: A Л B }
{x: Т; not(A Л B)}
{x: Т; A and B }
{x: Т; not(A and B)}
{x: Т; A => B }
{x: Т; not(A=>B)}
{x: Т; A << B }
{x: Т; not(A<<B)}
{x: Т; A = B }
7
{x: Т; not(A=B)}
Заключение
{} = null
Unit
{x: A } * {x: B }
(T-{x: A }) + (T-{x: B })
(T-{x: A }) + {x: B }
{x:A} * (T-{x:B})
{x:A} + (T-{x:B})
(T-{x:A}) * {x:B}
{x:A} * {x:B} + (T-{x:A}) * (T{x:B})
{x:A} * (T-{x:B}) + (T-{x:A}) *
{x:B}
{x:A} + {x:B}
(Т-{x:A}) * (Т-{x:B})
8
{x: Т; A or B}
9
{x: Т; not(A or B)}
В таблице использованы сокращения:
- {х: А(х)} обозначает множество решений х задачи А;
- вместо предикатов А(х) и В(х) использованы обозначения А и В;
- первая колонка обозначает номера операций из разд.3.4;
- в обозначении {х:А} пропущено указание типа Т, эту запись надо понимать как
{х:Т;А}.
Множества решений иллюстрируют природу альтернативных вариантов,
получающихся при логическом выводе решений логических уравнений. Получение
альтернативных решений является одним из важнейших свойств ИЛ, которое обычно
отсутствует в практике ПП и в математике (см. также [Хао62]). Обычно бытует
стремление к построению процессов решений, которые обеспечивали бы получение
единственного решения, это иногда важно для строгого подхода при изучении задач.
Имеется убеждение в том, что для практики более интересен вариант получения
альтернативных решений. Это важно для привлечения различных критериев оценки и
выбора искомого результата, для устранения исследований исходной задачи на
получение единственного решения, для автоматизации самих исследований задачи,
для пополнения БЗ.
Информационный взрыв - вот самая острая проблема в представлении знаний в
базе, или в запросах, или в алгоритмах логического или алгебраического вывода
решения логического уравнения. Действительно, при доказательстве теорем
исчисления высказываний необходимо рассмотреть не менее 2 в степени n
комплексов, где n - число переменных логического уравнения. Применение правил
вывода решения приводит к большому числу комплексов из-за возможных повторений
одинаковых комплексов. Ставится серьезная задача получения решения логических
уравнений в условиях физических ограничений оборудования по памяти и
быстродействию, минуя инициирование информационного взрыва. При работе
Интеллсист может наступить момент, когда решение логического уравнения станет
невозможным в соответствии с перечисленными выше случаями экспоненциального
роста числа альтернатив решений. Рассмотрим только одну меру снижения такой
опасности. Главной мерой снижения опасности являются алгоритмы оптимизации
всех промежуточных решений (или предрешений). Последовательная и
«промежуточная» оптимизация намного ценнее окончательной оптимизации,
поскольку она реализуется с меньшими затратами по сравнению с глобальной
оптимизацией. Таблица получения множества решений подсказывает пути построения
ИЛ и правил работы МЛВ.
4.5. Исчисления в информатике
Классические исчисления определяются так: исчисление := <ЯППФ, АКС, ПВ>,
где ЯППФ - язык правильно построенных формул (язык Лейбниц), АКС - множество
аксиом исчисления, ПВ - набор правил логического вывода. Аксиомы определяют
различные объекты исчисления (константы, величины или операции). Правила,
которые строятся по форме <левый список формул, правый список формул>,
определяют множество высказываний для применения к исходным формулам как
подстановки. Формально исчисления в информатике ничем не отличаются от
исчислений в математике. Имеется фактическое отличие между ними. Исчисление в
информатике включает семь типов аксиом. Среди них имеются встроенные в
Интеллсист аксиомы и пользовательские (прикладные) аксиомы, последние
получаются из высказываний пользователя, предназначенных для БЗ или запроса.
Аналогичное расхождение можно наблюдать при анализе правил логического вывода
и их классификации на встроенные и пользовательские правила. Можно так сказать,
что БЗ - это исчисление конкретной области знания. Пользовательские исчисления
вводят аксиоматическое определение для констант, величин и операций данной
области знания. Запросы пользователя формируют конкретные исчисления на основе
БЗ. В частности, большинство математических исчислений, которые касаются
используемых в языке Лейбниц операций и констант, встроено в МЛВ и МАВ
Интеллсист. Это не значит, что любая математическая задача автоматически может
быть решена с помощью Интеллсист. Математики интересуются запросами
относительно своих величин и своих операций, которые должны укладываться или
определяться своими прикладными исчисленьями. Если некоторые встроенные
исчисления необходимо изменить, пользователь должен переопределить операции и
величины или константы в своем исчислении. Это сделать надо так, чтобы термины
величин, констант или операций отличались от таких объектов, которые уже
определены во встроенном исчислении. Таково кратко практическое соотношение
математических и информатических исчислений.
И еще. Исчисления МЛ, которые рассматривают только абстрактные величины и
операции, отличается от исчислений ИЛ, которые рассматривают не только
абстрактные величины и операции, но и конкретные модельные величины и операции.
Итак, формальное отличие исчисления МЛ от исчисления в информатике состоит в
расширении состава аксиом и возможном учете всего набора аксиом для конкретных
величин и операций. Имеется и прагматическое отличие, которое состоит в том, что
аксиома в информатике - это утверждение о константе, величине, операции или их
корреляции. В МЛ аксиомы интерпретируются иначе. Такие отличия позволяют
установить возможность построения универсального решателя с одной стороны, а с
другой стороны, приблизить пользователя к основаниям информатики без получения
специального логического образования.
Чуть повторимся для уточнения. Уточнение языка исчисления ИЛ состоит в
описании его компонент: <ЯПП, АИЛ, П>. Первая компонента исчисления ИЛ - язык
правильных формул - основана на ФЯ Лейбниц, представленным для пользователя
грамматикой ЯПП и СеГ. ЯПП выполняет традиционную роль языка правильно
построенных формул. Грамматика ФЯ точно определяет все конструкции выражений.
Однако запись конкретных выражений, используемая для представления аксиом,
требует краткого пояснения в силу естественного отхода от условностей ФЯ для
подчеркивания содержательной стороны вопроса аксиоматизации. ЯПП выполняет
две функции. Первая функция состоит в указании способа передачи знаний в память
ВМ, используемых для получения нового знания при решении пользовательских
проблем. Вторая функция состоит в указании способа передачи знаний человеку для
получения нового знания по ИЛ. Вторая функция языка важна для поиска знаний,
используемых при построении ИП и Интеллсист. Заметим, что важную роль
выполняет метаисчисление ИЛ, которое должно доказательно установить свойства
исчисления ИЛ. Вторая компонента исчисления ИЛ (АИЛ) - набор аксиом различного
сорта (их 7), записанных на ЯПП. Аксиомы предназначены для построения правил
вывода решения логического уравнения в ИЛ, они составляют встроенную БЗ. Число
аксиом велико, так как с их помощью описываются 110 операций, 36 типов данных и
10 констант. Третья компонента исчисления ИЛ (П) - набор правил ИЛ, которые
подробно рассматриваются в главе 6. Все правила классифицируются по группам,
которые можно именовать так: подстановка (проблема экономии и эффективности),
элиминация операций (проблема разрешения), унификация (также проблема
разрешения), оптимизация (проблема экономии и эффективности), построением
альтернатив совместных фактов (техническая проблема логического вывода решения
логического уравнения).
Уточним язык ИЛ следующим образом. Встроенная БЗ учитывает стандартную
часть логики. Пользовательское исчисление может относиться к логике определенной
значности, которая определяется описанием объектов и операций, используемых в
исчислении. В общем случае будем считать, что рассматривается К-значная логика,
где промежуточное или кодовые значения К пробегают ряд 0, 1,..., К-1. Договоримся о
том, что 0 соответствует наибольшему приближению к логическому значению ложь, а
К-1 - к значению истина. Два полярных значения зафиксированы для логики любой
значности. Для черно-белой логики (К = 2) 0 и ложь, 1 и истина совпадают в
точности и обозначают одно и то же в рассмотрениях аксиоматики.
И последнее. Такие понятия математики как поле или группа не используются, а
вот с алгеброй имеется прямая связь, поскольку процедура решения логического
уравнения напрямую использует законы алгебры. Пользователь может иметь дело с
множествами многих сортов, в частности, он может использовать понятие
потенциальной осуществимости как основного, поскольку Интеллсист решает задачи
за конечное время и в ограниченном пространстве памяти. Все, что вытекает из
основного тезиса об Интеллсист: «Интеллсист может выводить новое знание только в
результате анализа имеющегося знания и в соответствии с запросом пользователя»,
является критерием применения известных понятий из всех наук и научных
дисциплин.
Заметим также, что полное определение всех констант, величин или операции
невозможно из-за невозможности определения всякого мыслимого контекста. Полное
определение не ставит проблем или заданий для разрешения. Неполное определение
все-таки приводит к получению решения, поскольку любая БЗ избыточна для
конкретной задачи. Если окончательное решение не было получено, то избыточность
БЗ не спасает, в нее необходимо добавить нужное для данного запроса знание.
4.5.1. Разделы определения операций и констант. В ЯПП определяются
следующие операции со знаниями:
 стандартные элементарные операции,
 операции исключительных ситуаций,
 операции правил преобразования,
 операции подстановки вместо одних выражений других,
 операции масштабирования.
Все такие операции объединены в самостоятельные разделы записи знаний и запросов.
Смысл операции дан в описании языка Лейбниц.
4.5.2. Логическая дедукция. В МЛ дедукция используется для логического
вывода в заданном исчислении. Процедура применения дедукции может порождать
бесконечные ветви вывода, которые заранее необходимо исключать из рассмотрения.
В ИЛ дедукция естественным образом исключается, а правило дедукции становится
выводимым в ИЛ (математически не строго!).
4.5.3. Логическая индукция. Аналогично дедукции в ИЛ рассматривается
индукция только в частных случаях. Явное применение правила индукции затруднено
по известным в МЛ причинам. В ИЛ индукция (как и дедукция) естественным образом
исключается в общем случае, она включается в специальных случаях порождения
циклов в программе.
4.5.4. Роль исходных и искомых величин. Логический и алгебраический
выводы ориентированы на статус величин: быть исходными или искомыми. Внешняя
структура фактов для печати зафиксирована в связи с удобством восприятия
человеком результатов решения задач. Искомые величины должны помещаться в
левой части, например равенства, а исходные - в правой. Статус величин определяет
пользователь. При этом он имеет возможность рассматривать прямую или обратную
задачи: исходные величины становятся искомыми, а искомые - исходными. Заметим,
что некоторые величины могут быть неопределенными (ни исходными, ни искомыми)
для автоматического производства аналитических выкладок. Заметим также, что
задание может не содержать ни исходными, ни искомыми величин.
4.5.5. Совокупность правил вывода решений логических уравнений. О
наборах правил вывода достаточно подробно говорится в главе 6. Совокупность
правил составляет основу алгоритмов МЛВ и МАВ.
4.5.6. Алгебраическая дедукция. Известна логическая дедукция. Для
Интеллсист вводится понятие алгебраической дедукции, которая касается любых
алгебраических выражений, принимающих значения некоторого (не обязательно
логического) типа. Примером может служить исследование и поиск подобных
аддитивных или мультипликативных членов.
4.5.7. Метаправила вывода. Формирование метаправил логического или
алгебраического выводов может быть заменено рекурсивным применением простых
правил вывода. Здесь надо учесть тот факт, что количество правил вывода конечно
(из-за конечности числа операций). Метаправила могут порождать бесконечное число
правил, что теряет смысл при рассмотрении необходимого конечного числа обычных
правил.
4.6. Аксиомы математической логики
Рассмотрим решение уравнений, составленных из аксиом, известных в МЛ.
Ясно, что они будут тавтологиями (каждый раз результатом будет истина).
Логическое уравнение в информатике называется тавтологией, если в результате
логического вывода получаются все возможные решения. Их рассмотрение здесь
важно в качестве примера решения уравнений и практическое отсутствие
экспоненциального роста объема промежуточных результатов - предрешений.
Рассмотрим кратко также сам логический вывод истины.
1. Наличное событие может быть признано следствием другого события, как
определено аксиомой А => (В => А). Цепочка логического вывода строится
следующим образом:
not А or (В => А),
not А or not В or А,
истина.
применение правила для раскрытия первой операции =>,
применение правила для раскрытия второй операции =>,
применение правила исключенного третьего для А.
2. Если существует двухзвенная цепная зависимость событий и
наличествует первое звено цепочки, то допустимо считать, что исходное событие
влечет заключительное (или закон силлогизма):
(А => (В => С)) => ((А => В) => (А => С)).
Цепочка логического вывода строится следующим образом:
not (А => (В => С)) or ((А => В) => (А => С)), применение правила для
раскрытия третьей операции =>,
А and not (В => С)) or not (А => В) or (А => С), применение правил для
раскрытия первой операций отрицания => и второй операции =>,
А and В and not С or А and not В or not А or С, применение правил для
раскрытия операции отрицания => (дважды) и операции =>,
А and not С or А and not В or not А or С, применение правил сечения для
первой дизъюнкции по переменной В,
А or А and not В or not А or С, применение правил сечения для первого и
третьего членов дизъюнкций,
истина. Применение правила исключенного третьего для первого и третьего
членов дизъюнкции.
3. Наличие совместного события влечет наличие каждого из его
составляющих:
(А & В) => А и (А & В) => В.
Цепочка логического вывода строится следующим образом:
(not (А & В) or А) & (not (А & В) or В), применение правила для раскрытия
операции => (дважды),
(not А or not В or А) & (not А or not В or В), применение правила для раскрытия
скобок с отрицанием,
истина & истина, применение правила для исключенного третьего (дважды),
истина. Применение правила для конъюнкции истин.
4. Закон импортации: (А => (В => С)) => ((А & В) => С). Цепочка логического
вывода строится аналогично примеру 3.
5. Закон экспортации: ((А & В) => С) => (А => (В => С)). Цепочка логического
вывода строится также аналогично примеру 3.
6. Последовательное наступление двух событий влечет наступление
совместного события: А => (В => (А & В)). Цепочка логического вывода строится
также аналогично примеру 3.
7. Если каждое из двух событий влечет третье, то для гарантии его
наступления нам достаточно знать, что посылка верна:
(А => С) => ((В => С) => (А or В => С)).
Цепочка логического вывода строится также аналогично примеру 3.
Варианты формул для интуиционистского исчисления высказываний, например,
not А => (А => В), закона Дунса Скота: (А & not А) => В или удивительного
следования Клавдия: (not P => P) => P также выводятся аналогично. Последние
примеры с 4 по 7 предоставляются читателю для самостоятельной работы по
построению логического вывода. Последний пример - иллюстрация доказательств и
опровержений для метода доказательства от противного. Если посылка влечет как
заключение, так и его отрицание, то посылка неверна: (not А => not В) => ((not А =>
В) => А). Цепочка логического вывода строится также аналогично примеру 4:
(А or not В) => ((А or В) => А),
not А and В or (А or В) => А),
not А and В or not А and not В or А,
not А or … or А,
истина.
Таким образом, любые аксиомы МЛ являются тавтологиями, если переменные в
формулах имеют тип логического или абстрактный тип. Если тип переменных
изменен пользователем, то тавтологии может не получиться, если изменена модель,
для которой рассматриваются формулы. В таких случаях необходимо задавать
дополнительно аксиомы, определяющие логические операции с такими переменными.
Если система (Интеллсист) знает операции, которые определены аксиоматически и
встроены, то аксиомы определения должны быть тавтологиями.
4.7. Система аксиом для решения логических уравнений
Примеры систем уравнений рассматривались в разделе о ФУ. Все уравнения
системы сводились к одному логическому уравнению. Поэтому проблема
рассмотрения систем уравнений не ставится и не рассматривается, а разрешается.
Другим вопросом является рассмотрение системы, решающей логическое уравнение.
Здесь система именуется как МЛВ или МАВ, входящей в состав Интеллсист. Дело не
в названии. По существу под системой здесь имеется в виду совокупность тех аксиом
и правил (ИЛ), которые встроены и приводят к решению уравнения. Этой системе
посвящена глава 5.
Исчисление ИЛ содержит более 500 логических аксиом и правил логического
вывода (реализовано несколько тысяч аксиом по всем семи классам аксиом), которые
вместе с ЯПП составляют систему для решения логического уравнения. Количество
аксиом определяется числом встроенных операций и типов данных. Система может
модифицироваться базой знаний и запросом, поскольку они изменяют ИЛ в части
аксиом и правил вывода. Число аксиом не должно отпугивать читателя, если ему
понятно существо аксиомы или исчисления: аксиома - это определение константы,
величины, операции и связей между ними. Аксиомы, описывающие объекты и
операции и представляющие знания, подразделяются на классы, которые являются
взаимосвязанными, взаимозаменяемыми и взаимопереводимыми. Аксиомы всех
классов учитываются при построении систем. Некоторые аксиомы учитываются в
процедурах обмена данными, другие - при построении алгоритмов или программ,
третьи - явно входят в ИЛ, четвертые - присущи конструкции ВМ и т.п. Все аксиомы
подразделяются на 7 классов. Рассмотрим общую характеристику каждого класса.
Класс естественных аксиом. Естественные аксиомы являются наиболее
сложными, они определяют правильность, например восприятия знаков, их
взаимосвязи и соответствия реальности. Ими пользуется человек или читающее
устройство. Правильность использования характеризуется надежностью системы
восприятия. Будем считать, что всегда имеется стремление к истине. Если она не
достижима, то будем приближаться по возможности ближе к истине и наилучшим
образом. Всегда главным считаем получение истины. К естественным аксиомам
относятся, например, следующие:
- всегда рассматривается конечный набор символов (учитывается в кодировках);
каждый символ должен отличаться от другого символа (символы различаются
кодами);
- для символов действуют законы одинаковости;
- символ равен самому себе;
- символ имеет конечные размеры.
Естественные аксиомы всегда описательны, они могут задаваться алгоритмами. Их
использует человек повседневно в силу накопленного в мозгу знания. Но описательные
аксиомы можно формализовать или представить в каком-либо виде, например в
заданном лексиконе. Данный класс аксиом может быть представлен в форме, которая
свойственна любым другим классам. Они (как и все остальные классы) могут вводиться
в БЗ для исследования объектов, которые определяются аксиоматически, они могут в
каком-либо виде входить в запросы.
-
Класс языковых аксиом. Языковые аксиомы определяют символьные
комбинации с помощью формальных грамматик, которые сами являются собранием
аксиом, и реализуются в системах обработки входных сообщений трансляторами и
интерпретаторами, они именно там и учитываются. Часть уже формализованных
аксиом можно найти в [Дал75] относительно структурных языковых объектов.
Например, в указанной замечательной монографии определяются аксиомы для
перечислимых, записей, массивов, Р-множеств и последовательностей. Там
представлена полная система аксиом для операции катенации, которая отсутствует в
системе логических аксиом из-за свойств памяти ВМ (разумеется, и человека)
сохранять и последовательно обрабатывать символы или их коды. Еще пример. Запись
данных контролируется на правильность подбора значений для полей. Средства
контроля следуют из аксиом для значений типа записи. Такие аксиомы определяют
смысловую сторону объектов и операций. Они в обязательном порядке используются
при построении транслирующих, компилирующих или интерпретирующих систем.
Класс концептуальных аксиом. Концептуальные аксиомы определяют понятия,
необходимые для передачи знаний в память ВМ. В качестве примеров таких аксиом
можно указать на аксиомы выбора атрибута, индексирования, именования,
квалификации, преобразования типов, аксиомы для процедур и присваивания, обычно
вводимых в описаниях семантики языков программирования. Лексикон является
собранием концептуальных аксиом. Примеры конкретных аксиом приведены ниже:
- число индексов у переменной должно равняться числу граничных пар в описании
массива;
- указание имени поля записи должно следовать за именем записи;
- типы левой и правой части присваивания должны быть одинаковыми.
Большинство концептуальных аксиом работают при вводе информации в память ВМ
или Интеллсист или при изучении контекстов для объектов (терминов).
Класс аксиом для наборов (или аксиомы структур) состоит из аксиом, которые
связаны с данными и массивами данных. Эти аксиомы определяют наборы данных или
элементарных знаний с точки зрения структуры и свойств всей совокупности данных и
знаний. Они отражают прагматику данных или каких-либо языковых конструкций.
Такие аксиомы учитываются в семантических преобразованиях или в алгоритмах
обработки данных.
Класс логических аксиом. Логические аксиомы определяют математические
константы, величины (свойства предметной области) и операции (свойства проблемной
области) и их свойства для обработки знаний и запросов с целью логического вывода
нового знания. Они должны быть формальными и основываться на исследованиях
математики, а точнее - на исследованиях МЛ. Логические аксиомы информатики
рассматриваются ниже полностью. Они являются исходным знанием для заполнения
стандартной части БЗ, которая реализуется в виде МЛВ и МАВ (встроенные знания).
Класс прикладных аксиом. Прикладные аксиомы определяют объекты и
операции пользователя, они являются исходным знанием в данной области или
специализации для заполнения пользовательской части БЗ и «программой» решения
класса задач. Пользователь передает свои знания или запросы в большинстве своем
прикладными аксиомами (утверждениями об исследуемых объектах или операциях).
Собственные знания пользователя содержат многочисленные аксиомы, определяющие
его объекты и операции. Любая запись знаний или запросов являются набором
прикладных аксиом.
Класс системных аксиом. Системные аксиомы определяют операции ВМ и ОС
по вводу исходных данных, обработке и выводу итоговых представлений знаний
(данных). Их использование осуществляется при разработке Интеллсист и ее
инструментария. Большая часть системных аксиом реализована в операционных
системах и системных программах. Можно сказать, что системные аксиомы
автоматически учитываются при работе с ВМ или Интеллсист.
Итак, в ИЛ каждая аксиома - это определение объекта или операции, терманда
или термации. Любое определение устанавливает взаимосвязь объектов и операций, а
также включает неопределенные аксиомой данного исчисления (или ИЛ) объекты и
операции. Предполагается, что неопределенные объекты и операции описаны с
помощью аксиом другого класса. Указанные положения можно использовать при
конструировании аксиом исчисления. Исчисление ИЛ опирается на язык Лейбниц, в
котором зафиксирован набор типов данных и операций.
Некоторые аксиомы служат проверке правильности выражений или вычислений,
некоторые аксиомы предназначены для обнаружения и локализации ошибок. Большая
часть аксиом является основой для формирования алгоритмов или процедур
логического или алгебраического вывода, вычислений или формирования печати
результатов.
Для классов аксиом имеются синонимы. Вот некоторые из них:
- естественные или синтаксические аксиомы,
- языковые или семантические аксиомы,
- концептуальные или понятийные аксиомы,
- структурные или прагматические аксиомы,
- логические или информатические аксиомы,
- прикладные или алгоритмические аксиомы,
- системные или общие для всех пользователей ВМ аксиомы.
Аксиомы исчисления ИЛ создавались в соответствии с высказанным
пониманием аксиомы. Каждая аксиома первой серии определяет объект или
операцию. Каждая аксиома второй серии определяет пару тех же объектов или
операций, их зависимость. Затем можно рассмотреть аксиомы для тройки,
четверки и т.д. объектов или операций для контекстного определения этих
объектов или операций. Некоторые комбинации объектов несовместимы,
например нельзя сформировать аксиому для пары относительно связи сложения
с логической операцией «или», но можно сформулировать для набора операций,
включающих связь сложения с логической операцией «или». Некоторые
аксиомы сложны для построения, например аксиома для связи сложения и
возведения в степень. И снова, можно определить аксиомы для наборов
операций, включающих операции сложения и возведения в степень.
Терпеть не могу логики.
Она всегда банальна и нередко убедительна.
О. Уайльд
Глава 5. Информатическая логика
Эта глава является самой ответственной, так как она содержит описание ИЛ оснований информатики. В связи с этим уделено достаточно внимания пониманию
исчислений (Введение) и всем разделам ИЛ, образованным по группам операций над
величинами всех типов данных. Подробное описание исчисления ИЛ необходимо для
создания и описания средств решения логических уравнений. Аксиом ИЛ много, они
представлены не полностью, так как выявляются новые факты относительно связей
операций друг с другом (контекстное определение операций). Здесь представлены
главным образом логические аксиомы.
Введение. О логиках
Общие соображения. Современная математика в результате исследований
различных формализаций построила самые разнообразные логики. Допускается, что у
каждого пользователя имеется своя логика (ПЛ), которая обеспечивает решение его
задач. Все формальные логики можно объединить в три группы: классическая логика
МЛ [Клини73], интуиционистская логика ИН [Новиков77] и модальная
(неклассическая) логика НЛ [Фейс74]. Последняя будет рассмотрена в отдельном
разделе. Каждая из этих логик объединяет значительное число конкретных логик,
описание которых можно найти в литературе, упомянутой в скобках. Рассмотрим ИЛ,
которая объединяет в некотором смысле указанные три группы логик. Кроме этого,
надо иметь в виду, что пользователь применяет свою логику ПЛ.
В математике известно большое число конкретных различных логик (в
особенности среди МЛ). На основе существующих логик рассмотрим еще одну,
ориентированную на использование в информатике. Новая логика или ИЛ объединяет
виртуально все существующие логики для обеспечения процедуры решения задач,
сформулированных в той или иной логике. В связи с этим новая логика именуется ИЛ.
Для уточнения понятия ИЛ будем постоянно сравнивать ее с МЛ. Например, ФЯ
формул, используемых в ИЛ, будет таким же как ФЯ в МЛ. Особенности
представления символов в памяти современных ВМ приводят нас к использованию
несколько отличных от представлений в МЛ символов (в публикациях). ИЛ
предназначена для создания теоретических основ построения Интеллсист.
Исчисление ИЛ, в соответствии с формальным определением исчисления,
характеризуется тройкой: (ЯПП, аксиомами, правилами вывода) и множеством
формул, которые записываются на ЯПП, которые являются теоремами в обычном
понимании МЛ или которые требуют определения условий их истинности. Множество
истинных формул в МЛ определяют теорию. В ИЛ множество формул
рассматриваются в качестве логических уравнений для решения (или определения
условий истинности). Среди них могут быть и истинные формулы. Аксиомы задают
определения операций или операндов логических выражений, а правила вывода
задают базу для алгоритмов решения логических уравнений. Аксиомы еще выполняют
функции подсказки правил оптимизации (минимизации) логических формул, эти
правила необходимы для повышения эффективности работы Интеллсист.
Различие трех логик (математическая, интуиционистская и информатическая)
можно пояснить следующим образом. МЛ ставит своей целью доказательство
существования объекта, относительно которого имеется высказывание, именуемое
теоремой (или гипотезой). Доказательство проводится в заданном исчислении
методами дедукции и индукции. Интуиционистская логика (ИН) ставит своей целью
доказательство существования объекта (ИН является ветвью МЛ) и указание
алгоритма построения искомого объекта. Доказательство в ИН проводится в
интуиционистском исчислении также методами дедукции и индукции. ИЛ ставит
своей целью поиск:
- либо искомого объекта (тем самым решается задача доказательства
существования объекта),
- либо аналитической зависимости для искомого объекта, если исходное
высказывание содержит неопределенные операции или величины,
- либо алгоритма, если в исходном высказывании неопределенны исходные
данные для величин, либо новых высказываний, составляющих условие для поиска
искомого объекта,
- либо программы для выполнения по набору исходных данных.
Поиск реализуется методами логического вывода без явного использования дедукции
и индукции, но с заданным уровнем «интеллектуальной способности», определяемым
глубиной используемой серии правил и временем работы логического вывода. Если
результат логического вывода какого-либо варианта поиска искомого объекта
положителен, то ИЛ устанавливает существование искомого объекта. ИЛ является
логикой использования ВМ для решения различных задач. Изучение ИЛ означает
освоение методов использования ВМ.
Исследования в области использования ВМ позволили построить ИЛ,
обеспечивающую любого пользователя средствами решения его проблем без
программистов. Это означает, что пользователю доступны все средства ВМ без знания
математики и программирования в том объеме, которым располагает программист для
перевода запроса пользователя на алгоритмический язык или язык программирования.
ИЛ позволяет снять барьер недоступности к математике, использовать доступные
средства для доказательства истинности высказываний. С другой стороны, ИЛ
позволяет решать математические задачи для математика и программистские задачи
для программиста.
В основе ИЛ лежит исчисление высказываний со всеми операциями, заданными
в ЯЛ (включая предикаты любого порядка). Причем понятие высказывания
расширено, так как под высказыванием понимаются фразы ЕЯ. В частности, данный
текст относится к высказываниям, которые могут исследоваться вручную или с
помощью Интеллсист. В основе ИЛ лежит принцип сохранения знаний так, что любое
преобразование выражений сохраняет истинность (или ложность) в преобразованном
выражении. В специально оговоренных случаях сведения могут стать приближенными
из-за невозможности сохранения полного знания. Они истинны по существу, но не
полны по форме. Например, полное исследование квантора с вещественной связной
переменной в синтезированной программе невозможно, если не задан способ перебора
значений для этой переменной.
Исчисление ИЛ вместе с БЗ и запросом в форме терминов лексикона и частного
определенного пользователем языка, может быть полным, если аксиомами
определены все величины и операции, а также все комбинации из объектов и
операций. Это значит, что общее число аксиом равно 2**К - 1, где К - суммарное
число определяемых констант, величин и операций. Но такая система с одной стороны
невозможна по емкости (или размерам), с другой стороны такая система и не нужна.
Не все зависимости операций, не все соотношения между ними важны и необходимы.
Интеллсист подключается тогда, когда в наличии недостаточность знаний, которые
она логически находит по исходным положениям или данным. Более того, если
используется не полная система, Интеллсист подскажет объект, относительно
которого знаний недостаточно.
Как и всякая логика, ИЛ находится в развитии по признаку исследуемых
предметов, событий или процессов и их характеристик. ВМ привлекается в том
случае, когда необходимы новые знания, извлекаемые из имеющихся знаний. Развитие
ИЛ связано с построением разнообразных исчислений, построением модальных
пользовательских логик, рассмотрением размытых логик - событий с вероятностью их
совершения, исследованием дискретных размытых логик и смешанных логик в
информатике. Примером развития ИЛ может быть, например следующее. При
рассмотрении последовательности логик, построенных на основе размера типа
данных, возникает желание рассмотреть бесконечные множества, логические
операции с данными из этих множеств и логики на таких множествах. Таким образом,
можно прийти к понятию о бесконечнозначных логиках.
Любое высказывание на ЕЯ подразумевает определенную меру истинности.
Некоторые высказывания истинны всегда, другие ложны, третьи имеют
неопределенную оценку относительно истинности или ложности. Все высказывания
могут оцениваться с позиций истинности, ложности или неопределенности какой-либо
степени. При разрешении проблем важно знать меру близости имеющейся
неопределенности к истине или ко лжи. Здесь необходимо иметь в виду две важные
проблемы. Первая проблема связана с разрешением неопределенностей высказываний.
Вторая - с выявлением условий, при которых высказывания будут истинными. В этих
проблемах обычно тщательно разбираются. Здесь по многим статьям поможет
технология ИП.
Двузначные и многозначные логики. Чаще всего высказывания
рассматриваются в черно-белом свете. Результат решения задач всегда представляется
в черно-белом свете, хотя интерпретация результата человеком может быть
представлена в цветах радуги. Каждое высказывание либо истинно, либо ложно, и
третьего не дано. В математике бытует закон исключенного третьего. Практика
сталкивается и с другими ситуациями. Если знания достаточны, то закон
исключенного третьего применим для выявления истины. (Классический пример
высказываний о погоде: «дождь идет» для ИП является истинным и полученным после
логического вывода, но оценка такого результата пользователем может быть «ложь»,
так как на самом деле нет дождя.) Но если знаний недостаточно, то выявление
истинности затруднено, результат может оказаться приближенным к истине или ко
лжи. Однако разрешать практические проблемы крайне необходимо и в таких
условиях. Это необходимо для поиска требований или запросов на дополнительные
знания, которые обеспечили бы наибольшее приближение к истине. Общее
стремление к истине правомерно. Однако практические задачи не всегда ставят
проблему поиска истины. В связи с этим необходимо рассматривать высказывания в
радуге цветов, которые усматриваются при постановке практических проблем.
Пример для демонстрации сказанного таков: если получен результат "возможно дождь
идет", который по ИЛ истинен, то пользователь интерпретирует такой результат по
своему, в зависимости от фактических данных или в силу своего понимания слова
"возможно".
Заметка. Конечно, черно-белый свет помогает быстро определить правильное и единственное решение.
Но для достижения требуемой быстроты необходимо проделать большую работу по подготовке исходного
материала для рассуждений и строго математически установить единственность ожидаемого решения. Требуемая
быстрота может оказаться иллюзорной. Не лучше ли предложить такой путь. Машине сообщаются имеющиеся
знания и запросы на разрешение конкретной проблемы. Машина должна оценить знания и запрос путем
разрешения конкретной проблемы и предоставить все возможные решения для принятия окончательного решения.
Время выбора окончательного решения может быть уменьшено при выполнении требований машины на ввод
дополнительного знания. Суммарное время может оказаться таким же, каким оно было в первом случае
(предварительного исследования исходного материала). Однако следует ожидать временную эффективность
второго пути разрешения проблемы. Для реализации второго пути необходимо обеспечить получение многих
решений. ИЛ ориентирована именно на этот путь.
Достижение истины и единственного решения ускоряется с помощью ВМ,
которая должна обеспечить оценку близости решения к истине и вывода всех
возможных на основе введенных знаний решений проблемы. Разрешение конкретной
проблемы может быть связано с итерациями по исследованию меры близости к истине
и многими решениями. Отвечая на вопросы ВМ по вводу дополнительного знания,
могут возникнуть новые частные проблемы. В сущности, процесс обработки вопросов
представляет собой исследование в направлении, указанном машиной. Можно
высказать предположение об эффективности человеко-машинной системы по
сравнению с ручной работой специалиста.
Исследования истины в черно-белой логике широко известны, они должны
использоваться максимально. Другими словами, конкретные проблемы математики
должны разрешаться с помощью ИЛ таким же образом, как и проблемы с
недостаточным исходным знанием. При этом будем интересоваться не только
истинностными высказываниями, но и неопределенными в смысле истины
высказываниями. В качестве примера рассмотрим конъюнкцию «идет дождь и идет
снег», которая может быть истинной, ложной или неопределенной. Задача сводится к
разрешению вопроса о том, какими должны быть альтернативные наборы
характеристик понятий «идет дождь» и «идет снег» (истинными, ложными или
неопределенными).
Рассмотрим на примерах различия черно-белых и многоцветных логик. Многие
исследования высказываний позволяют ставить проблемы, для которых разрешение
возможно со значениями да или нет. Двоичная логика рассматривает следующие
альтернативы этому: {ложь, истина}, {false, true}, {неправильно, правильно} или
{0, 1}. На практике используются и другие значения истинности. Многоцветные
(многозначные) логики используют, например такие альтернативы цветов истинности:
- в трехзначной логике {ложь, возможно, истина}, {0, 1, 2} или {F, U, T};
- в четырехзначной логике {ложь, почти ложь, почти истина, истина}, {0, 1, 2, 3}
или {F, NF, NT, T}.
Это примеры используются в прикладной математике или в практике решения задач.
Альтернативные значения в различных наборах являются синонимами.
Профессиональный язык использует самые разнообразные обозначения для меры
истинности. В формальных языках программирования введены типы данных, которые
называются перечислимыми. Каждой позиции перечисления соответствует
порядковый номер, начинающийся с нуля и завершающийся целым значением К-1, где
К символизирует значность логики. Например, при обсуждении проблем часто
используется перечислимый тип
тип решение проблемы =
(решения нет, решение неопределенно, решение получено);
Служебное слово тип используется для указания того, что далее следует имя
типа, а равенство - разделитель имени типа и значений типа (набор смыслов). Так
передается машине знание о наборе значений переменных, которым будет предписан
этот тип. Перечислимые типы являются объектами многозначных логик. Исходный
запрос пользователя представляется логическим условно сформулированным
уравнением: Запрос = истина, решение уравнения может содержать переменные типа
перечислимого со значениями той или иной меры близости к условному значению
истина.
Следует обратить внимание на следующие обстоятельства. Практика может
ставить проблемы, которые сводятся к решению логического уравнения: Запрос =
ложь. Большого внимания заслуживают логические уравнения типа Запрос =
неопределенно. В первом случае рассматриваются т.н. антизадачи, во втором - задачи
поиска условий неопределенности. Данные уравнения можно представить и
функционально:
уравнение(запрос, требуемое значение истинности).
Представление элементарного знания или фактов можно представить примерами
такого вида: Х = 1; Х /= 1; возможно Х = 1; необходимо Х = 1;
Обзор операций ИЛ. В логическом языке информатики рассматриваются
операции, которые называются встроенными, поскольку ВМ «понимает» их, они
приведены ниже. В таблице упомянуты все обозначения операций и их ранг
старшинства. Эта таблица приводится лишь для напоминания.
Ранг
Операции
Наименования
1
:= =: :=:
присваивание влево и вправо, обмен
2
=> <<
следование вправо и влево
3
or xor \/
или
4
and & /\
И
5
= <> /=
равенство и неравенство
6
< <= >= >
неравенства
7
принадлежит и не принадлежит
in not in
8
+ - \ ^ &
бинарные операции сложения
9
+ - abs not pred next ref skim унарные операции
10
*
11
** '
12
/ mod div
`
@
константа, агрегат, (), [], {},
квантор, функция,
группа умножения и композиции
операции высшего приоритета
Базовые операции
преобразование, индексирование,
именование, отрезок,
(квалификация), атрибут.
наивысшего приоритета
Относительно таблицы сделаем замечания:
1.
2.
3.
4.
5.
В ней приведены только обозначения операций вместе с их наименованиями и не указаны свойства
операндов и результатов применения операций.
Старшинство операций (ранг) используется в алгоритме для построения выражений с опущенными
скобками.
Число введенных обозначений операций достаточно, оно определяется практикой использования.
Для операций могут вводиться синонимы.
Пользователь сам может ввести некоторое число операций со своими обозначениями, используя
термины или известные знаки для обозначения операций.
Относительно обозначения равенства (как и всех отношений) заметим, что оно заменяет все его
разновидности, например эквивалентность, тождественность, равенство, равносильность,
одинаковость и др. Здесь все зависит от типа величин, значения которых сравниваются на
совпадение.
Назначение аксиом. В главе рассматриваются 22 взаимосвязанные логические
исчисления, охватывающие современное представление информатики. Другие
(многозначные и модальные) логики рассматриваются фрагментарно (примерно). В
подразделах все аксиомы ИЛ перенумерованы. Номера аксиом отражают номер
группы и порядковый номер аксиомы в группе, в квадратных скобках указан
порядковый номер аксиомы в ИЛ. Вслед за аксиомой приведены некоторые
пояснения.
Аксиомы - это форма определения констант, величин или операций и их связей,
определение функций (например, констант) или связей их с операциями или друг с
другом. Аксиомы - это средство порождения синтаксических правил логического
вывода решений логического уравнения, использующих операцию |-, и семантических
правил, использующих операцию =>. Для краткости и понятности формализма ниже
используются формальные обозначения для всех операций и не используются
средства ЯПП.
Классическая математика изучает абстракции и их развитие, которые становятся
доступными только при достаточно глубоком изучении математики. Использование
ВМ также возможно при достаточно глубоком изучении основ программирования. ИЛ
ставит своей практической целью сделать доступной математику и программирование
для любого пользователя ВМ на описательном уровне. Можно и целесообразно
оговориться: ИЛ ставит цели сделать математику самого пользователя доступной,
применять автоматическое программирование для создания программ без участия
программистов или использования ФЯ. Такие цели ставятся и при построении системы
аксиом ИЛ.
В некотором смысле здесь выполняется программа Гильберта [Гильберт79]
относительно аксиоматики, которая модифицируется здесь следующим образом:
1) совершенствование аксиоматического метода, прежде всего, на базе основ
информатики;
2) построение анализа логических уравнений по строгой методике, путем
сведения теории величин к теории значений;
3) исследования, направленные на обоснование понятия знание и применение ВМ
для построения нового знания.
Выполнение программы начнем с разбора понимания смысла аксиом. И прежде всего
начнем описательное изучение их свойств. Всем известно понятие аксиомы. Оно
вызывает некоторый трепет, поскольку связано со строгостью математики, которая
доступна немногим. Оставим строгость для формальных систем и математиков,
аксиомы будем рассматривать как истинные утверждения для данной области знания.
Назначение аксиом определяется по предлагаемой классификации следующим образом.
1. Аксиомы описывают существенные стороны реального мира, которые
способствуют разрешению выдвигаемых проблем. В реальном мире имеют дело с
объектами и операциями над ними. Последняя фраза может быть отнесена к
описательным аксиомам информатики. Они порождаются грамматикой ЕЯ (например,
соотношение подлежащего и сказуемого). Правда в информатике действие может стать
объектом, а объект - действием. Это частичное нарушение грамматики ЕЯ расширяет
возможности аппарата извлечения знания из описательных сообщений. Описательные
аксиомы предназначены для пополнения БЗ сведениями о предметах, явлениях и
процессах реального мира.
2. Аксиомы утверждают и фиксируют существенные стороны объектов и
операций над ними. Эти существенные стороны являются обязательными для всей
конкретной области знания, в которой определяются объекты предметной и
проблемной областей. В другой области знания эти же или некоторые объекты или
операции могут приобретать другие свойства, тогда эти же аксиомы будут передавать
другие свойства реального мира. Предлагаемый список назначений и свойств аксиом
выполняет такую функцию, указывая на те стороны их свойств, которые используются
в информатике. Эту фразу можно отнести к иллюстративным средствам пояснения
второго назначения аксиом.
3. Аксиомы выделяют круг понятий, которые применяет пользователь или
специалист данной области знания. Совокупность понятий направляет их на
творческую деятельность с помощью ВМ, позволяет точно формулировать запросы для
Интеллсист и правильно интерпретировать результаты работы системы. Пожалуй,
рассматриваемые назначения аксиом выделяют понятия величины и операции, которые
используются в информатике.
4. Аксиомы фиксируют факты или утверждения о фактах, на основе которых
разрешаются проблемы данной проблемной области. Чтобы разрешить конкретную
проблему, необходимо собрать факты (или/и утверждения о фактах), что является
естественным подходом в любом познавательном процессе. Например, при описании
назначений аксиом собраны факты, используемые в информатике для разрешения
проблем. Список назначений аксиом соответствует определению информатики и
подчеркивает списком факты проблем.
5. Аксиомы транслируются (переводятся) на внутренний ФЯ Лейбниц и
становятся формальными определениями величин и операций в полном соответствии.
С результатами трансляции система может оперировать с целью доказательства
правильности аксиом (непротиворечивости, независимости или полноты набора
аксиом) и запросов пользователя, с целью, в конечном счете, получения результатов
разрешения конкретных проблем.
6. Аксиомы используются, как это можно было уже заметить, прежде для
установления истинности совокупного знания, а затем для разрешения проблем.
Совместное формальное изучение совокупности фактов устанавливает свойства
каждого факта, а применение аксиом логически выводит новые факты,
представляющие результаты разрешения конкретных проблем.
7. Аксиомы в совокупности создают систему базовых знаний либо для
конструирования Интеллсист или встроенную в нее БЗ, либо для построения БЗ
пользователя. Аксиомы для конструирования Интеллсист рассматриваются в
следующих разделах. Аксиомы для построения БЗ зависят от специалиста данной
области знания.
Для Интеллсист пользователь общается с ВМ посредством аксиом. Каждый абзац
считается истинным (до обнаружения противоречий). Для ВМ конструктор Интеллсист
общается с ней посредством приводимых ниже аксиом из встроенной БЗ. Такое
разделение аксиом на встроенные и пользовательские естественно: в процессор ВМ
вложены знания о представлениях величин и операций, которые содержаться в
аксиомах ИЛ. В головы (в книги и др.) специалистов вложены знания, которые
передаются в память ВМ фактами и текстовыми абзацами. Если для ВМ система
аксиом зафиксирована и встроена в Интеллсист, то система аксиом специалистов
может варьироваться при вводе знаний в базе или запросах пользователя в разрешении
его проблем. В любом случае получается так, что специалисты говорят истинами,
которые формально именуются аксиомами. Но при этом необходимо помнить, что
некоторые аксиомы могут противоречить другим аксиомам (логическая ошибка), быть
зависимыми (ошибка избыточности) или содержать массу других ошибок.
5.1. Разделы информатической логики
Поскольку ИЛ должна определять все встроенные операции, она включает сотни
аксиом, которые целесообразно рассматривать по разделам, соответствующим каждой
группе операций. Здесь приведены явно около 500 аксиом, в реализации использовано
(неявно) несколько тысяч аксиом. Такие характеристики любой достаточно сложной
программы. Определение группы операций ясно из списка подразделов данного
раздела. Такое подразделение позволяет упрощено находить соответствующее место
для изучения или подсказки.
5.1.1. Логика одинаковости и атрибутов. В основу рассуждений о предметах,
явлениях и процессах положен принцип абстракции характеристик объектов, который
может быть формализован аксиоматически. Формализация начальной абстракции
связана с понятием одинаковости объектов. Понятие одинаковости является
фундаментальным [Марков А.А. «Теория алгорифмов», 1954, а также Марков84].
Ниже приведены аксиомы одинаковости, которые подразделяются на группы:
одинаковость понятий, одинаковость оформления с сохранением смысла понятий и
одинаковость с отрицанием, что составляет аксиоматику одинаковости в двоичной
логике. Многозначные логики могут определять свои аксиомы (по желанию
пользователя). Одинаковость объектов определяется по их атрибутам - внешним или
внутренним характеристикам. Внешние атрибуты обычно доступны пользователю, а
внутренние должны быть доступными через явное указание способа доступа. И те и
другие атрибуты поименованы явно, список и свойства их будут рассмотрены ниже.
Одинаковость распространяется на все объекты, например на константы, имена и
функции. Одинаковые константы - это совпадающие последовательности символов
(собственных имен объектов). Одинаковые несобственные имена - это возможно
различные последовательности символов, ссылающиеся на одинаковые собственные
имена. Одинаковые функции - это также несобственные имена, также ссылающиеся на
одинаковые собственные имена. Все несобственные имена могут ссылаться на
несобственные имена, которые при реализации операции сравнения могут оказаться
различными. Поэтому при сравнении несобственных имен необходимо сравнение
доводить до сопоставления корневых значений.
A1.1 [1]. (Х = Х) = истина.
Каждое понятие, обозначенное термином Х, одинаково само с собой, поскольку их
значения равны (принцип тождества объектов самим себе). В ЯПП для обозначения
одинаковости могут использоваться термины «эквивалентно», «равно», «равносильно»,
«тогда и только тогда» или «равнозначно».
A1.2 [2]. not (X = X) = ложь.
Обратное утверждение неправильно: каждое понятие не может отличаться от себя
самого. Относительно одинаковости верен принцип исключенного третьего. Каждые
два понятия либо равны (совпадают), либо не равны (не совпадают).
A1.3 [3]. (X /= Y) = not (X = Y).
Одинаковость отражается равенством. Наравне с равенством будем использовать и
неравенство. Аксиома 1.3 вводит дополнительное обозначение для понятия
неодинаковости и устанавливает соответствие двух операций сопоставления.
A1.4 [4]. (У = Х) => (Х = У).
Не имеет значения при сравнении на одинаковость с какого понятия начинается
сравнение. Коммутативность (перестановочность операндов местами) операции
сравнения любых понятий (например, числовых, символьных или логических) может
быть выражена именно этой аксиомой. Это обстоятельство будет использоваться в
алгоритмах лексикографического упорядочивания.
Уместно сделать общее замечание. Операция одинаковости (равенства)
применима для всех сортов, видов и типов данных и знаний. В математике выделяют
арифметическое равенство и эквивалентность (, ,  или ) логических формул, а
также и другие обозначения операции какого-либо сопоставления объектов на
одинаковость или равенство. В информатике понятия, например эквивалентности,
тождественности, равенства являются синонимами понятия одинаковости. Понятия
«сильно равно» или «почти равно» являются новыми, требующими определения. Они
будут значениями, получаемыми в многозначной логике.
A1.5 [5]. (Х = У) & (У = Z) => (X = Z).
Если один объект равен другому, а другой равен третьему, то первый и третий
объекты также равны. Эта аксиома определяет свойство операции одинаковости,
которое называется транзитивностью. Транзитивность операции сравнения (цепи
сравнения на равенство) является важным свойством, оно используется для
формирования правила элиминации термина из совокупности совместных фактов.
Одно из основных отличий ИЛ от МЛ состоит в принятии аксиомы одинаковости
значений функции и следствия из такой одинаковости:
A1.6 [6]. (F(X) = F(Y)) => (X = Y).
Самая вызывающая аксиома. Если значения операции (или функции) над двумя
понятиями одинаковы и операции не определены алгоритмами, то и сами понятия
одинаковы. Это утверждение не принимается в МЛ. Действительно, это противоречит
здравому смыслу, если иметь в виду функции, принимающие одинаковые значения
при различных аргументах из бесконечного множества значений. Если такие знания не
сообщены для Интеллсист, то действует аксиома A1.6. Она действует и в том случае,
когда для Интеллсист сообщены знания о многозначности функции. В математике
относятся с подозрением к таким ситуациям. Но дело в том, что ничего неизвестно о
функции. Если нам известно, что функция (операция) обладает таким свойством, то
это должно быть отражено в БЗ или запросе. В противном случае эта аксиома вступит
в противоречие с элементом БЗ, который утверждает о немонотонности функции.
Скорее всего, при наличии в БЗ или запросе сведений о двух разных значениях
аргумента, при которых функция принимает одинаковые значения, Интеллсист
выведет два искомых решения: X = x1 \/ X = x2. С такой ситуацией можно
встретиться, например, при вычислении корней квадратного уравнения.
Аксиома будет неправильной, если вместо функции подставить ее представление
конкретным выражением. Отсюда делается вывод, что вначале необходимо
произвести все подстановки, а затем применять правило, порожденное аксиомой A1.6.
Функция F в аксиоме A1.6 обобщает все не указанные в аксиоме функции, они могут
быть многоместными по числу аргументов. Следует иметь в виду, что аксиома верна
только для неизвестных параметров, представленных связными переменными
квантора. Для многоместных функций аксиома применяется только к таким
параметрам.
Аксиома же (X = Y) => (F(X) = F(Y)) не должна вызывать сомнений, она
заимствована из классической математики. При наличии аксиомы A1.6 эта аксиома
теряет смысл для информатики. Она может усложнить вывод решения, но ничего
нового внести не может. Относительно двух таких аксиомах надо заметить, что они
выражают некоторую общую схему, свойственную рассуждениям в математике.
Например, ничего не утверждается относительно функции, нет никакого конкретного
понимания свойств функции. Имеется в виду самое общее понимание того, что это
функция F. И еще, число аргументов у функции не оговаривается: их может быть
один, два, три и т.д.
Представленное выше правило для функций распространяется для функций
многих переменных. Например, считается верным следующее высказывание:
(F(X, Y) = F(A, B)) => (X = A & Y = B) для неопределенной функции F и
(F(X, Y) = F(A, B)) => (X = A & Y = B) \/ (X = B & Y = A) для коммутативной F.
Следующая аксиома касается применения скобок, которые могут оказаться
«лишними» и о которых редко упоминают в описаниях МЛ:
A1.7 [7]. F((Х)) => F(Х).
Скобки используются для указания порядка применения операций, если
использование порядка старшинства операций недостаточно. Устранение скобок
осуществляется при вводе формул (знаний) в БЗ. Это обстоятельство не изменяет
смысла понятий или результатов применения операций. Итак, когда скобки не
определяют последовательности операций, они могут опускаться.
A1.8 [8]. not (Х) = not Х.
A1.9 [9]. not (not (Х)) = Х.
Тот же смысл применения скобок, что и в аксиоме A1.7. Подразумевается, что здесь
рассмотрение относится к операции отрицания (отрицание отрицания), но и с другими
одноместными операциями можно поступать аналогично. Аксиома A1.9 имеет
дополнительную информацию о свойстве операции отрицания.
В соответствии с определением равенства, выведенного Лейбницем, можно
написать формально аксиомы:
A1.10 [10]. (X=Y) = для всякого Z(X in Z = Y in Z) - аналог аксиомы
объемности.
A1.11 [11]. (X=Y) = для всякого Z (Z in X = Z in Y) - аналог аксиомы
экстенсиональности.
Равенство объектов в основе своей определяется либо как совокупность равенств
составных частей объектов, либо как объекты, используемые в одинаковых ситуациях
или в одних и тех же контекстах. Имеются варианты формулировок для аксиомы
A1.10, например в виде: для всяких А, В, Х ((Х in А = Х in В) => (А = В)). Эта
формулировка также определяет следующее: множество можно определить своими
элементами.
Аксиомы одинаковости определяют операцию равенства непосредственно и в
контексте с логическими константами, скобками, функциями и логическими
операциями.
5.1.2. Логика бинарных истин. Логика истины представлена аксиомами
очевидности. Они определяют самые важные объекты ложь и истина сами по себе и в
связи с операциями отрицания и равенства. Первая аксиома утверждает истину в
качестве конечной цели любого логического исследования или решения логического
уравнения. Мера близости высказывания к истине также исследуется через истинные
высказывания (имеется в виду случай, когда пользователь по истинному
высказыванию сам определяет истинностное значение высказывания). Основная цель
всякого рассуждения состоит в поиске истины. Для ИЛ важна аксиома:
А2.1 [12]. истина.
Аксиома 2.1 очевидна, она является естественной. Она "определяет" истину своим
именем (и ничего более). Смысловое определение истины может зависеть от многих
факторов, определяемых исследователем или пользователем.
Логические константы определяются в различных логиках по-разному.
Показанная выше аксиома утверждает о рассмотрении теоремы - абсолютно
истинного утверждения. Примем следующий способ определения двух констант:
ложь и истина. Истина определена аксиомой А2.1, а ложь определяется так:
А2.2 [13]. not истина = ложь.
Это аксиома применения отрицания для константы истина. Применение
операции отрицания к истине приводит к получению ложного высказывания, а
соответствующая этому аксиома определяет константу ложь. Отрицание записывается
через операцию отрицания not («не», «неверно, что»). Следующая аксиома в некотором
смысле является обратной относительно предыдущей: not ложь = истина (как
следствие). Сопоставление логических констант уточняет определение самих констант.
Точное определение дано в аксиоме A2.1. Применение операции отрицания к ложному
высказыванию приводит к получению истинного высказывания. Две последние
аксиомы уточняют понятие истины. Операция отрицания определяется при
сопоставлении с другими объектами и операциями, которые также уточняют операцию
равенства. Для обозначения логических констант использованы слова ложь и истина.
Если это определено в БЗ, их синонимами являются соответственно false и true, 0 и 1 в
зависимости от контекста или от обозначений пользователя, который может ввести
свои синонимы.
Операция отрицания также определяется аксиоматически. Определение
отрицания дается через арифметическую операцию вычитания (К - значность логики):
А2.3 [14]. not X = (К - 1 - X).
Это определение используется во всех логиках и служит пояснением самой операции.
Для К = 2 подразумевается двузначная логика.
Логические переменные определяются традиционно. Имеется информатическое
толкование логических переменных и выражений. Эта мысль прослеживается везде. В
ИЛ она используется для построения правила, фиксирующего итоги положительного
логического вывода.
A2.4 [15]. (Х = истина) = Х.
Аксиома является толкованием логической переменной как представления знания о
логической вещи, обозначенной термином Х. В данном случае знание выражено
именем Х и его значением истина. Важно заметить, что данное толкование
относительно. Под именем Х можно понимать отрицание некоторых утверждений о
предмете, явлении или процессе («нет вещи», «событие не произошло», «возможно
пойдет дождь» или «процесс не пошел»). Эти примеры показывают, что конечное
толкование записей остается за пользователем, несмотря на то, что записи являются
результатами логического вывода истины. Логика истины включает аксиомы-
определения элементарного логического знания, задаваемого парой <имя, значение>.
Имя - это логическая переменная, значение - либо ложь, либо истина.
Следующая аксиома вводят условные обозначения для логических переменных,
принимающих логическое значение ложь.
A2.5 [16]. (Х = ложь) = not Х.
Аксиома толкования отрицания логической переменной как представления знания об
отрицании объекта или его свойства, обозначенными термином Х. Если логическая
величина представлена термином, то подразумевается, что его значением является
истина. Если логическая величина представлена термином с отрицанием, то
подразумевается, что его значением является ложь (см. А2.5).
5.1.3. Логика конъюнкций (совместности). Бинарная логика рассматривает 16
возможных логических операций. По естественным соображениям целесообразно
обозначить только 5. Остальные представляются через уже рассмотренные операции.
Например, 16-я операция «тождественная истинность» уже представлена константой
истина. Еще 5 рассматриваются через применение операции отрицания. Это первое
общее вступительное замечание. Второе замечание относится к числу операций,
используемых в вычислениях. Теоретически достаточна одна операция для
представления любых логических функций (штрих Шеффера). Для представления
знаний используются все 5 операций, этого требует прагматика и ЕЯ. Для ввода
знаний в базу используется полная базовая система функций, включающая операции
отрицания, конъюнкции и дизъюнкции. Следовательно, логика МЛВ определяет и
использует только эти операции. Для остальных операций из пяти имеются правила
для выражения их через базовые функции. Теперь рассмотрим операции конъюнкции
(настоящий раздел), дизъюнкции (следующий раздел) и смесь этих операций (пятый
раздел). Понятие совместности является также фундаментальным, как и понятие
альтернативы. Рассмотрим аксиомы совместности. В них используется термин
логического типа.
Аксиома коммутативности операции & («и») имеет вид:
A3.1 [17]. (Y & X) = (X & Y).
Эта аксиома применяется для упорядочивания операндов и сокращения числа
операций поиска одинаковых формул с конъюнкциями.
Аксиома избыточности знаний относительно операции & имеет вид:
A3.2 [18]. X & X => X.
Эта аксиома применяется также для упорядочивания операндов и сокращения числа
операций поиска одинаковых формул с дизъюнкциями.
Аксиома полного (глобального или локального) противоречия знаний имеет вид:
A3.3 [19]. X & not X => ложь.
Эта аксиома позволяет определять глобальные противоречия, если в БЗ в итоге ее
формирования получается значение ложь, и локальные противоречия, если в процессе
построения БЗ возникает значение ложь, не влияющее на общий результат
логического вывода. В последнем случае реализуется «чистка» или подмена
устаревших знаний.
Аксиома исключения формул, не содержащих знания относительно операции &,
имеет следующий вид:
A3.4 [20]. X & истина => X.
Аксиома стирания знаний при вводе заведомо ложных знаний имеет вид:
A3.5 [21]. X & ложь => ложь.
Две последние аксиомы «распространяют» мысль об избыточном знании или о
противоречии.
Аксиома свойства ассоциативности операции & имеет вид:
A3.6 [22]. X & (Y & Z) => (X & Y) & Z.
Операция совместности определяет совместные факты в решениях логических
уравнений.
5.1.4. Логика дизъюнкций (альтернативы). Альтернативы формализуются с
помощью логической операции дизъюнкции (операции «или»), поэтому логику
дизъюнкций можно называть также логикой альтернативы. Логика дизъюнкций
рассматривается как очередной раздел аксиоматики ИЛ. Приводимые ниже аксиомы
являются двойственными для аксиом логики конъюнкций, поэтому для приводимых
ниже аксиом комментарии не приводятся.
Аксиома коммутативности операции \/ («или») имеет вид:
A4.1 [23]. (Y \/ X) = (X \/ Y).
Аксиома избыточности знаний относительно операции \/ имеет вид:
A4.2 [24]. X \/ X => X.
Аксиома исключения полного знания (аксиома исключенного третьего для
высказываний без параметров) имеет следующий вид:
A4.3 [25]. X \/ not X => истина.
Закон исключенного третьего для величин работает как в МЛ. Если высказывание Х
имеет сложную структуру, то закон начинает работать как в ИН.
Аксиома погашения избыточного знания имеет вид:
A4.4 [26]. X \/ истина => истина.
Аксиома исключения формул, не содержащих знания относительно операции \/,
имеет вид:
А4.5 [27]. X \/ ложь => X.
Наконец, аксиома ассоциативности операции \/ имеет следующий вид:
A4.6 [28]. X \/ (Y \/ Z) => (X \/ Y) \/ Z.
Операция альтернативы определяет альтернативны совместных фактов в
решениях логических уравнений.
5.1.5. Логика конъюнкций-дизъюнкций (уровни интеллекта). Знание в базе
представляется альтернативами совместных фактов или утверждений о фактах.
Поэтому формализм логики альтернатив совместности весьма важен. Эта логика
двойственна логике совместности альтернатив. ЕЯ обычно использует первую логику,
поэтому двойственная логика не рассматривается.
Имеется несколько аксиом для построения правил элиминации операций. Ниже
даны некоторые аксиомы с такими свойствами. Число таких аксиом определяет
степень интеллектуальности Интеллсист. Выписать все подобные аксиомы не
представляется возможным в силу большого их количества и в силу временной
сложности работы МЛВ по алгоритмам, соответствующим этим аксиомам. Вначале
для иллюстрации рассмотрим простые варианты общих аксиом для двух логических
величин: ((X & Y) \/ not Y) => (X \/ not Y) или ((X & not Y) \/ Y) => (X \/ Y). Простые
примеры аксиом показывают на применение правил метода резолюций. В
предположении, что скобки используются для вычленения подформул, а логические
операции конъюнкции и дизъюнкции применяются для сокращения групповой записи
соответствующей операции над величинами, вся совокупность аксиом представляется
так:
n
n
n
A5.1 [29]. ((X & (\/ Yi)) \/ (& not Yi)) => (X \/ (& not Yi)),
i=1
i=1
i=1
n
n
n
A5.2 [30]. ((X & (\/ not Yi)) \/ (& Yi)) => (X \/ (& Yi)).
i=1
i=1
i=1
Здесь с логическими операциями связан индекс, который реализует перебор значений
с этой операцией в указанных пределах. Эти аксиомы являются аксиомами
сокращения в формулах некоторого числа термов. Каждое n определяет
соответствующее правило элиминации термов. Сложность соответствующего
алгоритма заключена в выборе n>0 и в поиске аналогичных конъюнкций-дизъюнкций.
Аксиомы реализованы в МЛВ.
При построении алгоритмов элиминации термов необходимо учитывать
следующее обстоятельство. Аксиомы A5.1 и A5.2 являются каноническими. Их
полное представление связано с комбинациями X, not X, Yi и not Yi. Эти термы могут
использоваться в формуле вперемежку. Наравне с высказываниями могут
рассматриваться их отрицания при соблюдении формы канонического правила.
Например:
(X & (Y \/ not Z) \/ (not Y & Z)) => (X \/ (not Y & Z)).
Правил подобного сорта большое число, определяемое конкретным значением n
и комбинациями X, not X, Yi и not Yi. Все такие правила укладываются (условно) в
формулировки аксиом A5.1 и A5.2.
Числом n определяется уровень интеллекта Интеллсист. Это можно толковать
следующим образом. В МЛВ закладывается некоторый набор аксиом типа A5.1 и
A5.2. Сразу заметим, что исходная запись аксиом работает для любых n, если она
используется явно так, как записана. Если же скобки в аксиомах раскрыть, то
сложность ее применения увеличивается, а реализация раскрытых формул аксиом
требует интеллекта соответствующего порядка. Некоторым утешением может быть
положение, состоящее в том, что на практике редко встречаются сложные выражения,
аналогичные тем, которые входят в аксиомы A5.1 и A5.2.
Методами повышения уровня интеллекта являются следующие. Первый метод
состоит в добавлении для каждой конъюнкции «множителя» X\/not X так, чтобы
каждая конъюнкция включала все переменные или их отрицания. Тогда имеющиеся
правила вывода приведут так преобразованное выражение к искомому результату. Для
примера рассмотрим выражение X & (Y \/ not Z) \/ (not Y & Z), которое раскрывается
в формулу X & Y \/ X & not Z \/ not Y & Z. Добавление «множителей» приведет к
следующей формуле: X & Y & Z \/ X & Y & not Z \/ X & Y not Z \/ X & not Y not Z \/ X
& not Y & Z \/ not X & not Y & Z, что равно X & (Y & Z \/ Y & not Z \/ not Y not Z \/
not Y & Z) \/ not X & not Y & Z. Выражение в скобках равно истина, тогда получаем
X \/ not X & not Y & Z. Применяя аксиому А5.1, получим следующее окончательное
выражение: X \/ not Y & Z. Метод предусматривает перебор конъюнктов. Второй
метод, метод интерпретации состоит в вычислении значений для всех комбинаций
величин и построение по таблице полученных значений конечного выражения. Метод
является трудоемким и требует предварительных изучения и оценки сложности.
Третий метод, метод поиска по таблицам, связан с запоминанием стандартного набора
выражений и результатов преобразования (правила подстановки). Далее, по таблице
реализуется поиск вхождений исследуемых выражений в таблицу и заменой
вхождения результатами по стандартной таблице. Метод поиска также является
трудоемким и требует исследования. Имеются самые разнообразные приемы
кодирования таблиц и быстрого поиска по ней необходимых преобразований.
Указанные методы необходимо распространить на случай многозначной логики.
Здесь сложность увеличивается значительно, нежели сложность в двухзначной логике
с ростом числа переменных n.
Примером второго уровня интеллекта может служить запись:
А = В или В = С или С = А.
Аксиома дистрибутивности операций & и \/ имеет вид:
A5.3 [31]. (X & (Y \/ Z)) => (X & Y \/ X & Z).
Логика предикатов первого порядка. Логика предикатов первого порядка
используется в прологовых системах. Она строится на основе аксиом первых пяти
разделов с добавлением аксиом определения двух классических кванторов.
Практическое назначение кванторов можно пояснить так. Квантор всеобщности
означает весьма сильное утверждение относительно подкванторного предиката: он
должен быть истинным на всей области значений связной переменной. Квантор
существования означает утверждение о наличии хотя бы одного значения связной
переменной, при которой истинен предикат.
Практическая интерпретация кванторов состоит в следующем. В записи задания
имеются переменные. Часть переменных называются исходными, они заведомо
ссылаются на заданные значения. Заданные каким-либо образом значения вместе с
именами исходных переменных называются заданными фактами. Часть переменных
называются искомыми, относительно которых ставится задача поиска их значений.
Найденные значения вместе с именами искомых переменных называются новыми
фактами. Часть переменных может оказаться неопределенными, им не задаются
исходные значения и не ищутся их значения. Такие переменные фигурируют в
выражениях при осуществлении аналитических выкладок. Статус неопределенных
переменных должен определиться в последствии, после определения назначения
результатов аналитических выкладок. Это определение произойдет либо при
формулировке нового задания, либо сами результаты будут приняты окончательными.
Первая аксиома о верности знаний, выражаемых произвольным предикатом P с
произвольным значением аргумента Х из области определения этой переменной,
определяет свойства квантора всеобщности. Она указывает путь элиминации квантора
всеобщности (операция all является синонимом операции для всякого). Смысл этого
квантора состоит в том, что он принимает значение истина, если P будет истинным для
всех аргументов Х.
A6.1 [32]. для всякого X (P(X)) => P(Xo),
Xo - новая переменная, значение которой получается в процессе логического вывода,
или оно заданно пользователем в виде перечня значений для проверки. В СП квантор
переводится в цикл.
Вторая аксиома о существовании знания, выраженного предикатом P и
некоторым значением аргумента - функции (Сколема) некоторого другого аргумента
(операция exists является синонимом операции существует). Такие функции
именуются функциями Сколема [Клини73].
A6.2 [33]. существует (X P(X)) => P(Xo( )),
где Xo( )- новая функция, значение которой получается в процессе логического вывода
или оно заданно косвенно пользователем. В СП квантор переводится в цикл поиска
значения свободной переменной, при которой P принимает значение истина.
Аксиомы для отрицания квантора всеобщности или квантора существования
имеют вид:
A6.3 [34]. not для всякого X (P(X)) = существует X (not P(X))
A6.4 [35]. not существует X (P(X)) = для всякого X (not P(X))
Для связных переменных справедливы правила замены их имен на другие имена,
не совпадающие с именами всех переменных, используемых в подкванторном
выражении. Эти правила определяются следующими аксиомами:
A6.5 [36]. для всякого X (P(X)) = для всякого Y (P(Y)),
A6.6 [37]. существует X (P(X)) = существует Y (P(Y)).
Из аксиомы А6.6 следует возможность перестановки связных переменных
квантора, которые имеют тип абстрактный:
существует X, Y (P(X, Y)) = существует Y, X (P(Y, X)),
для всякого X , Y (P(X, Y))= для всякого Y, X (P(Y, X)).
Такие переобозначения не связаны с перестановкой кванторов, которые являются
недопустимыми для типизированных связных величин:
существует X(для всякого Y(P(X, Y)))= для всякого Y(существует X(P(X,
Y))),
для всякого X(существует Y(P(X, Y)))= существует Y(для всякого X(P(X,
Y))).
Работа программы будет иметь разные результаты после производства перестановки.
Замечание. Указанные выражениями являются аксиомами, используемыми в алгоритмах синтеза
программы. Они не переномерованы здесь.
Для абстрактных связных переменных такие аксиомы входят в состав исчисления ИЛ.
А6.7 [38]. существует X, Y (P(X, Y)) = существует Y, X (P(X, Y)),
А6.8 [39]. для всякого X , Y (P(X, Y))= для всякого Y, X (P(X, Y)).
Следующие две аксиомы разрешают вынос независимого от связной переменной
выражения из-под квантора:
A6.9 [40]. для всякого X (A) = A.
A6.10 [41]. существует X (A) = A.
Объединение кванторов существования и всеобщности с операцией И и ИЛИ
определяются такими аксиомами:
А6.11 [42]. существует X (P(X)) или не существует Y (P(Y)) = истина,
А6.12 [43]. существует X (P(X)) или существует Y (не P(Y)) = истина,
А6.13 [44]. существует X (P(X)) или не для всякого Y (P(Y)) = истина,
А6.14 [45]. существует X (P(X)) или для всякого Y (не P(Y)) = истина,
А6.15 [46]. существует X(P(X)) или существует Y(P(Y)) = существует X(P(X)),
А6.16 [47]. существует X (не P(X)) или существует Y (не P(Y)) =
существует X (не P(X)),
А6.17 [48]. для всякого X (не P(X)) или для всякого Y (не P(Y)) =
для всякого X (не P(X)).
А6.18 [49]. для всякого X (P(X)) или для всякого Y (P(Y)) =
для всякого X (P(X)).
А6.19 [50]. для всякого X (P(X)) и не для всякого Y (P(Y)) = ложь.
А6.20 [51]. для всякого X (P(X)) и для всякого Y (не P(Y)) = ложь.
А6.21 [52]. для всякого X (P(X)) и не существует Y (P(Y)) = ложь.
А6.22 [53]. для всякого X (P(X)) и существует Y (не P(Y)) = ложь.
А6.23 [54]. для всякого X (P(X)) и для всякого Y (P(Y)) = для всякого X (P(X)).
А6.24 [55]. не для всякого X (P(X)) и не для всякого Y (P(Y)) =
не для всякого X (P(X)).
А6.25 [56]. существует X (P(X)) и существует Y (P(Y)) = существует X (P(X)),
А6.26 [57]. существует X (не P(X)) и существует Y (не P(Y)) =
существует X (не P(X)),
А6.27 [58]. не существует X (P(X)) и не существует Y (P(Y)) =
не существует X (P(X)),
А6.28 [59]. не существует X (не P(X)) и не существует Y (не P(Y)) =
не существует X (не P(X)),
Здесь выписаны не все аксиомы, так как они частично повторяют уже приведенные
аксиомы, а частично идентичны приведенным с точностью до перестановки операндов
для операций И и ИЛИ. Итак, в зависимости от свойств Х и Y эти выражения могут
быть ложными или истинными. Интеллсист разделяет случаи, когда типы связных
переменным одинаковы или абстрактны и когда их типы различны. В одних случаях
(связные величины абстрактны или одинакового типа) законы действуют как в
математической логике, в других - как в интуиционистской логике, тогда строится
программа.
Следующие аксиомы связывают кванторы с логическими константами:
A6.29 [60]. для всякого X (истина) = истина
A6.30 [61]. для всякого X (ложь) = ложь
A6.31 [62]. существует X (истина) = истина
A6.32 [63]. существует X (ложь) = ложь
A6.33 [64]. для всякого X: логический (X) = ложь
A6.34 [65]. существует X: логический (X) = истина
A6.35 [66]. для всякого X (X>0) = ложь, для числовых,
A6.36 [67]. существует X: тип (X>0) = X>0,
для положительных числовых типов и всех отношений.
Связь кванторов с логическими операциями определяются такими аксиомами:
A6.37 [68]. для всякого X (P(X) & Q(X)) =
(для всякого X (P(X)) & для всякого X (Q(X))).
A6.38 [69]. существует X (P(X) \/ Q(X)) =
(существует X (P(X)) \/ существует X (Q(X))).
A6.39 [70]. существует X (P(X) => Q(X)) =
(существует X (not P(X)) \/ существует X (Q(X))).
Аксиома элиминации альтернатив предиката от связных переменных квантора
всеобщности при условии, что предикат не имеет аналитического выражения:
A6.40 [71]. P(X) \/ not P(Y) \/ not (X = Y) => истина.
Аксиома элиминации совместности предиката от связных переменных квантора
всеобщности при условии, что предикат не имеет аналитического выражения:
A6.41 [72]. P(X) & not P(Y) & (X = Y) => ложь.
Аксиома замены совместности предикатов при условии, что предикат не имеет
аналитического выражения:
A6.42 [73]. P(X) & not Q(Y) = > (P(X) = Q(Y)).
Аксиома индукции по перечислимым элементам представляет собой образец для
построения и использования правил распространения знаний с экземпляров на все
утверждения, выражаемые предикатом P. Этот предикат может быть любым
относительно его конкретного или общего представления и относительно числа
аргументов. Индукцией охвачен только один аргумент. Остальные могут быть
охвачены индукцией только при отдельном рассмотрении.
A6.43 [74]. P(0) & для всякого X (для всякого Y (P(X) & (Y = next(X) => P(Y))))
=> P(Z).
Аксиома индукции по перечислимым элементам представляет собой образец для
построения и использования правил распространения знаний с экземпляров на все
утверждения, выражаемые предикатом P. Этот предикат может быть любым
относительно его конкретного или общего представления и относительно числа
аргументов. Индукцией охвачен только один аргумент. Остальные могут быть
охвачены индукцией только при отдельном рассмотрении.
Некоторые применения исчислений с кванторами полезны в качестве подсказки
при построении условий поиска решений. Если ставится задача поиска единственного
решения, то необходимо применять определение требования на единственность:
существует! X (A(X)) = существует X (для всякого Y (A(Y) = (X = Y))).
При этом можно в результате логического вывода получить опровержение
относительно существования единственного решения.
Если ставится задача поиска нескольких решений, то пишется утверждение
(поиск двух решений):
существует X (P(X) & для всяких X,Y (P(Y) => (X = Y) & P(Z) => (X = Z))).
Имеется еще несколько аксиом относительно предикатов общего вида и
конкретного заданного вида. Эти аксиомы представлены по различным разделам,
поскольку аксиоматическое определение операций должно быть связано и с
кванторами. Например, следующий раздел посвящен определению свойств функций
вообще и предикатов в частности.
Два закона важны для квалификации исчислений: закон исключенного третьего
и закон противоречий. Принятие или отвержение первого закона квалифицирует на
логику математическую и интуиционистскую. Вообще говоря, законы приемлемы в
простом виде: A или не A, A и не A. Но они становятся сомнительным в смысле
истинности, когда А является сложным выражением с квантором:
существует X: целое (X**2 = 2) или не существует Y: вещественное (Y**2 = 2)
= ложь,
существует X: вещественное (X**2 = 2) или не существует Y: целое (Y**2 = 2)
= истина.
Можно привести и другие примеры, которые должны привести к программе
выяснения результата.
5.1.7. Логика отношений. Имеется достаточное число свойств операций
отношения (или предопределенных предикатов отношения), которые должны
отражаться в аксиоматике информатики, так как отношения должны быть встроены в
процессор МЛВ, если известны свойства отношений (предикатов). Рассмотрим
последовательно все аксиомы, которые относятся к девяти свойствам отношения. При
описании отношения (логической функции) такие свойства должны указываться явно
или аксиоматически. Аксиомы для свойств отношений условны, если не выяснено, что
отношение обладает таким-то свойством или не обладает. Например, если функция
конструируется, то заведомо неясно какими свойствами она обладает. Заметим, что в
языке Лейбниц не допустимы комбинации отношений следующего вида.
Ошибочными являются записи X < Y < Z, которые необходимо расшифровать путем
использования логических операций. В данном примере запись расшифровывается
так: X < Y and Y < Z.
Вначале определим общие свойства предиката P, выражающего некоторое
отношение с заведомо определенным свойством.
Аксиома рефлексивности:
A7.1 [75]. P(X, X) => истина.
Она выражает факт того, что для рефлексивного отношения верно указанное
соотношение.
Аксиома антирефлексивности противоположна аксиоме А7.1 с тем же
значением, что и для аксиомы
A7.1: A7.2 [76]. P(X, X) => ложь.
Аксиома симметричности или коммутативности:
A7.3 [77]. P(Y, X) => P(X, Y).
Аксиома антисимметричности отношения противоположна аксиоме A7.3:
A7.4 [78]. not (P(Y, X) => P(X, Y)).
Аксиома асимметричности отношения, которая противоположна аксиоме A7.4:
A7.5 [79]. P(Y, X) => not P(X, Y).
Аксиома транзитивности отношения:
A7.6 [80]. P(X, Y) & P(Y, Z) => P(X, Z).
Аксиома антитранзитивности отношения противоположна аксиоме A7.6:
A7.7 [81]. not (P(X, Y) & P(Y, Z) => P(X, Z)).
Аксиома связности отношения:
A6.40. P(X, Y) \/ P(Y, X) \/ not (X = Y).
Аксиома монотонности отношения:
A7.8 [82]. P(F(X, Z), F(Y, Z)) & P(F(Z, X), F(Z, Y)) => P(X, Y).
Данные аксиомы определяют правила решения логических уравнений,
включающих аналитически неопределенные предикаты. Замена неопределенных
предикатов определенными (в последующем запросе) могут привести к другому
результату, когда эти аксиомы не применяются. Свойства предикатов учитываются
при формировании аксиом для конкретных аналитически определенных (или
встроенных) предикатов. Многопараметрические предикаты и правила для них ничем
не отличаются от правил для функций, так как в ИЛ нет формальных синтаксических
различий между функциями и предикатами.
Рассмотрим конкретные предикаты, обозначенные в таблице операций
отношениями. Базовой операцией отношения является операция меньше, остальные
операции отношения выражаются через нее и операцию равенства (одинаковости).
Перечисленные аксиомы для предикатов иллюстрируются аксиомами для операции
отношения «меньше».
Аксиома определения операции «меньше»:
A7.9 [83]. not (X < X).
Аксиома элиминации переменной из цепи неравенств:
A7.10 [84]. (X < Y) & (Y < Z) => (X < Z).
Аксиомы для операций неравенства (при базовой операции <):
А7.11 [85]. (X >= Y) => not (X < Y);
А7.12 [86]. not (X >= Y) => (X < Y);
А7.13 [87]. (X > Y) => not (X < Y) & not (X = Y);
А7.14 [88]. not (X > Y) => (X < Y) \/ (X = Y);
А7.15 [89]. (X <= Y) => (X < Y) \/ (X = Y);
А7.16 [90]. not (X <= Y) => not (X < Y) & not (X = Y).
Для сокращения общей емкости работы МЛВ вместо шести операций отношения
в процессе логического вывода рассматриваются две базовые (равенство и меньше), а
остальные определяются через базовые операции. Следует ожидать суммарное
уменьшение объема БЗ и времени работы Интеллсист. При оформлении (или печати)
результата могут вводиться исключенные операции Интеллсист.
К «отношениям» можно отнести логические операции над логическими
величинами, не рассмотренные ранее в качестве аксиом. Они определяются
аксиоматически так.
А7.17 [91]. (X => Y) => (not X \/ Y)
А7.18 [92]. not (X => Y) => (X & not Y)
А7.19 [93]. (X << Y) => (X \/ not Y)
А7.20 [94]. not (X << Y) => (not X & Y)
А7.21 [95]. (X = Y) => (X & Y) \/ (not X & not Y)
А7.22 [96]. not (X = Y) => (not X & Y) \/ (X & not Y)
А7.23 [97]. (X xor Y) => (not X & Y) \/ (X & not Y)
А7.24 [98]. not (X xor Y) => (X & Y) \/ (not X & not Y)
А7.25 [99]. not (X \/ Y) => (not X & not Y)
А7.26 [100]. not (X & Y) => (not X \/ not Y)
В качестве базовых операций приняты также операции not (неправильность
факта), & (совместность фактов) и \/ (альтернативность фактов). Эти операции
представляют полную логическую систему, поскольку любая логическая двузначная
функция может быть представлена с помощью только таких операций. Другие логики
рассмотрены в разделе 5.1.16. Там определяются несколько отличные от
рассмотренных подходов и аксиом.
P(X) \/ P(F(X)) => P(X) \/ X = F(X) – формулы требуют исследований.
5.1.8. Логика предикатов высших порядков. Одной из важных особенностей
ИЛ (в отличие от классических логик) является использование предикатов высших
порядков наравне с предикатами первого порядка. В классических логиках уделяется
крайне мало внимания логикам такого сорта, что приводит к появлению парадоксов.
Логика предикатов высоких порядков указывает способы определения подходящей
иерархии логик для введения функциональных переменных, зависящих от простых
переменных и от функциональных переменных некоторого порядка. Операция
введения логики высших порядков определяет бесконечную подходящую иерархию
логик. Практика решения конкретных проблем укажет на тот конкретный уровень
иерархии, который необходим для решения проблемы или класса проблем. Общий
способ определения дан в форме следующих аксиом. Они аналогичны аксиомам А6:
A8.1 [101]. для всякого F (Q(F(X))) => (Q(Fo( )(X))),
где Fo( ) - любое функциональное понятие, задаваемое пользователем либо явно, либо
указанием типа как множества допустимых значений. Аксиома верности знаний,
выражаемых через произвольную функцию (в частности предикат) F с произвольным
значением функционального (или предикатного) аргумента ( ) из области определения
этой переменной. Область определения переменной F может выражаться множеством
значений некоторого простого функционального (или предикатного) типа или
некоторого составного (например, структурного) типа. Аксиома указывает путь
элиминации квантора всеобщности любого порядка.
A8.2 [102]. существует F (Q(F(X))) => (Q(Fo(X))),
где Fo - любое функциональное понятие (или функция Сколема высокого порядка),
полученное в процессе логического вывода или заданное пользователем. Аксиома
существования знания, выраженного произвольной функцией (в частности
предикатом) Q и некоторым значением аргумента - функции F некоторого другого
аргумента (простого или функционального типа). Такие функции именуются, как уже
было сказано, функциями Сколема [Клини73]. Эта и последующие аксиомы
аналогичны аксиомам для кванторов логики предикатов первого порядка:
Аксиомы для отрицания кванторов всеобщности и существования имеет вид:
A8.3 [103]. not для всякого F (Q(F(X))) => существует F (not Q(F(X))),
A8.4 [104]. not существует F (Q(F(X))) => для всякого F (not Q(F(X))).
Для связных функциональных переменных справедливы правила замены их имен
на другие имена, не совпадающие с именами всех функциональных и простых
переменных, используемых в подкванторном выражении. Эти правила определяются
следующими аксиомами (см. также А6.5 и А6.6):
A6.5 [105]. для всякого F (Q(F(X))) = для всякого G (Q(G(X))),
A6.6 [106]. существует F (Q(F(X))) = существует G (Q(G(X))).
Аксиомы для индукции имеет вид:
A8.7 [107]. F(0)(V) & для всякого X (для всякого Y (F(X)(V) &
(Y = next X) =>F(Y)(V))) => F(Z)(V)
Относительно аксиомы индукции верны замечания, которые были даны для
аксиомы A6.5.
5.1.9. Логика арифметики. Конечно, логика высказываний относительно
проста. Сложнее обстоит дело с логикой арифметики. Ниже рассмотриваются
некоторые арифметические операции, они перечислены в начале главы. Не все
операции являются арифметическими в прямом понимании этого слова. Но условимся
о том, что все операции считаются арифметическими. Последовательность
рассмотрения такова: next, pred, abs, +, -, *, /, div, mod, **.
Важное обстоятельство. Имеется два способа восприятия знания. Знание результат логического вывода и знание - программа, построенная по логическому
выводу. То и другое важно и реализуемо. Программа, или алгоритмическое знание,
либо вводится в ВМ готовой к выполнению (ответственность на программисте), либо
строится Интеллсист (ответственность на системе). При этом возникают вопросы, на
которые необходимо ответить. Выдача текста Х = 0 и программирование с Х = 0? На
оба вопроса даются положительный ответ. Исключительная ситуация о включении
или не включении Х = 0 в ответ или в программу? Этот вопрос подразумевает
альтернативные ответы. Либо проверка Х = 0 загружает программу по времени, либо
операционная система указывает на исключительную ситуацию - вот в чем суть
альтернативы. Указанные обстоятельства возникают часто из-за ограниченности
разрядной сетки памяти ВМ.
Напоминаем, что константы нуля и единицы должны определять
арифметические операции. Нули и единицы различных типов данных приведены в
таблице:
Нули и единицы определяются аксиоматически, сами аксиомы относятся ко
встроенным в Интеллсист знаниям.
Арифметические операции следующего и предыдущего могут применяться к
любым перечислимым типам (целым, логическим, символьным и конечномножественным).
Тип нуля
Числовой
Числовая
Логический
Логическая
Символьный
Строковый
Множественный
Множественная
Цепной, адресный
Программный
Обозначение
1
0
0
1
0
0
0
1
0
0
Операции
ложь
истина
«»
«»
null
unit
nil
skip
Операция «следующий» определяется такими аксиомами:
А9.1.1 [108]. not (next(X) = 0),
А9.1.2 [109]. not (next(maxnumber(X)) = (maxnumber(X) + 1),
А9.1.3 [110]. next(X) = X + 1 или (next X = X + 1 (mod n) & X < maxnumber(X)),
А9.1.4 [111]. (next(X) = next(Y)) => (X = Y) (& X < maxnumber(X)),
А9.1.5 [112]. F(next(X)) = F((X+1) mod n) & X < maxnumber(X),
А9.1.6 [113]. (next(X) < next(Y)) => (X < Y & X < maxnumber(X) & Y <
maxnumber(Y)),
А9.1.7 [114]. F(next(X + Y)) = F(X + next(Y)) & Y < maxnumber(Y) или
F(next(X + Y)) = F(next(X) + Y) & X < maxnumber(X),
А9.1.8 [115]. F(X * next(Y)) = F(X * Y + X),
А9.1.9 [116]. F(X ** next(Y)) = F(X ** Y * X),
А9.1.10 [117]. next(pred(X)) = X (с проверкой на ошибку).
Операция «предшествующий» определяется такими аксиомами:
А9.2.1 [118]. not (pred(0) = - 1),
А9.2.2 [119]. not (pred(maxnumber(X) + 1) = maxnumber(X)),
А9.2.3 [120]. pred(X) = X – 1 или pred X = X - 1 (mod n) & not(X <= 0),
А9.2.4 [121]. pred(X) = pred(Y) = (X = Y & (not(X < 0) & not(X = 0)),
А9.2.5 [122]. F(pred (X)) = F((X-1) mod n) & X < maxnumber(X),
А9.2.6 [123]. (pred(X) < pred(Y)) = (X < Y & (not(X < 0) & not(X = 0) \/
not(Y < 0) & not(Y = 0))),
А9.2.7 [124]. F(pred(X + Y)) = F(X + pred(Y)) & not(Y < 0) & not(Y = 0) или
F(pred(X + Y)) = F(X + pred(Y)) & not(X < 0) & not(X = 0),
А9.2.8 [125]. P(X * pred(Y)) = P(X * Y - X),
А9.2.9 [126]. P(X ** pred(Y)) = P(X ** Y / X),
А9.2.10 [127]. pred(next(X)) = X (с проверкой на ошибку).
Все аксиомы А9.1 и А9.2 симметричны. Можно аксиоматически определить
смеси операций «предшествующий» и «следующий».
Операция модуля определяется аксиомами:
А9.3.1 [128]. (abs(X) = X) & (not(X < 0) \/ (abs(X) = -X & X < 0),
А9.3.2 [129]. (abs(- X) = X) & (not(X < 0)) \/ (abs(- X) = -X) & X < 0,
А9.3.3 [130]. abs (- X) = abs (X),
А9.3.4 [131]. abs(X * Y) = abs(X) * abs(Y),
А9.3.5 [132]. abs(X / Y) = abs(X) / abs(Y),
А9.3.6 [133]. abs(X ** Y) = abs (X) ** Y.
Операция сложения определяется следующими аксиомами:
А9.4.1 [134]. X + 0 = X,
А9.4.2 [135]. + X = X,
А9.4.3 [136]. (X + Z = Y + Z) => X = Y,
А9.4.4 [137]. (X + (- Y)) = (X - Y),
А9.4.5 [138]. (X - (- Y)) = (X + Y),
А9.4.6 [139]. L * X + K * X = (L + K) * X.
А9.4.7 [140]. Y + X = X + Y,
А9.4.8 [141]. L + (X + Y) = (L + X) + Y.
А9.4.9 [142]. L * (X + Y) = (L * X) + (L * Y).
Операция вычитания определяется следующими аксиомами:
A9.5.1 [143]. - 0 = 0,
А9.5.2 [144]. (X = - 0) = (X = 0),
А9.5.3 [145]. (- X = 0) = (X = 0),
А9.5.4 [146]. X - 0 = X,
А9.5.5 [147]. 0 - X = - X,
А9.5.6 [148]. X - X = 0,
А9.5.7 [149]. - (- X)) = X,
А9.5.8 [150]. (X - Z = Y - Z) = (X = Y),
А9.5.9 [151]. (X - Y = X – Z) = (Y = Z),
А9.5.10 [152]. X - (- Y)) = X + Y.
Операция умножения определяется следующими аксиомами:
А9.6.1 [153]. 0 * X = 0,
А9.6.2 [154]. 1 * X = X,
A9.6.3 [155]. Y * X = X * Y,
А9.6.4 [156]. (X * Z = Y * Z) => (X = Y & not (Z = 0))
А9.6.5 [157]. X * (- Y) = - (X * Y),
А9.6.6 [158]. (-X) * Y = - (X * Y),
А9.6.7 [159]. (-X) * Y = - (X * Y),
А9.6.8 [160]. (X * Y = 0) => (X = 0 \/ Y = 0),
А9.6.9 [161]. (X * Y < 0) => ((X > 0 & Y < 0) \/ (X < 0 & Y > 0)),
А9.6.10 [162]. X * Y + X * Z = X * (Y + Z),
А9.6.11 [163]. Y * X = X * Y.
Операция деления определяется следующими аксиомами:
А9.7.1 [164]. 0 / X = 0 & not (X = 0),
А9.7.2 [165]. X / 1 = X,
А9.7.3 [166]. X / X = 1 & not (X = 0),
А9.7.4 [167]. (X / Z = Y / Z) => (X = Y & not (Z = 0))
А9.7.5 [168]. X / (- Y) = - (X / Y),
А9.7.6 [169]. X / Y = 0 => (X = 0 & not (Y = 0)),
А9.7.7 [170]. X / Y < 0 => ((X > 0 & Y < 0) \/ (X < 0 & Y > 0)),
А9.7.8 [171]. (X / Y = X / Z) => (Y = Z & not (Z = 0)),
А9.7.9 [172]. (-X) / Y = - (X / Y).
Логика арифметики данных в таблице операций считается зафиксированной в
Интеллсист, которая знает арифметические операции над всеми применимыми
данными и может их интерпретировать при задании конкретных «чисел». Если у
пользователя возникает желание по исследованию этих же операций, то ему
необходимо ввести «новые» типы и операции с данными этих типов. Слово «новые»
упомянуто в кавычках для того, чтобы показать мнимость введения нового типа. По
существу это способ создания нового контекста для операции и «устранение»
имеющегося контекста этой же операции.
Операция получения
следующими аксиомами:
результата
целочисленного
деления
определяется
целочисленного
деления
определяется
А9.8.1 [173]. 0 div X = 0 & not(X=0),
А9.8.2 [174]. X div X = 1 & not(X = 0),
А9.8.1 [175]. 1 div X = 0 & not(X = 0),
А9.8.1 [176]. X div 1 = X.
Операция получения
следующими аксиомами:
остатка
от
А9.9.1 [177]. 0 mod X = 0 & not(X=0),
А9.9.2 [178]. X mod X = 0 & not(X = 0),
А9.9.3 [179]. 1 mod X = 1 & not(X = 0),
А9.9.4 [180]. X mod 1 = 0.
Операция возведения в степень ** определяется следующими аксиомами:
А9.10.1 [181]. X ** 0 = 1 & not(X = 0),
А9.10.2 [182]. X ** 1 = X & not(X = 0),
А9.10.3 [183]. 1 **X ** = 1,
А9.10.4 [184]. X ** next(Y) = X ** Y * X, см. А9.1.9 (повтор)
А9.10.5 [185]. X ** Y = exp(Y * log(X)),
А9.10.6 [186]. (X ** Y < 0) => (X < 0 \/ Y < 0 & 1 < X \/ 0 < Y & 0 < X & X < 1),
А9.10.7 [187]. (X * А = 0 & А <> 0) => (X = 0).
Алгебра для равенств рассматривается как операция отношения. МЛВ имеет
процессор алгебры решения алгебраических линейных уравнения относительно
искомых величин.
5.1.10. Логика множеств (операция принадлежности in). Понятие множества
играет важную роль в решении практических проблем. Логика множеств взята из
[Френкель66] с незначительными изменениями, связанными с уже введенными
аксиомами для операций над множествами. Операции in и not in являются главными
теоретико-множественными операциями, которые определяются с помощью других
операций. В ИЛ введены две константы null (нуль-множество) и unit (единичное или
универсальное множество, множество всех множеств).
Аксиома определения нуль-множества имеют вид:
А10.1 [188]. для всякого Х (not (X in null)),
А10.2 [189]. для всякого Х (X not in null),
А10.3 [190]. {X: ложь} = null.
Аксиома определения единичного или универсального множества имеют вид:
А10.4 [191]. для всякого Х (X in unit),
А10.5 [192]. для всякого Х (not (X not in unit)),
А10.6 [193]. {X: истина} = unit.
Аксиомы определения множества из одного элемента имеют вид:
А10.7 [194]. {X: X = A} = {A},
А10.8 [195]. X in {X}.
Аксиома определения множества из двух элементов имеет вид:
А10.9 [196]. {A, B} = {X: X = A \/ X = B}.
Аксиома определения множества из двух упорядоченных элементов имеет вид:
А10.10 [197]. пара(A, B) = {{A}, {A, B}}.
Аксиомы определения степени множества имеют вид:
А10.11 [198]. exp(A) = {X: X <= A}. = 2**A,
А10.12 [199]. log P(А) = {A: для всякого X, Y (A = sum(X*Y) &
X in P(A) & Y in P(A))}
Аксиома выявления предиката и связи операции принадлежности с предикатом
имеет вид:
А10.13 [200]. X in {Y:P(Y)} => P(X).
Система аксиом с теоретико-множественными операциями представляется так.
Аксиомы для сложения и вычитания с константными множествами имеют вид:
А10.14 [201]. X + null = X,
А10.15 [202]. X + unit = unit,
А10.16 [203]. unit - X = unit,
А10.17 [204]. X - null = X.
Операции над множествами обозначаются арифметическими операциями,
которые определяются аксиоматически. Одновременно определяется и отрицание
вхождения элемента результата выполнения операции над двумя операндами. Далее
рассматривается система аксиом для этих операций.
Объединение множеств (знак + используется вместо литературного обозначения
) приводит к множеству, состоящему из элементов множеств-слагаемых:
А10.18 [205]. Х in (А + В) => Х in А \/ Х in B,
А10.19 [206]. not Х in (А + В) => not Х in А & not Х in B.
Пересечение множеств (знак * используется вместо литературного обозначения
) приводит к множеству, состоящему из элементов множеств-сомножителей,
одновременно входящих в оба множества:
А10.20 [207]. Х in (А * В) => Х in А & Х in B,
А10.21 [208]. not(Х in (А * В)) => not (Х in А) \/ not (Х in B).
Разность множеств (знак \ совпадает с литературным обозначением) приводит к
множеству, состоящему из элементов уменьшаемого множества, но не входящих
одновременно в вычитаемое множество:
А10.22 [209]. Х in (А \ В) => Х in А & not (Х in B),
А10.23 [210]. not (Х in (А \ В)) => Х in А & not (Х in B).
Симметричная разность множеств (по сравнению с литературным обозначением
имеется несовпадение, исключена точка над знаком -) приводит к множеству,
состоящему из элементов обеих множеств, не входящих одновременно в них:
А10.24 [211]. Х in (А - В) => (Х in А & not(Х in B)) \/ (not(Х in А) & Х in B),
А10.25 [212]. not(Х in (А - В)) => (not(Х in А) \/ Х in B)&(Х in А \/ not(Х in B)).
Обратная разность (знак / совпадает с литературным обозначением) приводит к
множеству, состоящему из элементов вычитаемого множества, но не входящих
одновременно в уменьшаемое множество:
А10.26 [213]. Х in (А / В) => not (Х in А) & Х in B,
А10.27 [214]. not Х in (А / В) => Х in А \/ not (Х in B).
Декартовое произведение двух множеств (обозначение ** используется вместо
литературного обозначения ) образует множество пар, каждая состоящая из
элементов сомножителей в порядке следования сомножителей:
А10.28 [215]. A ** B = {(Х, Y): & X in A & Y in B}.
А10.29 [216]. X in (A ** B) => (X=(Y, Z) & Y in A & Z in B}).
А10.30 [217]. not(Х in (А ** В)) =>
(not(Х in (Y, Z) \/ not(Y in A) \/ not(Z in B)).
Операция композиции множеств представляет множество из пар элементов двух
множеств таких, что первый элемент пары берется из первого множества, второй
элемент пары берется из второго множества
А10.31 [218]. R @ P = {(X, Y): exists Z ((X, Z) in R and (Z, Y) in P)} &
X in A & Y in B.
А10.32 [219]. Х in (А @ В) => (Х in А \/ not (Х in B)).???
А10.33 [220]. not (Х in (А @ В)) => (Х in А \/ not (Х in B)).???
Некоторые преобразования над множествами с арифметическими операциями
определяются аксиоматически так:
А10.34 [221]. X + (- X) = unit,
А10.35 [222]. X * (- X) = null,
А10.36 [223]. X / Y = X + (- Y),
А10.37 [224]. ((X << Z) & (Y << Z)) = ((X + Y) << Z),
А10.38 [225]. ((X << Y) & (X << Z)) = (X << (Y * Z)).
Аксиомы для всех двуместных логических операций, входящих в логическое
определение множества, имеют вид только для логических Y и Z:
А10.39 [226]. {X: Y \/ Z} = {X: Y} + {X: Z},
А10.40 [227]. {X: Y & Z} = {X: Y} * {X: Z},
А10.41 [228]. {X: Y => Z} = -{X: Y} + {X: Z},
А10.42 [229]. {X: Y = Z} = {X: Y} * {X: Z} + (-{X: Y}) * (-{X: Z}),
А10.43 [230]. {X: Y xor Z} = {X: Y} * (-{X: Z}) + (-{X: Y}) * {X: Z},
А10.44 [231]. {X: notY} = -{X: Y},
А10.45 [232]. {X: для всякого Y(P(Y, X))} => sum????
А10.46 [233]. {X: сущесивует Y(P(Y, X))} => mult????
Аксиомы для отношения между множествами определяют операции отношения
для множеств. Рассмотрим их последовательно.
Операция эквивалентности (= вместо литературного обозначений ,  или )
множеств определяет истину тогда и только тогда, когда они состоят из одинаковых
элементов:
А10.47 [234]. (X = Y) => для всякого A(A in X = A in Y),
А10.48 [235]. not (X = Y) => существует A (not(A in X = A in Y)).
Операция собственного включения (знак < используется вместо литературного
обозначения ) множества в не равное ему множество определяет истину тогда и
только тогда, когда вхождение элемента в правое множество влечет его вхождение в
левое:
А10.49 [236]. (X < Y) => для всякого A((A in X => A in Y) &
not(A in X = A in Y)),
А10.50 [237]. not (X < Y) => (существует A(not(A in X => A in Y)) \/
существует A(A in X = A in Y)).
Операция включения множества в множество (обозначение << используется
вместо литературного обозначения ) определяет истину тогда и только тогда, когда
вхождение элемента в правое множество влечет его вхождение в левое:
:
А10.51 [238]. (X << Y) => для всякого A(A in X => A in Y),
А10.52 [239]. not (X << Y) => существует A (not(A in X => A in Y)).
????
Проверить транзитивность X << Y, Y << Z => X << Z
X*Y << X, X << X + Y (for Y) , X \ Y << X, null <> { null }, {{1,2},{2,3}} <> {1,2,3}, if
X << null then X = null, X * null = null, X + null = X, exists X, Y(X * Y = null)
Операция неравенства (обозначение <> используется вместо литературного
обозначения ) множеств является отрицанием операции равенства:
А10.53 [240]. (X <> Y) => для всякого A (not(A in X = A in Y)),
А10.54 [241]. not (X <> Y) => существует A (A in X = A in Y).
Операция обратного строгого включения (обозначение > используется вместо
литературного обозначения ) множества в множество определяет истину тогда и
только тогда, когда вхождение элемента в левого множества влечет его вхождение в
правое:
А10.55 [242]. (X > Y) => => для всякого A((A in Y => A in X) &
not(A in X = A in Y)),
А10.56 [243]. not (X > Y) => (существует A(not(A in Y => A in X)) \/
существует A(A in X = A in Y)).
Операция обратного включения (обозначение >= используется вместо
литературного обозначения ) множества в множество определяет истину тогда и
только тогда, когда вхождение элемента в правое множества влечет его вхождение в
левое:
А10.57 [244]. (X >= Y) => для всякого A(A in Y => A in X),
А10.58 [245]. not (X >= Y) => существует A (not(A in Y => A in X)).
Операция диагонали декартового произведения множеств определяет те пары,
которые состоят из одинаковых элементов:
А10.59 [246]. P(D(R)) => P({(A, A): A in R}).
Операция дополнения декартового произведения множеств определяет те пары,
которые состоят из входящих в произведение (но входят в unit):???
А10.60 [247]. P(-R) => P({(a, b): not ((a, b) in R})).
Операция получения обратного отношения:
А10.61 [248]. P(1/R) => {(A, B): (B, A) in R}
А10.62 [249]. not P(1/R) => {A: not(A in X = A in Y)}?
Бесконечность определяется аксиомой:
А10.63 [250]. exists X (not(X = null) & all Y(Y in X => (Y + {Y} in X))).
[251]. not P(1/R) => {A: not(A in X = A in Y)}?
Отношения составляются из множеств. Операции над отношениями должны
определяться аксиоматически. Аусиомы для отношений рассматриваются ниже.
Область определения отношения:
А10.29 [252]. SX(X * Y) = {X: exists Y(X in R & Y in R)}?
Область значений отношения:
А10.30 [253]. SY(X * Y):= {X; exists Y(Y in R & X in R)}?
Дополнение отношения
А10.31 [254]. R := (A * B) \ R
Обратное отношение
Обр R
Образ множества Х
R(X) := {Y; exists z(z in X & <<z, Y>> in R)}.
Прообраз Обр R(X)
Произведение отношений
Характеристическая функция
mju(A) = {P: (множество из {0, 1}); P = 0 & X in A \/ P = 1 & X not in A}
???????????
Кардинальные числа используются в теории множеств. Они определяются
аксиоматически.
Кардиналы - мощность произвольного множества
Соответствие (единственные пары)
Мощность
abs(M)
Ординалы
Операция равенства расшифровывается для равенств множеств,
если они состоят из элементов и если они являются частями общего множества.
математикам не привыкать к переобозначениям, поэтому примем для них наши
обозначения!
//применение sum, mult, max, min,.. к множествам
А10.64 [255]. Y in sum(i,.., Ai) = exists X(Y in X & X in Ai).
А10.65 [256]. Y in mult(i,.., Ai) = all X(Y = X & X in Ai).
А10.66 [257]. X in A = not (X in - A).
Определить операцию дополнения (-)
//из аксиоматики теории множеств
А10.67 [258]. (X not in A) => not(Х in А).
множество можно определить своими элементами (экстенсиональность)
А10.68 [259]. all X(A in X) = unit?
А10.69 [260]. all X(X in A) = A?
А10.70 [261]. {X: P(X)} in A => (Y in { X: P(X)} > Y in A).?
А10.71 [262]. (P(X) => X in A) => {X: P(X)}in A.?
//семейства???
Для любого свойства P объекта X, обозначенного предикатом P(X), существует
множество M объектов X, что
А10.72 [263]. (M = {X : P(X)}) = exists M (X in M = P(X))
операции конструирования множеств
теория множеств (подсказка на классы операций) Аксиомы теории множеств:
для всякого Х, У(существует Т(для всякого Е ((Е in Т =
(Е = Х \/ Е = У)))))
реальные множества строятся пользователем (или автоматически)
это следствие аксиомы, так как const = 0 - противоречие.
Все логические операции в логическом множестве!!
В современной логике множеств имеются антиномии, которые возникают только
при неточном использовании понятий о свойствах операций. Возьмем один пример
для пояснения сказанного. Парадокс Рассела: «Всякое условие У(х) определяет
свойство некоторого М, присущее тем и только тем объектам х (как элемента М), для
которых имеет место У(х), не зависящее от М». При задании У(х) := «х не является
элементом самого себя» получается следующее: если х не может быть элементом
самого себя, то существует М, которое содержит любой элемент х (в том числе М),
если х может быть элементом самого себя, то существует М, которое не содержит
всякий элемент х (в том числе М). В этом суть парадокса. Происходит парадокс из-за
требований «всякое условие У(х)» и «не зависящее от М», что на практике
неправильно. Правильнее было бы эти требования заменить на запрос «существует
условие У(х)», тогда оно стало бы зависеть от М и не выражало бы парадокс. Не
всякая операция У(х) может использоваться для построения свойств множества М.
Другое разрешение противоречия в классической логике связано с рассмотрением
многозначных логик для фразы «х не может быть элементом самого себя».
5.1.11. Логика ссылок. Ссылки необходимы для введения понятий, которые в
качестве значений имеют имена других терминов. В логику ссылок вводится одна
нулевая константа nil (не ссылающаяся ни на что) и две одноместные операции: ref взять ссылку на данное имя и skim - снять ссылку или взять значение по данной
ссылке. Эти операции определяются аксиомами:
????
Определение nil и операций дано аксиомами следующего вида:
А11.1 [263]. not (X = skim nil),
А11.2 [264]. not (ref X = nil),
А11.3 [265]. not (ref X = nil) & not X in абстрактный,
А11.4 [266]. not (skim X = nil) & not X in ссылка на тип без ссылки,
А11.5 [267]. skim ref X = X & not X in абстрактный,
А11.6 [268]. ref skim X = X & not X in абстрактный.
5.1.12. Логика индексирования. Определение величины типа массива и
операции с массивами и его элементами дается аксиомами, которые явно не
выписываются, а только содержательно поясняются. Они реализованы при
грамматическом анализе таких величин и вычислении индексированных величин, при
интерпретации и вычислениях адресов величин с индексами.
А12.1[270]. А[к] = значение'(Ао + к).
Так вычисляется адрес и значение величины с индексом. Аналогичные аксиомы
можно выписать для величин со многими индексами. Здесь представлена только одна
аксиома. В действительности их много, с их помощью вычисляются значения
элементов массива или искомые адреса таких элементов. Некоторые аксиомы
представлены в [Дал75]. Аксиомы применяются на уровне или в составе программ
транслятора, интерпретатора или синтезатора программ. Реже они применяются в
МЛВ или МАВ.
5.1.13. Логика именованных. Определение величины типа записи и операции с
записями и значениями ее полей дается аксиомами, которые явно здесь не выписаны.
Некоторые аксиомы представлены в [Дал75]. Как и аксиомы для индексирования, они
применяются на уровне или в составе программ транслятора, интерпретатора или
синтезатора программ. Реже они применяются в МЛВ или МАВ. Они также
реализованы при грамматическом анализе таких величин и вычислении выбора
значений из полей записи. Аксиомы применимы и для частных случаев записей (дата,
время и комплексные).
А13.1 [271]. З.поле = значение'(Зо + к*номер'поля).
Здесь же можно рассмотреть аксиомы для логики типизации и квалификации.
Все такие аксиомы используются в различных программах системы Интеллсист.
5.1.14. Логика образования последовательности.
Примеры доказательства.
Рекурсивные определения.
Абстрактные примеры.
Иллюстрация на сложении и умножении.
Примеры с доказательствами.
5.1.15. Логика операций над строками. Над строками определены операция
катенации (соединения) двух строк, которая обладает свойством ассоциативности:
А15.1 [272]. S1 ^ (S2 ^ S3) = (S1 ^ S2) ^ S3.
Аксиома утверждает, что анализ строки можно осуществлять справа налево и слева
направо. Везде принято анализировать строки слева направо.
Для строк определен нулевой элемент, который определяется следующей
аксиомой:
А15.2 [273]. (S1 ^ «» = «» ^ S1) & (S1 = «» ^ S1).
Наличие нулевого элемента служит, в частности, признаком завершения алгоритмов
анализа строк.
Существует мнение, что между крайними точками зрения
лежит истина. Никоим образом. Между ними лежит
проблема.
И. Гете
5.1.16. Многозначные, модальные и др. логики. К-значная дискретная
размытая логика. Логика изучает главным образом высказывания, принимающие
двузначные логические значения - ложь и истина. В Интеллсист в основе
использована такая же логика. Все входные рассуждения имеют или подразумевают
ложь или истину (до тех пор, пока не обнаруживается противоречие). Эти же значения
имеют и выводимые в качестве результата рассуждения, которые в интерпретации
пользователя могут иметь другое логическое значение. В таком случае говорят, что
действует закон исключенного третьего: высказывание может быть ложным или
истинным, и третьего не дано. В этом случае действует также закон: любое
высказывание не может быть одновременно ложным и истинным. Но не все
практические рассуждения имеют двузначные значения. В практике наравне с
рассуждениями, построенными по принципу «да-нет», или в черно-белых красках,
используются рассуждения, построенные по принципу, например «да-нет-возможно».
Имеются и более сложные логики, которые именуются модальными, алетическими,
возможностными или нестандартными логиками. Как и модальная логика
[Логический98, Фейс71] ИЛ изучает необходимости и возможности. Для обобщения
всех таких логик в ИЛ используется термин многозначные логики: трехзначные,
четырехзначные и др. логики, вводимые пользователем при необходимости решения
задач с неполным знанием. Эти логики рассматривают рассуждения при неполном
знании. Интеллсист может построить рассуждения с такими неполными знаниями.
Например, можно получить ответ: возможно (Х = 0). Сам результат квалифицируется
как истинный, но его подлинный смысл (для пользователя) состоит в допустимости
того, что Х = 0. В ИЛ имеются отличия по сравнению с указанными классическими
модальными логиками. Отличия ориентированы на учет практических нужд решения
разнообразных задач пользователя. В ИЛ стандартными операциями являются все
логические операции, которые определены выше. Любые одноместные или
многоместные операции определяются самим пользователем. Например, одноместные
операции «необходимо» и «возможно» различными логиками вводятся по-разному.
Такие операции необходимо задавать самому пользователю.
1. Проблемы и вопросы. Многозначные логики связаны с некоторым числом
значений меры истинности. Пусть их будет К, тогда логику будем именовать Кзначной. Они являются в некотором смысле обобщением двузначной логики.
Многозначные логики отличаются от двузначной не меньшим числом значений,
которые может принимать высказывание или логическая переменная. При
рассмотрении последовательности логик, построенных на основе размера типа
данных, возникает желание рассмотреть бесконечные множества меры истинности
[Гетманова95], логические операции с данными из этих множеств и логики на таких
множествах. Таким образом, можно прийти к понятию о бесконечнозначных логиках.
Бесконечнозначные логики можно представить аналогично размытым логикам
записями с двумя полями. Эти значения можно представлять словами, целыми
числами или дробными числами. В словесном представлении имеются преимущества
при формировании высказываний на ЯПП. При вычислительных действиях в
Интеллсист целесообразнее использовать числовые значения для мер истинности
(коды или номера мер истинности в качестве внутренней кодировки) - элементов
множества истинности. К-значные логики используются в повседневной жизни,
поскольку чаще всего имеют дело с неполным знанием о предмете, явлении или
процессе (с неопределенными или «размытыми» знаниями). В математике их изучают
крайне мало под названием, например модальных [Справочная82] или комплексных
[Зиновьев70] логик. Аксиоматическое исчисление модальных логик затруднено в силу
большого числа функций таких логик и сложности «точных вычислений» с
многозначными функциями. Практическая работа с многозначными функциями
значительно проще, поскольку конкретные задачи связаны с конкретными функциями
с ясной семантической интерпретацией их значений. В ИЛ используется относительно
простая интерпретация операций и значений четко заданных функций.
Для понимания причин введения и рассмотрения К-значных логик поставим
несколько важных практических вопросов.
Вопрос À. Имеются запросы и проблемы, которые необходимо разрешать в
условиях неполного знания о предметной или проблемной области, которые чаще
всего выражаются модальными словами. Например, некоторые высказывания Х могут
квалифицироваться только как возможно Х. Заметим, что эта ситуация жизненна и
возникает часто. Как осуществлять поиск ответов на вопросы или запросы на основе
такого не совсем определенного знания и как разрешать проблемы в условиях
неполного знания исходных утверждений?
Вопрос Б. Естественно, что при малом знании результат будет весьма
приблизительным в логическом смысле. Он выводится как истинный, но в контексте с
модальными словами он может существенно (для пользователя) отличаться от истины.
Истинного по смыслу ответа на поставленные запросы не будет (за редким
исключением). В указанном в проблеме А примере фраза «возможно Х» будет
истинной, но логическая величина Х не может быть истинной в контексте слова
возможно. Наше стремление к истине является законным. Как следует поступать,
чтобы приближение к истине было наилучшим?
Вопрос В. Многие утверждения являются многозначными по своей сути. Оценка
школьнику имеет пять градаций (1 - очень плохо, 2 - плохо, 3 - удовлетворительно, 4 хорошо, 5 - отлично). Плохая оценка близка (по квалификации) ко лжи, а отличная - к
истине. Такие утверждения вступают в логическую связь между собой. Из них и
логических операций строятся рассуждения, составляющие знания для поиска ответов.
Какова технология поиска ответов для многозначных утверждений?
Вопрос Г. Даже в случае многозначности утверждений практика ставит вопрос
поиска точного ответа. В контексте результата логического решения задачи можно
найти причины и условия точного ответа. Несмотря на то, что знания расплывчаты,
необходимо иметь приемы поиска точного результата. Как это реализовать?
Вопрос Д. У пользователя имеются нерешенные проблемы, ответы на которые
еще никто не знает. Некоторые или все предпосылки или исходные данные считаются
известными не полностью (см. пример в проблеме В). Тем не менее, правомерен
следующий вопрос: Какой путь может привести к их разрешению?
Вопрос Е. Кажется, что логика имеет свою сферу применения, арифметика имеет
свою сферу применения. Их сближение важно для практических нужд (и опять см.
пример проблеме В). Можно ли осуществить их сближение?
Вопрос Ж. Даже в математической литературе по логикам весьма мало
уделяется места для рассмотрения многозначных логик. Это понятно, с одной
стороны, весьма большой набор функций в многозначных логиках трудно поддается
систематизации, с другой стороны, в математике за поиском абсолютной истины
потеряна проблема интерпретации логик. Неопределенность знаний возрождает
интерес к многозначным логикам. Каковы результаты рассмотрения многозначных
логик в ИЛ?
Вопрос З. В описании модальных логик [Фейс71] серьезно ставится вопрос о
возможности применения модальностей для описания физического (реального) мира и
указывают на оживленные дискуссии о возможности решения проблем или о
постановке курьезных вопросов в связи с решениями проблем. Но жизнь выдвигает
запросы на решение задач с неполным знанием, в которых используются модальности
как средство оценки меры истинности результатов решения, если исходные
положения сопровождаются модальностями. Как сделать реальным применение
модальных логик для этих целей?
2. Логические уравнения в многозначных логиках. Решение перечисленных
вопросов является предметом рассмотрения данного раздела. Не все вопросы будут
сопровождаться окончательными ответами, поскольку они в принципе весьма сложны.
Программа разрешения вопросов включает построение исчисления ИЛ:
<язык логических выражений, системы аксиом и системы правил К-значной логики>.
Аксиомы, как было сказано ранее относительно построения МЛВ и МАВ, будут
заменяться правилами решения логических уравнений, содержащих утверждения с
некоторой мерой истинности. Для решения большинства или всех перечисленных
вопросов необходимо иметь средства для решения логических уравнений вида i P(..)
или для ясности P(..) = i, где i = 0, 1, 2,..., K-1. Здесь P(..) - некоторое высказывание (в
частности, предикат), i – конкретная модальность или числовое выражение меры
истинности, которая задается при описании перечислимого типа с некоторыми
новыми понятиями. i = 0 условно представляет (если это устраивает пользователя)
высшую меру ложности, наиболее близкую к значению ложь (неудовлетворенности), i
= К-1 также условно представляет (если это устраивает пользователя) меру близости к
значению истина (полной удовлетворенности). Промежуточные значения
представляют вполне определенную меру близости ко лжи или к истине и выражаются
терминами из (чаще всего) модальных слов. Пример: возможно Х рассматривается в
ИЛ как логическое уравнение возможно = Х, где Х - логическая переменная 3-значное
логики, формально уравнение записывается так: Х = 1. Конечно, пользователь вправе
интерпретировать 0 и К-1 как ложь и истину (последней инстанции), но не
обязательно. Утверждения, принимающие допустимые К значений, относятся к
многозначной логике. В этом смысле оценки школьнику можно понимать по
некоторому контексту как пятизначную логику со значениями (очень плохо, плохо,
удовлетворительно, хорошо, отлично), причем значение очень плохо представляет
максимальное приближение к значению ложь, а отлично – к значению истина.
Конечно, чаще многозначные логики связывают с такими перечислениями (решение
не достигнуто, возможно получено решение, решено) или (нет, возможно, да).
Логическая и математическая сущность модальностей поясняется так.
Модальные слова в русском языке (как часть речи) определяется как отношение к
некоторому высказыванию или утверждению. В информатике модальные слова
представляют операции, квалификации или отношения с одним операндом. Вот
несколько иллюстративных примеров: возможно (Х = 0), не обязательно (Х = 1), пять
(ответ = 25) или скорее всего идет дождь. С этой точки зрения ложь и истина также
являются одноместными операциями, которые квалифицируют высказывание.
Модальности (или модальные слова) относятся к логическим величинам или
высказываниям.
3. О перечислимых величинах. Новые величины, определяемые логическим
типом перечислимых и называемые истинностными, принимают несколько (конечное
число) значений мер истинности, указанных новыми терминами в перечислимом типе.
Значения перечислимых переменных моделируют конечные (упорядоченные) и
промежуточные значения меры истины некоторой величины. Положим, что, если
высказывание принимает наименьшее значение в числовом выражении, то оно
условно ложно с точки зрения пользователя, если высказывание принимает
наибольшее значение, то оно условно истинно с точки зрения пользователя, при
условии, что высказывание целиком считается истинным. Все промежуточные
значения переменного высказывания принимают значения между условными
значениями ложь и истина (они означают сомнения различной степени, не меньше
лжи и не больше истины). Количественно значения могут выражаться числами от нуля
до К-1 (К>2) для К-значной логики. Все промежуточные значения выражают степень
близости к истине (или ко лжи). Это подходящий способ сопоставления сомнений и
числовых значений. Это позволяет нам говорить о К-значной логике или о конечной
размытой логике.
Несколько исходных соображений. Факты, как утверждения вообще, могут
обладать содержанием, которое пользователь оценивает некоторой мерой истинности,
хотя запись факта (утверждения) обязательно принимает значение истины в итоге
решения задачи, но если она содержит модальности, то внутреннее содержание записи
может иметь в оценке пользователя некоторую меру истинности. Истинным является
утверждение «вероятно идет дождь», но пользователь утверждения вправе
сомневаться относительно факта «идет дождь», поскольку его запись содержит
модальность «вероятно». Это первое исходное положение. Второе, модальности
(константы мер истинности из перечислимого типа) не используются самостоятельно,
а только в контексте или «рядом» с переменными или выражениями логического типа.
Третье, использованная модальность распространяется на факты по мере раскрытия
логических операций. Она может быть поглощена в результате при достаточности
знаний или выразиться в новых логически выведенных фактах при неполноте
исходных знаний.
Сразу обратим внимание на существенные отличия многозначных и размытых
логик [Баронец86, Левин91, Нечеткие86, Обработка89]. Размытая или нечеткая логика
относится к двоичной логике, утверждения в которой всегда сопровождается его
вероятностью достоверности. Такая логика может моделироваться так. Пусть имеется
запись из двух полей:
раздел типа ~fuzzy logic~ = запись В: логическое; Р: вещественное конец записи;
раздел понятий ~А~, ~В~, ~С~: fuzzy logic.
Первое поле В указывает на значение некоторого предиката, второе поле Р - на
вероятность получаемого значения. Для таких логических величин определяются
необходимые операции, например типа всех логических операций, результат которых
принимает значения типа fuzzy logic. В этих условиях кроме реализации логических
операций реализуется арифметика над числами, которые являются вероятностями
событий, которые не осуществились (первое поле равно лжи) или условно
осуществились (первое поле равно истине) с вероятностью, значение которой
помещается во втором поле записи. Так моделируется размытая логика средствами
языка Лейбниц.
4. Основные логические операции. Возвращаемся к многозначным логикам
или конечным размытым логикам, как можно именовать К-значные логики. Примем
также следующие соглашения. Оно относится к реализуемым логическим операциям в
К-значных логиках. Помня, что переменные высказывания принимают
(моделируются) целые от 0 до К-1 числовые значения, вычисления значений
результатов применения к ним логических операций также приводят к таким же
целым значениям. Для переменных применяются те же логические операции, что и в
двузначной логике (они соответствуют операциям, определенным в [Гетманова95] для
бесконечнозначных логик):
Логическая операция
Выражение для значения
Not A
A or B
A and B
A xor B
A=B
A => B
A << B
К-1-A
max(A, B)
min(A, B)
max(min(A, К-1-B), min(К-1-A, B))
max(min(A, B), min(К-1-A, К-1-B))
max(К-1-A, B)
max(A, К-1-B)
где К > 1. В левой колонке под А и В подразумевается высказывание, в правой - их
числовые значения.
При такой интерпретации логических операций все аксиомы двоичной логики
остаются верными и для К-значной логики. Имеется одна особенность Интеллсист в
представлениях результатов или результирующих фактов. Она выдает решение одним
из значений истинности и указывает новые факты в виде "значение истинности В", а
не "В=значение истинности". Результат будет иметь именно такой вид: (..,значение
истинности В,..). Некоторые пользователи не удовлетворятся указанными в таблице
сопоставлениями для операций. Они имеют свои представления об интерпретации
логических операций или свои логические операции. Тогда им предстоит
самостоятельно задавать математические выражения для интерпретации операций.
Они построят свою многозначную (конечную размытую, частичную или модальную)
логику. При этом должны быть введены новые обозначения для операций и новые
правила логического вывода (сведения операций). Многочисленные логики (ветви МЛ
или логики возможностей) имеют свои особенности. При переходе от математики к
информатике (к ИЛ) необходимо иметь некоторый алгоритм порождения знаний
(аксиом и правил вывода). Рассмотрим пример двух многозначных логик, именно
трехзначной и четырехзначной, и один пример модальной логики только для того,
чтобы продемонстрировать метод.
Логическое исчисление формально строится на языке формул (выражений),
набора аксиом и конечного набора правил. Язык многозначной логики, включает
алфавит терминальных символов, набор значений истинности, соответствующий
набор имен константных значений (модальных терминов), одноместных, двуместных
или многоместных логических операций, предикаты и функции, а также кванторы
общности и существования. С помощью этих элементов языка формируются
правильно построенные формулы (формулы ЯЛ), в которых могут использоваться
круглые скобки для указания последовательности выполнения операций в формуле.
Элементы языка и правильно построенные формулы составляют язык исчисления Кзначной логики. Язык может пополняться новыми пользовательскими терминами,
логическими константами (элементами перечислимого типа) и операциями,
определенными аксиомами. Язык предназначен для формулировки знаний и запросов
для решения прикладных проблем и задач.
Значение истинности на практике обозначаются терминами, смысл которых
выражает меру близости ко лжи или к истине, а может быть они имеют смысл
неопределенности, квалификацию некоторой меры близости к истине должен
обеспечивать сам пользователь либо самостоятельно, либо по прецеденту. Аксиомы и
правила исчисления К-значной логики включают правильно построенные формулы и
дополнительные метасимволы для связи формул и правила исчисления. Все они
определяются средствами ЯПП.
Пусть X и Y являются переменными, принимающими смысл терминов (из типа
перечислимого) или чисел (внутренней кодировки для вычислений) 0, 1,..., К-1. Тогда
к стандартным одноместным операциям относятся такие операции как next X := (X +
1) mod K, pred X := (X - 1) mod K, not X := K - 1 – X. Двуместными операциями (см.
таблицу в данном разделе) являются: X \/ Y := max(X, Y), X & Y := min(X, Y).
Функции max и min понимаются обычным образом с учетом обычного понимания
упорядочивания чисел 0<1<..<К-1. Тогда, например (X = Y) = max(min(X, Y), min(not
X, not Y)). Для К-значной логики интерпретация таблицей операции равенства не
совпадает внешне с интерпретацией для двузначной логики (мера близости к истине),
хотя имеется совпадение формульных определений. В двоичной логике операция
равенства понимается так: (А = В) = ((А & B) \/ (not A & not B)). Это соотношение
определяет таблицу «истинности». Например, для 4-логики табличное определение
будет иметь вид, в котором в числителе стоит значение по формуле 2-логики, в
знаменателе – естественное определение равенства - приближение к истине.
Остальные двуместные операции могут определиться по формулам двоичной логики,
например операция следования (X => Y) = (not X \/ Y). В рассуждениях ниже будем
также использовать операции сложение + по модулю К и умножение * по модулю К.
Кванторы всеобщности (для всякого) и существования (существует) также
являются стандартными, принимающими значения лжи и истины в 2-значной логике.
Кванторы же, принимающие значения некоторой меры близости к истине или лжи,
могут вводиться пользователями в соответствии с ФЯ. Кроме этих операций будем
вводить вспомогательные операции для установления истинности некоторых
выражений. Все новые пользовательские операции и функции задаются табличным
методом (таблицы размером К для одноместных или К*К для двухместных операций
являются записью аксиом для пользовательского определения операций и функций).
Кроме этого для их полного определения необходимо задать аксиомы, связывающие
операции и функции друг с другом. Операция будет определена не полностью, если
какая-либо подобная аксиома не задана.
5. Интерпретация логических операций. В качестве иллюстративного примера
рассмотрим две перечислимые переменные X и Y со значениями (нет, возможно,
вероятно, да), которым в Интеллсист соответствует четверка (0, 1, 2, 3), и указанные
операции. Определение операций является стандартным в ИЛ. Напомним, что
пользователь вправе сам определить или переопределить свои операции в К-значной
логике. Например, в [Фейс71] эти же операции определяются другими таблицами.
Одноместные операции представлены в таблице кодами значений перечислимого
типа:
X \ операция
not Х
0
1
2
3
3
2
1
0
next Х pred Х
1
2
3
0
3
0
1
2
Эта же таблица в терминах перечислимого типа принимает вид:
X \ операция
not
next
Pred
нет
возможно
вероятно
да
да
вероятно
возможно
нет
возможно
вероятно
да
нет
да
нет
возможно
вероятно
Для двуместной операции или (\/) определение дано в таблице:
X\Y
0
1
2
3
0
1
2
3
0
1
2
3
1
1
2
3
2
2
2
3
3
3
3
3
Иллюстрация двуместной операции, выражаемая фразой «Если встречаются двое
миролюбивых, то побеждает тот, кто ближе к истине» представлена в таблице:
X\Y
нет
возможно
вероятно
да
нет
нет
возможно
вероятно
да
возможно
возможно
возможно
вероятно
да
вероятно
вероятно
вероятно
вероятно
да
да
да
да
да
да
Двуместная операция умножения или & задается таблицей:
X\Y
0
1
2
3
0
0
0
0
0
1
0
1
1
1
2
3
0
0
1
1
2
2
2
3
Иллюстрация этой операции может быть выражена фразой «Если встречаются двое
непримиримых, то побеждает тот, кто ближе ко лжи», или таблицей:
X\Y
нет
возможно
вероятно
да
нет
нет
нет
нет
нет
возможно
нет
возможно
возможно
возможно
вероятно
нет
возможно
вероятно
вероятно
да
нет
возможно
вероятно
да
Двуместная операция равенства (=) определяется в таблице, которой
представлены два значения, верхнее значение получено по формуле, она встроена в
Интеллсист, а нижнее значение построено по аналогии с таблицей для двузначной
логики:
X\Y
0
1
2
3
0
3
2
1
0
3
2
1
0
1
2
2
1
1
2
3
2
1
2
1
1
2
2
1
2
3
2
3
0
1
2
3
0
1
2
3
Интерпретация операции представлена (как и выше) двумя соответствующими
строчками:
X\Y
нет
возможно
вероятно
да
нет
да
вероятно
возможно
нет
да
вероятно
возможно
нет
возможно вероятно
вероятно
возможно возможно
вероятно
да
вероятно возможно
вероятно возможно возможно
вероятно
вероятно
возможно
вероятно
да
вероятно
да
нет
возможно
вероятно
да
нет
возможно
вероятно
да
Здесь уместна фраза «Либо равенство требует строгости, либо равенство и в Африке
равенство».
Для двуместной операции следования (=>) использована такая таблица:
X\Y
0
1
2
3
0
3
3
3
3
1
2
2
2
3
2
1
1
2
3
3
0
1
2
3
Интерпретация операции следования примет вид, внешне аналогичный виду таблицы
для 2-значной логики:
X\Y
нет
возможно
вероятно
да
нет
возможно
да
да
вероятно вероятно
возможно возможно
нет
возможно
вероятно
да
вероятно
вероятно
вероятно
да
да
да
да
да
Заметим следующее обстоятельство. Таблицы лишь проиллюстрировали определенияаксиомы операций в 4-значной логике. Они должны послужить основой для
построения правил вывода решений логических уравнений в К-значных логиках.
Пользователь имеет возможность задавать именно так аксиоматику для операций, а
инструментарий Интеллсист построит правила вывода автоматически.
6. Некоторые общие соображения о металогике. Модальная логика - логика
возможностей, необходимостей и приближения к истине. Она ориентируется не
только на значения от 0 до К-1, но и на произвольные значения и наборы значений из
этого диапазона. Сложность изучения К-значных логик вызвана числом функций М,
которые потенциально можно рассмотреть. Число N-местных функция Ê-значной
логики Ì = N**N**Ê.
Установим близость К-значных логик при К > 2 по возможности разложения и
представления функций. Ставятся задачи получения разложения функций и
построения полных систем функций. Для этого определим «дельта-функцию» di как
вспомогательную функцию:
di(X) = K-1,
di(X) = 0,
где X = i,
где X <> i.
В действительности здесь определены К функций d0, d1,.. Для этих функций легко
можно построить табличное представление. Определим «единичную» функцию ei
также как вспомогательную:
ei(X) = 1,
ei(X) = 0,
где X = i,
где X <> i.
Здесь также определены К функций e0, e1,.. с очевидными табличными
представлениями. Некоторые общие свойства введенных функций доопределяются
следующими равенствами. Введем также операцию * для логических функций (см.
ниже). Теперь на примерах обнаружим совпадения свойств логических операций для
К-значных логик с К > 1.
X := 1*d1(X) \/ 2*d2(X) \/...\/ a*da(X), a := K-1;
di(X)*dj(X) = di(X), где i=j;
di(X)*dj(X) = 0,
где i<>j;
0 & 0 = Х0, Х0 со значением 0;
(К-1) & 0 = Х(К-1), со значением К-1;
0 \/ = 0;
(К-1) \/ = Х(К-1);
not(not X) = X;
min(X, Y) = not max(not X, not Y).
Свойства К-значной логики во многом аналогичны свойствам 2-логики
(например, свойства ассоциативности, коммутативности и дистрибутивности), их
можно перевести на К-значную логику, поэтому исследование свойств К-значной
логики во многом упрощается при таких соглашениях.
Однако в К-значных логиках существует большое число проблем. Среди
проблем имеются, например, такие:
1. Интерпретация К-значной логики в многомерном пространстве 2-логик
(проблема гиперкомплексных логических чисел).
2. Изучение новых кванторов К-значных логик и построение других кванторов
или уравнений с равенством 0 или К-1.
3. Особенности операций с различными операндами, принадлежащими
различным К-значным логикам.
4. Доказательство теорем классической К-значной логики в Интеллсист. Эта
проблема решается с применением Интеллсист.
Проблема построения полной системы функций изучается в классической
модальной логике и не имеет отношения к проблеме вывода решений логического
уравнения. В связи с этим не рассматривается подробно соответствующие теоремы и
системы полных функций. Желающие заняться подобными проблемами могут изучить
[Яблонский79]. Ограничимся лишь некоторыми примерами.
В конечном счете 2-значная логика - фундаментальная конечная логика, она
является судьей всех конечных решений логических уравнений. К-значная логика
является лишь приближением к лжи или истине. Вот несколько примеров К-значных
логик: для сравнения 2-логика опирается на множество значений {ложь, истина}, или
{false, true} со значениями-кодами {0, 1}, 3-логика: {нет, возможно, да} со
значениями {0, 1, 2}, 4-логика: {ложь, почти ложь, почти истина, истина} со
значениями {0, 1, 2, 3}. Рассматриваемые К-значные логики можно назвать еще и
целочисленной логикой, поскольку значения логических величин подразумевают
целочисленные значения.
Все дальнейшие построения проделаны студентом-дипломником МФТИ И.В.
Малобродским. Для представления любой функции можно воспользоваться
следующей дизъюнктивной нормальной формой в К-значной логике:
f(X1, X2,..,Xn) := \/ (f(I1, I2,.., In) & di1(X1) & di2(X2) &..& din(Xn)),
где I1, I2,..,In изменяются в области для X1, X2,.., Xn соответственно.
Этой формой можно воспользоваться для построения аналитического выражения для
любой функции, заданной таблично. Полученное выражение при необходимости
можно оптимизировать по числу операций или его можно преобразовать в другую
систему функций по правилам подстановки. Для построения разложения любой
функции и полной системы операций рассмотрим новые функции или дадим
интерпретацию известных функций. Наравне с функцией di определим функциюдельта так:
d(x1, x2) = 1, при х1 = 0 и х2 = 0 и
d(x1, x2) = 0 в остальных случаях.
Определим функции next - следующее и not - отрицание так:
next(x) = x + 1,
not(x) = (x - 1) mod (K - 1).
Определим операцию сложения перечислимых через операцию сложения целых так:
x1 + x2 = (целый(х1) + целый(х2)) mod (K - 1).
Определим операция умножения перечислимых через операцию умножения целых
так:
x1 * x2 = (целый(х1) * целый(х2)) mod (K - 1).
Определим операции суммирования: g = sumК (g), где sumК - сложение
последовательности значений по модулю К - 1.
Для этих операций полной системой, достаточной для представления любых
логических функций многозначной логики будет d, next и +:
f(x1, x2) = sumК(i, 0, К - 1,
sumК (j, 0, К - 1, sumК (fij * d(next (x1), next (x2))));
Указанные функции выражаются через «стандартные» логические операции (для
значений К):
К = 3: d(x1, x2) = min(next x1, next x2, next next x1, next next x2);
К = 4: d(x1, x2) = min(next x1, next x2, next next x1, next next x2,
next next next x1, next next next x2);
К = 3: 2.d(x1, x2) = next max(x1, x2, next x1, next x2);
К = 4: 3.d(x1, x2) = next max(x1, x2, next x1, next x2,
next next x1, next next x2);
К = 3: d(x1, x2) = 2.d(x1, x2) + 2.d(x1, x2);
К = 4: d(x1, x2) = 3.d4(x1, x2) + 3.d4(x1, x2) + 3.d4(x1, x2);
К = 3: d(x1, x2) = next x1 * next x2 * next next x1 * next next x2;
К = 3: x1 + x2 = max(min(2 * d(x1, x1), x2),
min(2 * d(next next x1, next next x1), next x2),
min(2 * d(next x1, next x1), next next x2));
К = 4: x1 + x2 = max(min(3 * d4(x1, x1), x2),
min(3 * d4(next next next x1, next next next x1),next x2),
min(3 * d4(next next x1, next next x1),next next x2),
min(3 * d4(next x1, next x1),next next next x2)); ???
К = 3: not x = next x + next x;
К = 4: not x = next x + next x + next x;
К = 3: next x = not x + not x;
К = 4: next x = not x + not x + not x;
К = 3: max(x1, x2) = next min(next min(next x1, next x2),
next next min(next min(next next x1, next next x2),
min(next x1, next x2)));
min(x1, x2) = next next max(next next max(max(next x1, next x2),
max(next next x1, next next x2),
next max(max(next next x1, next next x2),
next next max(next x1, next x2))));
К = 3 или 4: u(x1, x2) = next min(x1, x2);
К = 3 или 4: next x = u(x, x);
К = 3: min(x1, x2) = next next u(x1, x2);
К = 4: min(x1, x2) = next next next u(x1, x2);
К = 3: v(x1, x2) = next max(x1, x2);
К = 3: next x = v(x, x);
К = 3: max(x1, x2) = next next v(x1, x2);
К = 3: u2(x1, x2) = next next min(x1, x2);
К = 3: next next x = u2(x, x);
К = 3: u(x1, x2) = next next u2(x1, x2);
К = 3: v2(x1, x2) = next next max(x1, x2);
К = 3: next next x = v2(x, x);
К = 3: v(x1, x2) = next next v2(x1, x2);
Полными системами логических функций являются, например, следующие
варианты для К = 3:
1 вариант: d, next, +;
2 вариант: next, min, +;
3 вариант: next, *, +;
4 вариант: next, min;
5 вариант: next, max;
6 вариант: next, min, max;
7 вариант: u;
8 вариант: v;
9 вариант: u2;
10 вариант: v2.
Приведенные результаты исследований студента могут принести пользу в
практических работах и стать стимулом применения Интеллсист для продолжения
подобных исследований.
Имеется еще один потенциальный метод представления многозначных логик. Им
является векторный метод представления значений величины или констант
перечислимых и операций. Ограничимся рассмотрением лишь примера такого
представления. Для каждой переменной или константы А сопоставим вектор (х1, х2),
где х1 и х2 - переменные 2-логики. Тогда значения в 3-значной логике можно
представить следующим образом:
А = 0 соответствует (0, 0),
А = 1 соответствует (0, 1),
А = 2 соответствует (1, 0),
где х с индексом - логическое значение 2-логики 0 (ложь) или 1 (истина). Таким
образом А = 2 соответствует (1, 0) или (1, 1). Избыточность может использоваться для
надежности представлений. Значение А может выбираться с целью экономии формул
по числу операций или переменных.
Пусть в 3-логике задана функция Ф = (Ф1, Ф2). Тогда логическое уравнение
можно выразить в 2-логике следующим образом:
(Ф = 2) => (not Ф1 & not Ф2) = 1,
или
(Ф = 2) => not Ф1 & not Ф2,
(Ф = 1) => not Ф1 & Ф2 = 1
или
(Ф = 1) => not Ф1 & Ф2
7. Правила вывода решений. Как было сказано ИЛ строится на основе
аксиом, определяющих константу, величину или операцию. Для К-значной логики
известны аксиомы, например так, как они заданы выше (таблично). Для 3-значной
логики построим систему правил логического вывода по приведенным таблицам.
Правила направлены на вывод фактов, которые будем представлять в виде
некоторой модальности и переменной вместо равенства переменной и некоторой
модальности. Иллюстрация правил рассмотрена для 4-значной логики с
модальностями (нет, возможно, вероятно, да).
Задача ставится так: дано логическое уравнение (А = значение модальности) или
(значение модальности А), требуется указать правила его решения. Из приведенных
выше таблиц "истинности" выбираем все правила с требуемым значением
модальности. Для одноместных функций с максимально приближенной истинностью
получаем:
А16.1. [274] not А |- нет А
А16.2. [275] next А |- вероятно А
А16.3. [276] pred А |- нет А
А16.4. [277] А и В |- да А, да В
А16.5. [278] А или В |- да А,да В; нет А,да В; возможно А,да В; вероятно А,да
В;да А, нет В;да А, возможно В;да А,вероятно В.
А16.6. [279] А=В |- да А,да В;вероятно А,вероятно В;возможно А,возможно В;
нет А, нет В.
А16.7. [280] А следует В |- да А,да В;нет А,да В;возможно А,да В;вероятно А,
да В; нет А, вероятно В; нет А, возможно В; нет А, нет В.
Таковы правила логического вывода решений логического уравнения в 4значной логике, они работают как бы в интеллектуальной сомневающейся системе.
Выше представлена техническая сложность системы правил для многозначных
логик. Система выводит наилучшее приближение к пользовательской истине, она
отвечает на все вопросы, рассмотренные в п.1.
У всякого безумия есть своя логика.
В. Шекспир
5.1.17. Логика фактов или исчисление фактов. Можно сказать, что любое
исчисление является таковым. Действительно, в любой аксиоме и в любом правиле
исходят из фактов и получают новые факты. Однако, рассмотренные аксиомы и
правила используют фразы и утверждения (и редко когда факты). Понятия фактов,
фраз и утверждений определены, и не следует отступать от этих определений.
Признаки для фактов
- квалификация и сорт величин,
- константность и переменность,
- операции над фактами,
- композиция фактов,
- в обычном смысле факт - синоним понятий «истина», «событие», «результат»,
- знание, достоверность которого доказана или принята,
- в логике и методологии факт - это предложения, фиксирующие эмпирическое
знание.
Идея. Анализ фактов осуществляется по двум направлениям. Первое
направление связано с логическим выводом, когда проверяется согласование фактов
по смыслу при завершении логического вывода. Факты всегда являются истинными
(по БЗ и по смыслу). При этом предполагается, что имеется соответствие типов
операндов и операций. Несоответствие определяется и локализуется в процессах
трансляции или логического вывода и квалификации величин. Второе направление
связано с генерацией программы, если знания не полны и ответом на разрешение
запроса является возможно частичная печать результатов и построение (генерация
кодов) программы для выполнения и получения оставшихся результатов. До
рассмотрения обеих направлений приведем список некоторых представлений фактов.
Они естественным образом вытекают из списка операций языка Лейбниц. Исчисление
фактов, как, впрочем, и любое исчисление, ориентировано на получение конечных
"неразложимых" результатов решения задач, на разрешение конфликтующих фактов
или на поиск ошибок в фактическом материале.
Формы фактов. Структурные формы фактов выявляются по такой процедуре.
Рассматриваются терманды всех сортов и типов и все термации, они представлены
терминами, а точнее именами. Каждому термину сопоставляется константа
соответствующего типа и сорта. В частности, операндами могут быть агрегаты, поля
или термины с индексами. Если вместо константы используется выражение, то оно не
является результирующим фактом, это выражение является предметом для
аналитических выкладок или синтеза программы. Некоторые записи также не
образуют факта. Например, присваивание влево, вправо или обмен не образуют факта.
Логические операции над данными преобразуются и также не образуют факта.
Факты - это то, что легко воспринимается человеком, факт - это представление
понятия и его смысла. Отдельный факт дает мало знаний. Отдельный факт чаще всего
(когда
рассматриваются
логические
уравнения)
математически
можно
интерпретировать записью: величина = константное выражение, а формально - как
пара (термин, значение). Вообще же фактами являются следующие выражения (для
краткости рассмотрим только примеры иногда без учета типа операндов):
Наименование факта
Логическая величина
Отрицание логической величины
Определение величины
Отрицание определения величины
Ограничение для величины
Отрицание ограничения для
величины
Ограничение в определении
величины
Отрицание в ограничении
определения величины
Принадлежность множеству
Отрицание принадлежности
множеству
Логическая функция
Отрицание логической функции
Значение функции
Выражение
Пример печати
Х
не Х
Х = константа
не (Х = константа)
Х < константа
не (Х < константа)
дождь идет
не холодно
А = 49
А <> 39
В < 343
В>= 321
Х <= константа
С <= 7
не (Х <= константа)
С>7
Х in М
не (Х in М)
“Х” в множестве М
“Х” не в множестве М
F(25)
не F(25)
F(константа1) =
константа2
правильно(5)
не правильно(5)
размер дома(3) = 21
Отрицание значения функции
Принадлежность функции
множеству
Функция не принадлежит множеству
Значение атрибута
Отрицание значения атрибута
Равенство значений функции
……………………………….
Не F(константа1) = размер дома(3) <> 21
константа2
F(Х) in М
sin(X) в множестве МФ
F(Х) not in М
sin(X) не в множестве
МФ
A'B = константа
размер'Е = 4
не(A'B <> константа)
размер'Е <> 4
F(Xo) = F(Yo)
проба(2) = проба(7)
………………
……………………
В таблице не показаны изображения многих фактов, например упоминание табличных
значений, операции отношения, множества различных видов и мощностей, функций
многих переменных, массивы с агрегатными значениями, поля записей и т.п.
Пользователь сам может определять, что для его дела будет фактом, а что требует
дальнейших исследований. Важно заметить, что факты изображают конкретный
смысл некоторой величины, определенных типа и структуры. Внешне при печати
результата, под фактом понимается утверждение, в котором содержится одна
неизвестная величина со своим конечным значением.
Основы аксиоматики. Первое направление анализа фактов можно пояснить
еще и так. Логика фактов возникает при анализе логических конструкций,
включающих единообразные (похожие) факты. Например, одновременно не могут
существовать факты «скорость равна 20» и «скорость равна 100», но могут
существовать факты «скорость равна 20» и «скорость не равна 100». В первом случае
будет противоречие, а во втором - результат: «скорость равна 20». Здесь дан
подтверждающий факт того, что скорость не может равняться 100, поскольку она
равна 20. Кажется, что фраза «скорость не равна 100» избыточна, поскольку первая
фраза ответа ее исключает. Кажется, что фраза «скорость равна 20» является
избыточной в сравнении со второй фразой, поскольку первая фраза отвечает на запрос
пользователя «равна ли скорость 100».
Можно рассмотреть более сложные примеры. В связи с таким положением о
долях неопределенности при сопоставлении фактов возникает необходимость
рассмотрения исчисления фактов, которое позволит автоматизировать процесс
логического вывода новых фактов из имеющихся. На примере видно, что исчисление
фактов соприкасается с психологией пользователя, что необходимо учитывать при
формировании ответов на его запросы. В связи с этим в алгоритмах Интеллсист
целесообразно предусмотреть возможность информирования пользователя о
некоторых психологических ситуациях наравне с информированием о противоречиях.
Ответ на запрос может быть неполным, но побочная (вычеркиваемая информация)
должна сообщаться для пользователя. Обобщенное исчисление фактов уже
сформулировано в аксиоматике. В особенности это касается исчислений для
логических величин. Имеется достаточное число частностей в соотношениях фактов,
которые составляют важное самостоятельное исследование.
В альтернативах комплексов совместных фактов содержится больше знаний. Под
комплексом фактов (для равенств) будем понимать выражение следующего вида:
имя в факте 1 = значение 1, .. , имя в факте к = значение к;
где «имя в факте i» – термин некоторой величины, «значение i» - некоторое, вообще
говоря, константное выражение. Здесь использовано равенство в качестве образца.
Комплексы фактов сложнее представить в реальности. Но тем не менее они
воспринимаемы и интерпретируемы. В частности, понятность комплекса зависит от
лексикона, который используется для обозначения "факте i" или "значение i".
Наконец, самым сложным представлением знания является форма альтернатив
совместных фактов. Вот здесь возникает третье направление анализа фактов, которое
состоит в сворачивании альтернативных комплексов фактов в итоговое логическое
выражение. Выражение вида:
имя в факте 11 = значение 11, .., имя в факте 1n = значение 1n;
...........................
имя в факте m1 = значение m1, , и имя в факте mn = значение mn.
называется альтернативами комплексов совместных фактов при m>1. Только что
высказанные замечания относительно совместных фактов в полной мере относятся и к
их альтернативам. При получении таких выражений в качестве решения можно
говорить о том, что знания полны. Опять равенство использовано условно. Значение это «число» или константная переменная. Заметим, что различные константные
переменные не равны, тогда оба факта останутся в записи ответа. Например, ответ
может иметь вид «Х = 1, Х = С», тогда исчисление фактов должно привести к такому
результату «Х = 1, С = 1» (или к такому «Х = С, С = 1», что может быть содержит
больше информации, чем в предыдущем результате). Эта запись лучше всего
удовлетворяет наше любопытство относительно того, что такое решение уравнения.
Некоторая неизвестная, представленная в логическом уравнении величина, принимает
конкретное значение константного выражения. Считается, что константное выражение
автоматически интерпретируется человеком, оно не требует больших разъяснений,
кроме того, что представлено в исходных выражениях. Вполне возможно, что в
интерпретации результатов будет содержаться огромная сложность, но это уже
специальный вопрос, не относящийся к проблеме решения логического уравнения.
Чаще всего сложность будет возникать из-за новизны полученного нового знания.
В определении данной выше формы результата отсутствуют специальные
обозначения, которые должны присутствовать во многих реальных альтернативах
совместных фактов. Другими словами, Интеллсист не печатает контекст для
результата. Можно усилить сказанное тем, что Интеллсист не показывает или не
объясняет путь получения результата. Например, решением логических уравнений
могут быть и антифакты, которые можно формально представить так: не(имя в факте
= значение) или (имя в факте <> значение), что представляет закон исключенного
третьего, если имя в факте - простое имя, а значение - литерал. Реально вместо
равенства можно и нужно иметь в виду простые логические операции (например,
отношения), операцию принадлежности и другие операции отношения (см. таблицы
операций и образцов записей фактов). На приведенном примере видно, что
исчисление фактов может учитываться при формировании результата логического
вывода для печати.
Примеры соотношений фактов. Отрицание факта - это тоже факт. Общее число
альтернатив может иметь степенную или даже экспоненциальную сложность
относительно числа «m». В таком случае человеческое восприятие альтернативы
комплексов будет затруднено. Для некоторого облегчения восприятия человеком
информации о решении логического уравнения можно воспользоваться следующим.
Полученный результат печатается в сокращенном виде с выносом одинаковых
совместных фактов «за скобки».
(Х = А & Х > В) => если В <= А, то Х > В, иначе остается без изменений;
(Х = А & Х = В) => А = В;
(Х > А & Х > В) => (Х > В & А <= В) \/ (Х > A & А > В).
Примеры рассмотрены для абстрактных величин. Аналогично можно рассмотреть все
комбинации для равенства и неравенства. При построении теории фактов необходимо
рассмотреть все варианты и комбинации равенств, неравенств, функций, пар в
совместных фактах или между их альтернатив.
Правила для фактов должны сопровождаться соотношениями чисел, а они
исключат ненужное при логическом выводе. При этом статус или сорт каждой
величины должен обязательно учитываться. Например, F(3) = F(11) не является
фактом, поскольку функция F не определена выражениями, 3 и 11 могут оказаться
недопустимыми для F. Интересно рассмотреть также следующий пример:
для всякого епсилон ((епсилон > 0) и (Х> - епсилон и Х< епсилон)) = М(Х).
Проблемы построения аксиоматики. Рассмотрим некоторые проблемы,
вытекающие из сказанного. Надо при этом учесть, что решение логического уравнения
состоит из альтернативы совместных фактов. Указанные ниже проблемы относятся к
исчислению фактов и к металогике.
Проблема 1. Откуда возникают факты и как их извлекать из логического
уравнения? Исходные факты являются в результате наблюдения, моделью для
исследований или сбора сведений. В исходном логическом уравнении осуществляется
логическое сопоставление (главным образом пар) выражений, а в результате
сопоставления обнаруживаются некоторые или все новые факты. Такое
предположение относительно способа разрешения проблемы 1 будет вполне
оправданно. Также интуитивно ясно, что рассмотрение исходного логического
уравнения должно приводить к сокращению входящих в него операций. Как
обнаружить условия для сокращения операций? Этим вопросом завершается
формулировка первой проблемы. Пример одновременности фактов Х = 2 и Х = 5
заставляет задуматься над его правильностью. А может быть это являет противоречие?
Формально - да, а фактически может оказаться, что нет. Если получено противоречие,
то его схему необходимо показать пользователю.
Проблема 2. Формулировка условий сокращения операций приводит к самому
различному логическому сопоставлению величин. Какие сопоставления величин
являются допустимыми, а какие - недопустимыми? Если не существует условий
сокращения или сопоставление величин недопустимо, то логическое уравнение не
имеет окончательного решения. Правомерно ли такое утверждение? Так или иначе
можно подойти к построению равенств для величин и операций, которые и будут
играть важную роль. Анализ примера Х = А и Х > В может привести к Х > В или к
Х = А и Х > В в зависимости от соотношения значений А и В.
Проблема 3. Какие равенства (их иногда называют подстановками) являются
приемлемыми (разрешимость уравнения), а какие равенства - неприемлемы? От
разрешения этой проблемы зависит вопрос о завершении процесса поиска решения
логического уравнения. Сопоставление выражений Х = 1 и Х = 2 может привести в
тупик, поскольку интерпретация одновременности этих фактов может быть
положительной и отрицательной (скорее всего). Процесс поиска ответа может подчас
остановиться до построения подобных совместных фактов, тогда говорят о
неразрешимости исходного уравнения.
Проблема 4. Почти для каждой операции можно указать свойства, которые
должны учитываться при сопоставлении параметров операций. Это происходит при
неполном определении операций. Каким образом учитывать свойства операций?
Например, коммутативность сложения должна приводить к сопоставлению не только
соответствующих параметров (левых и правых операндов), но и к сопоставлению
несимметричных операндов. Например, следует ли рассматривать А + Р(В) или
вообще говоря равное ему Р(В) + А. Второе сложение может отменить вызов операции
сложения из-за неполадок, возникающих при вычислении Р(В).
Проблема 5. Как и чем определяется число совместных фактов в альтернативе
для решения уравнения? Может ли быть бесконечное число фактов? Все такие
количественные меры важны для выбора средств представления альтернатив
совместных фактов в памяти ВМ. А что такое факт для бесконечного числа
переменных? Что такое бесконечный факт для одной переменной? В математике
вводят в связи с этим последовательности, множества или кванторы. Здесь
необходимо обобщения фактов.
Проблема 6. Является ли полученная альтернатива решения полным решением
логического уравнения? На этот вопрос надо отвечать положительно, так как любое
преобразование логического уравнения сохраняет знания (или смысл исходного
утверждения). Может быть случай, когда вся совокупность альтернатив не
помещается в памяти. Тогда выводится часть решений с оговоркой о неполноте
решения. Этот случай потребует предохранительных мер относительно запроса для
уменьшения числа альтернатив.
Проблема 7. Что такое непротиворечивость, независимость и полнота решения?
Каким образом можно интерпретировать эти свойства решения? Эта проблема в ИЛ
разрешена так, как об этом написано ранее (см. гл. 4). Метаматематика оснований
информатики
представляет
и
обосновывает
алгоритмы
автоматизации
вычислительных процессов, учитывающих такое разрешение проблемы.
Проблема 8. Каким должен быть язык представления алгоритмов обоснования?
Унификация порождает новые задачи получения решения, которые возвращают
вычислительный процесс на алгоритмы логического вывода, а они вновь могут
использовать алгоритмы унификации, но с меньшим числом операций. Другими
словами: исключение одной операции из уравнения приводит к поставке такой же
проблемы разрешения уравнения, но в более простой форме. Этот процесс
завершается до полной применимости алгоритмов унификации (алгоритмов
исключения операций), в конечном счете - до получения альтернатив комплексов
фактов.
Проблема 9. Как определять и интерпретировать сам факт? Факт - это
отражение свойств множества значений? Конечно, отражение того множества
значений, которое характеризует величину.
Пример из [Непейвода79]:
Пусть А или В, из А следует С(т1), из В следует С(т2). Существует Х такой, что
С(Х). По этой постановке составляется логическое уравнение: (А или В) и (из А
следует С(т1)) и (из В следует С(т2)) и (существует Х такой, что С(Х)). Уравнение
решается следующим образом.
А, С(т1), не В, С(Х);
А, С(т1), С(т2), С(Х);
В, С(т2), не А, С(Х);
В, С(т1), С(т2), С(Х).
С(Х) - выражение, в котором Х является искомым. Далее:
А, С(т1), не В, Х=т1;
А, С(т1), Х=т1, т2 = т1;
В, С(т2), не А, Х=т2;
В, С(т1), т2 = т1, Х=т1.
Проверить! Для А или В - оба истинны! Может быть сложная формула. По
правилам: (локально С(Х) поглощает С(т))
Х = т1, (А, не В, Х = т1);
Х = т1, Х = т2, (А, Х = т1, Х = т2);
Х = т2, (не А, В, Х = т2);
Х = т1, Х = т2, (В, Х = т1, Х = т2);
Аксиомы исчисления фактов. Ниже приводятся аксиомы для фактов,
предназначенные для построения МЛВ в части исчисления фактов.
Аксиома 18.1 [301]. А(Х), Х = С => А(С), если С - исходная величина, Х
- искомая.
Равенство превращается в подстановку, если учтена квалификация величин.
А18.2 [302]. (Х = А & Х = В) => А = В.
Величина не может принимать два различных значения одновременно.
А18.3 [303]. (Х > А & Х > В) => (Х > В & А <= В) \/ (Х > A & А > В).
А18.4 [304]. (Х >= А & Х > В) => (Х > В & А <= В) \/ (Х >= A & А > В).
А18.5 [305]. (Х >= А & Х >= В) => (Х >= В & А <= В) \/ (Х >= A & А > В).
А18.6 [306]. (Х < А & Х < В) => (Х < В & А >= В) \/ (Х < A & А < В).
А18.7 [307]. (Х <= А & Х < В) => (Х < В & А >= В) \/ (Х <= A & А < В).
А18.8 [308]. (Х <= А & Х <= В) => (Х <= В & А >= В) \/ (Х <= A & А < В).
Если Х - искомая или неопределенная величина, то
А18.9 [309]. (Х > А & Х < В) => А < В.
А18.10 [310]. (Х > А & Х <= В) => А <= В.
А18.11 [311]. (Х >= А & Х <= В) => А <= В.
5.1.18. Логика программ. Логика программ рассматривается с двух точек
зрения. Первая относится к известным результатам исследований и реализаций -
логика таблиц решений, вторая - к принятой в ИЛ логике действий, порождаемых по
результатам логического вывода решения логического уравнения. Прежде рассмотрим
понятие таблиц решений [Хамбли76], чтобы продемонстрировать подход к логике
действий в ИЛ.
Многие задачи, решаемые на ВМ, в особенности задачи моделирования,
включают большое число логических условий выполнения действий. ЭС является
хорошим примером для иллюстрации этого положения. Программа для ЭС (или
вводимые знания) состоят главным образом из логических условий и указания
действий, которые должны инициируются при выполнении условий. Программы для
решения таких задач включают большое число ветвлений. Разработка и отладка таких
программ приводит к чрезвычайным осложнениям, многие из которых разрешаются
при использовании табличного языка записи запросов. Имеется сложность в
разработке тестов для проверки правильности программы, необходимо проверять все
ветви. Обнаружение ошибок в процессе практической эксплуатации может привести к
непредсказуемым последствиям. К этому надо добавить, что внесение исправлений в
такие программы представляет собой трудоемкую процедуру из-за необозримости
совокупности условий. Некоторое послабление наступает в результате использования
операции композиции таблиц решения. Имеется еще одна сложность, важная для
знаниеведа или специалиста: невозможность их общения с программной записью всех
условий (логических выражений) с действиями, которые должны инициироваться при
выполнении условий. Указанные сложности программ ЭС являются требованиями к
построению логики действий. Таблицы решений не нашли своего массового
применения, скорее всего из-за указанных особенностей и сложностей.
Существенную помощь пользователю, специалисту, знаниеведу и программисту
оказывают таблицы решений, доступные для разработки, понимания смысла
алгоритмов, изменения и отладки. Заведомо ясно, что постепенный переход к
естественному виду представления процедурного знания обеспечивает разрешению
перечисленных выше сложностей и проблем. Трансляция исходных записей таблиц
решений обеспечивает автоматический переход к программе на некотором
формальном языке.
Имеются самые разнообразные виды таблиц решений. Обобщенный вид можно
охарактеризовать следующим заголовком:
Метка
строчки
23
…
Корень условия
Труд
Корень действия
А=0
…
Действие1
Действие2
…
Вероятность
действия
Р1
Р2
…
Номер
правила
23
31
…
Имеются и другие «языки» таблиц решений. Абстрактная структура таблиц решений
может представляться так. Имеется матрица, которая по строчкам ссылается на
автономные условия, а по столбцам ссылается на действия так, чтобы каждой
комбинации условий (двоичный вектор из значений ложь и истина) соответствовало
действие. Объем матрицы может быть алгоритмически сокращен в зависимости от ее
заполняемости матрицы. Вместо матриц может использоваться ее строчная запись в
соответствии с подходящим языком таблиц решений.
Другой подход к программированию связан с применением ИП. Он
предназначен для программистов (не для каждого пользователя). Для применения
ЯПП при составлении программ предусмотрены следующие его особенности. На ЯПП
можно писать операции присваивания и вызов подпрограмм. Некоторые выражения
могут помечаться метками, представленными терминами. Метки ставятся перед
выражениями. Кроме этого все метки собираются в разделе меток для их введения и
описания. Часть выражений может выделяться «скобками» по образцу:
начало абзацы конец.
В тексте абзацев могут использоваться вызовы подпрограмм. Эта конструкция
напоминает составной оператор. Имеется одна программная константа skip (ничего не
делать). Считается, что выполнение подпрограммы или ее отдельных частей рождает
факт, который имеет вид «имя подпрограммы = истина», а невыполнение (сбой,
прерывание операционной системы и др.) рождает факт, который имеет вид «имя
подпрограммы = ложь». При невыполнении - никакого результата по альтернативе,
содержащей невыполняемую подпрограмму, не выводится, вместо него выводится
сообщение об ошибке (о противоречии). Внутренние кванторы переводятся в циклы.
Определена в ЯПП одна операция соединения подпрограмм в последовательность.
Она обозначается символом ;^ (.^ - символ катенации программ). Последовательность
не должна ничем нарушаться. Операция соединения частей программы (составной
оператор) и подпрограмм определяется аксиомами, которые даны ниже. Пусть Р с
индексом или без него - подпрограмма, тогда операция катенации программ и
константа skip (пустая подпрограмма) определяются аксиомами следующего вида.
А18.1. [281] P ;^ skip = P,
А18.2. [282] skip ;^ P = P,
А18.3. [283] P1 ;^ (P2 ;^ P3) = (P1 ;^ P2) ;^ P3,
А18.4. [284] P ** целое = (P; ^ P; ^ …; ^ P), целое число раз.
В ЯПП введена стандартная подпрограмма «перейти на» (использование go to),
которая имеет один параметр со значением быть меткой и передает управление на
выражение, помеченное этой меткой. Для представления условного перехода по
истинности выражения А можно использовать логическое выражение вида А =>
перейти на М (или «если А, то перейти на М») или (А ;^ перейти на М). Они
напоминают неформальную запись правила, которое используется в таблице решения.
Такое формы управления вводят понятие явного перехода или передачи управления,
но они являются более наглядными по сравнению с представлением управления в
таблицах решений.
В ЯПП используется аппарат организации параллельного выполнения программ.
Для указания параллельного выполнения используется операция сложения программ
Р1 и Р2 (Р1 , Р2) или параллельного выполнения. В языке Ада используется понятие
задачи [Бар88, Василеску90, Вегнер83, Джехани88, Красилов83а, 86б, 87а, 88б, 88г,
89в, Пайл84,]. Этот язык подтверждает тот факт, что автоматическое
распараллеливание вычислительных процессов невозможно. Однако, имеются
алгоритмы распараллеливания операций, они довольно успешно разрабатываются и
применяются. Свойства операции сложения программ определяются следующими
аксиомами.
А18.5. [285] (P , skip) = P,
А18.6. [286] (skip , P) = P,
А18.7. [287] (P , P) = P,
А18.8. [288] (P1 , P2) = (P2 , P1),
А18.9. [289] (P1 , (P2 , P3)) = ((P1 , P2) , P3),
А18.10. [290] (P1 , P2) ;^ P3 = (P1 ;^ P3 , P2 ;^ P3).
Первые две аксиомы добавляют сведения к определению пустой подпрограммы,
следующие три аксиомы определяют свойства операции сложения (параллельного
выполнения), последняя аксиома устанавливает свойства композиции операций
катенации и сложения. Считается, что программист знает приемы или метода
реализации в программах понятий семафора (управляющий флаг), задержки
(наблюдение за интервалами времени) и сторожа (прерывания и возврата управления
по времени), ожидания приема данных с помощью семафоров, задержек и сторожа и
завершение выполнения параллельных программ (по метке, внесением «полезной
ошибки» и по исключительной ситуации).
Устранение аксиомы А18.7 дает возможность построения проверочных тестов
для параллельных процессоров. Создатели многопроцессорных ВМ сами
разрабатывают тесты, которые можно создать с помощью Интеллсист. Тесты не
простые и требуют более глубоких исследований, чем написание программы (P1 , P2).
Аксиома А18.9 определяет компоновку программ для ВМ с малым числом
процессоров параллельного выполнения операций. Аксиома А18.10 говорит о порядке
выполнения программ, которые следуют за параллельно выполненными программами.
Пока не выполнятся все параллельные процессы нельзя приступать к выполнению
последовательных программ.
Следующие аксиомы определяют операции унификации для подпрограмм с
условием. ЭС может быть представлена альтернативной последовательностью
катенации условия и подпрограммы: C;^ P, которая интерпретируется как
последовательная проверка условий C и выполнение подпрограммы P, если условие
принимает истинное значение. Катенация C;^ P имитирует простую продукцию ЭС.
Проверок условий будет столько, сколько продукций использовано для описания
знаний. Для уменьшения числа проверок и обнаружения ошибок в знании необходимо
использовать аксиомы для порождения правил унификации и контроля правильности
знаний.
А18.11. [291] (ложь ;^ P) = ложь.
А18.12. [292] (истина ;^ P) = P.
А18.13. [293] ((С1 & C2) ;^ P) = (С1 ;^ C2 ;^ P).
А18.14. [294] (С1 \/ C2) ;^ P = C1 ;^ P ;^ ложь ;^ C2 ;^ P.
На основе указанных операций построен язык управления заданиями (или
задачами) с именем "Организатор". Этот язык является подъязыком языка Лейбниц.
5.1.19. Математические операции. Условно к прочим операция относятся
специальные многоместные операции (с числом аргументов более двух) и функции
математического анализа. Логика таких функций-операций также учитывается в ИЛ
для сокращения объема связанных с ними вычислений. Вначале в общих чертах
рассматривается распространение аксиоматики «маломестных» функций на
многоместные и специальные широко известные функции, затем подробнее
рассматриваются функции математического анализа, которые часто используются в
расчетах и в моделировании.
Обычно в формулах используются одноместные и двуместные операции. Кроме
этого в формулах используются и многоместные операции в виде
многопараметрических функций (или процедур). Сюда относятся также многоместная,
например операция сложения. В связи с тем, что важно подробно рассматривать
операции с нулем, одним или двумя операндами, а большее число операндов (три,
четыре и т.д. операндов) не вносят ничего примечательного, будем выделять операции
и функции с некоторым числом аргументов, их число может задаваться в качестве
одного из параметров.
Прежде всего рассмотрим уже использованные выше в К-значных логиках
функции max и min, а также sum и mult. Каждая функция применяется в четырех
вариантах: групповое суммирование, групповое умножение, поиск максимума и поиск
минимума.
sum(i, 1, n, E(i)) суммирование функции E(i) по индексу i из (1..n),
sum(i, Cond(i), E(i)) - суммирование функции E(i) по условию Cond(i),
plus(А1, А2, А3,..,Ак) -суммирование по списку от А1 до Ак,
sum(М) суммирование по массиву М данных,
mult(i, 1, n, E(i))
-произведение значений функции E(i) по индексу i
из (1..n),
mult(i, Cond(i), E(i)) - произведение значений функции E(i) по условию Cond(i),
multip(А1, А2, А3,..,Ак) - произведение значений по списку от А1 до Ак,
mult(М) произведение значений по массиву М
данных,
max(i, 1, n, E(i)) максимум функции E(i) по индексу i из (1..n),
max(i, Cond, E(i)) максимум функции E(i) по условию Cond(i),
max(А1, А2, А3,..,Ак) -максимум по списку от А1 до Ак,
max(E) максимум по массиву М данных.
min(i, 1, n, E(i)) минимум функции E(i) по индексу i из (1..n),
min(i, Cond, E(i)) минимум функции E(i) по условию Cond(i),
min(А1, А2, А3,..,Ак) -минимум по списку от А1 до Ак,
min(E) минимум по массиву М данных.
В ИЛ не рассматриваются применения этих функций к выражениям и функциям
(min(E(X)) по X), которые требуют специальных алгоритмов оптимизации (их нельзя
вводить принудительно), применения должны при необходимости содержаться в
профессиональных знаниях или в запросах пользователя. Аксиомы для этих функций
помещены в БЗ «Прикладные знания». Здесь они не приводятся.
К функциям математического анализа относятся следующие. Они также не
сопровождаются :аксиомами, которые вошли во встроенную БЗ. В таблице дан весь
перечень функций.
Номер по Наименование
порядку
функции
1
Квадратный
корень
Термин для
функции
sqrt
Пример
обращения
sqrt(А)
Некоторые аксиомы
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
sign
entier
sign(А)
entier(А)
arg
arg(А)
Re
Re.А
Im
random
ln
Im.А
random(А)
ln(А)
log
log(А)
exp
sin
cos
tg
ctg
sec
cosec
arcsin
arccos
arcctg
arcctg
arcsec
arccosec
sh
sign(-Х) = - sign(Х)
ln(А*В)= ln(А) + ln(В),
ln(А/В) = ln(А) - ln(В),
ln(А**В) = ln(А) * В.
log(к, А*В) = log(к, А) +
log(к, В), log(к, А/В) =
log(к, А) - log(к, В),
log(к,А**В)=log(к,А)*В,
log(к,А*В)=log(к, А) +
log(к, В)
exp(А)
sin(А)
sin(0)=0,
cos(А)
cos(0)=1,
tg(А)
tg(0)=0,
ctg(А)
sec(А)
cosec(А)
arcsin(А)
arccos(А)
arcctg(А)
arcctg(А)
arcsec(А)
arccosec(А)
sh(А)
ch
ch(А)
th
th(А)
cth
cth(А)
Arsh
Arsh(А)
Arch
Arch(А)
Arth
Arth(А)
Arcth
Arcth(А)
Заметим, что функции not, ref, skim, next, pred и abs рассмотрены ранее в этой главе.
Конечно, в ИЛ использованы только самые «ходкие» функции числовых
переменных, функций или выражений. Специальные функции пользователь должен
рассматривать сам либо при выборе БЗ, либо при формировании запросов.
5.1.20. Логика рекурсивных определений. Рекурсивные знания представляются
рекурсивными определениями. Они являются высшей формой сжатия знаний по
объему. Рекурсивное определение, например функций, имеет общий вид:
F(X1, X2,.., Xn) = константа,
F(X1, X2,.., Xn) = G(F(Y1, Y2,.., Yn), X1, X2,.., Xn),
где Y1, Y2,.., Yn могут зависеть от X1, X2,.., Xn.
Определение функции F(X1, X2,.., Xn) может состоять из последовательности
равенств большей двух. Более того, некоторые Xi могут принимать значения из
натурального ряда целых чисел, а некоторые переменные Yj могут зависеть от Xi или
от других функций G или F (рекурсивно могут определяться совместно две и более
функций). Сразу обратим внимание на тот факт, что отсутствие в определении
рекурсивной функции первого (или аналогично первому) равенства приведет
логический вывод построения решения задачи к парадоксу (или противоречию),
разрешение которого невозможно без участия пользователя. Природа парадоксов
будет рассмотрена в т.7 на известных примерах. И только наличие равенства типа
первого исключает возможность появления противоречий. Конечно же это не
единственная причина появления парадоксов. Парадокс может возникнуть и при
невозможности использования в процессе логического вывода равенства с константой.
Примерами рекурсивных функций
арифметические операции. Вот их череда.
являются
функции,
определяющие
Определение функции «следующий».
next(X) - арифметическое следование определяется так:
next(0) = 1;
next(next(X)) = next(X) + 1 (добавление единицы или Х + 1).
Определение функции «сложение».
sum(X, Y) - арифметическое сложение (X + Y) определяется так:
sum(X, 0) = X;
sum(X, next(Y)) = next(sum(X, Y)).
Определение функции «умножение».
mult(X, Y) - арифметическое умножение (X * Y) определяется так:
mult(X, 0) = 0;
mult(X, next(Y)) = sum(mult(X, Y), X).
Определение функции «экспонента».
exp(X, Y) - арифметическое возведение в степень (X ** Y) определяется так:
exp(X, 0) = 1;
exp(X, next(Y)) = mult(exp(X, Y), X).
Определение функции «тетрации».
tetr(X, Y) - арифметическая тетрация (X  Y) определяется так:
tetr(X, 0) = 1;
tetr(X, next(Y)) = exp(tetr(X, Y), X).
Этот (также рекурсивный) ряд может быть продолжен сколько будет угодно
пользователю. В ИЛ все функции кроме последней определяются с помощью других
аксиом и методов вычисления их значения. Эти определения при некотором усилии
распространяются на вещественные числа. Последняя функция тетрации загадочна.
Достаточно легко можно построить алгоритм вычисления значения тетрации над
целыми числами, но не удается построить алгоритм вычисления значений тетрации с
вещественным Х и Y. Можно только выдвинуть гипотезу о том, что познание этой
операции позволит аналитически решать нелинейные уравнения, которые обычно
решаются только численно (приближенно), а не в конечном формульном виде. Еще
сложнее рассматривать дальнейшие операции пентации, септации и др.
Для каждой арифметической функции можно построить обратную, например для
next обратной является функция pred, для sum - вычитание sub, для mult - деление div
и mod, для exp - логарифм lg или log, для tetr - например tlog. Они могут определяться
также через рекурсии.
Постепенное раскрытие рекурсии приводит к бесконечным зависимостям с
«зацеплением» функций друг за друга. Графическим (и реализационным)
представлением таких «зацеплений» является дерево, которое потенциально может
быть бесконечным. В частности, парадоксы как раз и связаны с бесконечными
деревьями, у которых все или некоторые ветви бесконечны. Начальное равенство в
определении рекурсивных функций обрывает бесконечные ветви. Принято в ИЛ
рассматривать конечные деревья, построенными для формул, и бесконечные деревья
как целое без регулярного анализа всех ветвей.
Дерево называется бесконечным, если в нем имеется хотя бы одна потенциально
бесконечная ветвь (или цикл). В силу бесконечности дерева и конечности памяти
необходимо свести (привести) бесконечное дерево к конечному. Основным аппаратом
сведения являются циклы в дереве. Цикл в дереве противоречит определению дерева.
Поэтому понятие «дерево с циклом» будет именовать термином бесконечное дерево. В
качестве бесконечного дерева можно рассмотреть дерево, которое получается после
представления выражения с квантором в виде дерева. Бесконечные деревья могут
порождаться в процессе бесконечного применения правил подстановки выражений из
определения рекурсивных функций или правил вывода, возникающих при сведении
рекурсивных определений к таковым. Возникает несколько проблем для построения
процессора деревьев с бесконечными деревьями:
- выработка способов представления бесконечных деревьев;
- разработка операций преобразования бесконечных деревьев;
- распознавание бесконечного дерева;
- образование, кодирование и хранение бесконечного дерева;
- печать таких деревьев или их строчное представление;
- операции с бесконечными деревьями;
- сведение бесконечных деревьев к замкнутому виду;
- оптимизация представлений бесконечных деревьев.
Частные случаи бесконечных деревьев представлены в замкнутом виде при
определении рекурсивных арифметических операций. Именно только аналогичный
способ представления может использоваться в Интеллсист.
Алгоритм распознавания бесконечного дерева состоит из просмотра
определений всех функций, равенств и присваивания, которые содержат
неприводимые фразы с функцией. Взаимная рекурсия вхождения функций
распознаются сложнее, они, в частности, могут определять второй и последующие
уровни интеллектуальности Интеллсист.
Рекурсивность функций кодируется в виде дерева со ссылками на свои же
поддеревья. Аналогично этому печать или операции логического вывода строчного
вида рекурсивных функций не предоставляет трудностей. Ни печать, ни хранение или
операции преобразования не используют операцию раскрутки бесконечного дерева. В
таких случаях рекурсия присутствует явно или модифицируется незначительно при
строчном представлении или после операций подстановки и замены.
Оптимизация дерева состоит в определении совпадающих ветвей двух деревьев
и в организации ссылок у этих двух деревьев на одно и то же поддерево. В результате
оптимизации ни одно дерево из списка деревьев не должно иметь одинаковых
поддеревьев (или листьев). В этом состоит сущность оптимизации. Тактическое
решение проблемы оптимизации кроится в результативности поиска совпадающих
поддеревьев, стратегическое решение проблемы оптимизации заключается в
расстановке процедур поиска совпадающих поддеревьев.
Простой пример задачи с рекурсией «Число знаков в строке» (полужирным
шрифтом выделены термины, которые формируются автоматически):
раздел понятий
вводная строка, а есть строки.
знак есть символьный.
длина: функция( с есть строка) : целое.
раздел знаний ~определение длины строки~:
длина («») = 0;
длина(а ^ знак) = длина(а) + 1;
раздел запроса ~ Число знаков в строке ~:
найти Х: целый ( Х = длина (вводная строка)).
конец.
В результате прогоны текста через Интеллсист получаем ответ:
«Число знаков в строке»
(после ввода по запросу Интеллсист значения «вводной строки» = «Москва»):
Х = 6.
Второй пример (см. [Набебин96] на стр. 154) относится к задаче построения
списков
тип список = запись А: абстрактный; В:ссылочный список
конец записи;
-- принадлежность к списку, если он рекурсивен (он - «множество» или граф)
-- «Список» для решения задач со списками
-- [] - список {}? Или его голова (есть еще хвост, отделяемый |)
Х in []
Определение: Х in [X | Y]
Х in [Y | Z] => X in Z
Первый элемент в списке = первый = Х in [X | Z]
Последний элемент в списке = последний = X in [X] & X in [Z | Y] => X in [Y]
next element (X, Y, Z)
соединение списков (X, Y, Z), если X и Y образует Z
обращение списка
выравнивание списка (исключение списков из исходного списка)
добавление элемента в начало списка
удаление первого из списка
(в списках могут быть повторы элементов)
замена элемента в списке: замена(А, В, С, Д) = вместо А в В подставить С с
результатом Д.
X in [X] in с окраской (какая операция)!!!
Далее задачи. с in [a, b, c, d]
5.1.21. Логика алгебры. Алгебра в математике занимает особое место. Без нее
не могут решаться никакие задачи. В Интеллсист подсистема «Алгебра» выделена из
МЛВ в самостоятельный блок МАВ. Он подключается после распределения или
указания свойств величин: величина может быть исходной, искомой, счетной или
неопределенной. Внешний квантор «для всякого» определяет исходные величины, а
внешний квантор «найти» определяет искомые величины. Однако реальная запись
запроса может и не содержать внешние кванторы, тогда вмешательство пользователя
будет обязательным для квалификации величин. И еще одно важное обстоятельство.
Задача, представленная в запросе, может быть обращена, то есть, некоторые исходные
величины могут стать искомыми, а искомые - входными. Какую задачу нужно решать
определяет пользователь. После работы МЛВ Интеллсист запрашивает у пользователя
сводку квалификаций всех величин, участвующих или используемых в запросе. После
квалификации величин подключается подсистема «Алгебра», которая реализует
логический вывод в соответствии с аксиоматикой, изложенной ниже. После этого
вновь работает МЛВ, строится окончательный результат вывода решения.
Аксиоматика алгебры известна в математике. Она собрана в этом разделе.
Основным изобретательским приемом в решениях математика является поиск и
применение подстановок. Они по существу и являются реализацией озарения каждого
математика, если он получает оригинальные результаты. Подстановка является
главным средством обобщения. Поиск подстановочной формулы и замена этой
формулы новой величиной в выражении приводит само выражение к виду, для
которого имеется стандартное (табличное) решение. Поиск подстановок в особенности
существен при аналитическом решении интегралов. Все корни полинома четвертой
степени находятся по формуле для корней квадратного уравнения, если вместо
квадрата неизвестной можно подставить новую величину во всем исходном полиноме.
Таких примеров можно привести много.
Поиск подстановок осуществляется человеком по интуиции, наитию, аналогии
или перебором известных вариантов. МАВ имеет материал (внутреннее представление
знаний), по которому можно автоматически находить подстановки. Это сопряжено с
реализацией многократного перебора вариантов представления подвыражений и к
большим временным затратам. Например, в биквадратном полиноме вхождение
неизвестной Х может быть вначале задано так: Х**4, Х**3*Х, Х**2*Х**2, Х*Х*Х*Х.
Эти возможные варианты должны при удачном исходе поиска подстановки привести к
подстановке Х**2 -> У, что после реализации подстановки приводит исходный
биквадратный полином относительно У к квадратному полиному. Первые версии
Интеллсист не содержат подпрограмм перебора выражение для поиска подстановок.
Другими словами подсистема «Синтезатор подстановок» в ней отсутствует, хотя
алгоритмы реализации ясны в общих чертах, они базируются на алгоритмах
приведения аддитивных и мультипликативных подобных членов.
В связи с этим аксиоматика алгебры включает аксиомы, которые уже приведены
в предыдущих разделах, и приводимые ниже аксиомы, которые определяют правила
решения уравнений и не требуют применения либо всего имеющегося разнообразия
методов (алгебры, геометрии или анализа), либо методов вычислительной математики.
МАВ не проводит глубокого математического анализа выражений для определения
условий применения того или иного аналитического или численного метода. Этот
анализ должен делать сам пользователь, а после анализа принимать решение
относительно метода решения уравнений, который может быть обнаружен в
соответствующей БЗ или в учебнике. Например, имеется много методов решения
систем линейных алгебраических уравнений или обращение матриц, имеется много
численных методов решения трансцендентных уравнений. В таких случаях выбор за
пользователем. Поскольку пользователь связан с конкретным набором задач, он может
составлять свою БЗ, которая вводится однажды для решения класса задач.
Логика алгебры устанавливает правила для преобразования выражений к
выражениям, в которых выделены искомые величины так, чтобы они по возможности
определялись искомыми значениями. При этом разрешаются только те выражения,
которые имеют вхождение только одной искомой величины. Решение уравнения
находятся для выражений, включающих все операции. Решение находится
относительно равенства, неравенства и отношения «меньше». Относительно искомых
величин необходимо выполнять операции раскрытия скобок, сборку подобных членов,
поиск местных преобразований, решать уравнения и неравенства, раскрытия
кванторов, интерпретации, логической оптимизация.
Совокупность алгебраических аксиом является основой для построения
машины алгебраического вывода. Она применяет правила алгебраических
преобразований, не реализуется автономно из-за особенностей алгебраических задач
решения уравнений. Каждая аксиома излагается в двух вариантах: вариант
использования в Интеллсист и вариант использования в математике [Компьютер86,
Мальцев90, Феферман71]. Варианты не противоречат друг другу, но лишь
способствуют пониманию существа алгебраического преобразования выражений. В
аксиомах использованы термин Х для обозначения искомой величины и термины А, В
и С для обозначения независимых от искомой величин.
Аксиоматика раскрытия скобок. Раскрытие скобок в выражениях необходимо
для выделения искомых величин. Они могут сгруппироваться и способствовать
решению уравнений или неравенств относительно неизвестных величин. Раскрытие
скобок определяется аксиомами, которые здесь приведены представительно.
А21.1. [295] - (-А) = А.
А21.2. [296] - (А + В) = - А – В.
А21.3. [297] (A + B)**2 = A**2 + 2 * A * B + B**2.
А21.4. [298] ((A + B) * (C + D)) = (A * C + A * D + B * C + B * D).
А21.5. [299] ((A - B) * (C + D)) = (A * C + A * D - B * C - B * D).
Другие подобные аксиомы легко могут быть представлены, они связаны со знаком
операции минус.
А21.6. [300] ((A * B) ** C) = (A ** C * B ** C).
Для выражений с константами К1 и К2 имеется серия аксиом.
Аксиомы приведения подобных членов относятся не только к сложению и
вычитанию, но и к умножению и делению.
А21.7. [301] Х * К1 + Х * К2 = Х * (К1 + К2).
А21.8. [302] А * Х - В * Х = Х * (А - В)
А21.9. [303] Х ** К1 * Х ** К2 = Х ** (К1 + К2).
А21.10. [304] Х ** К1 / Х ** К2 = Х ** (К1 - К2).
Локальные преобразования связаны с наличием «прямых» и «обратных»
функций математического анализа, которые взаимно «гасятся». Ниже приведены
некоторые аксиомы такого преобразования.
А21.11. [305] next(X + A) = X + next(A),
А21.12. [306] pred(X + A) = X + pred(A),
А21.13. [307] sqrt(X ** 2) = X,
А21.14. [308] sqrt(X) ** 2) = X,
А21.15. [309] ln(X ** Y) = Y * ln(X),
А21.16. [310] log(A, X ** Y) = Y * log(A, X),
А21.17. [311] exp(ln(X)) = X,
А21.18. [312] exp(log(A, X)) = A,???
А21.19. [313] sin(arcsin(X)) = X,
А21.20. [314] arcsin(sin(X)) = X,
А21.21. [315] cos(arccos(X)) = X,
А21.22. [316] arccos(cos(X)) = X,
А21.23. [317] tg(arctg(X)) = X,
А21.24. [318] arctg(tg(X)) = X,
А21.25. [319] ctg(arcctg(X)) = X,
А21.26. [320] arcctg(ctg(X)) = X,
А21.27. [321] sec(arcsec(X)) = X,
А21.28. [322] arcsec(sec(X)) = X,
А21.29. [323] cosec(arccosec(X)) = X,
А21.30. [324] arccosec(cosec(X)) = X,
А21.31. [325] sh(Arsh(X)) = X,
А21.32. [326] Arsh(sh(X)) = X,
А21.32. [327] ch(Arch(X)) = X,
А21.33. [328] Arch(ch(X)) = X,
А21.34. [329] th(Arth(X)) = X,
А21.35. [330] Arth(tg(X)) = X,
А21.36. [331] cth(Arcth(X)) = X,
А21.37. [332] Arcth(ctg(X)) = X.
Аксиомы, определяющие алгебраические тождества, многочисленны. Они
используются для решения уравнений с одним неизвестным. Если число неизвестных
более одного, то считается, что для решения соответствующих уравнений имеются
самые разнообразные методы, которые подбирает пользователь. ИЛ не должна
диктовать один какой-либо метод, чтобы не внести искажения в знания.
Тригонометрические законы
(sin(X)**2 + cos(X)**2) = 1
(с периодами = 2 * к * pi или к * pi)
А21.38. [333] (X + A = B) = (X = B - A),
существует X (X + A = B).
А21.39. [334] (X * A = B) = (X = B / A & not(A = 0)),
существует X (X * A = B).
А21.40. [335] (X / A = B) = ((X = B * A) & not(A = 0)),
существует X (X / A = B).
А21.41. [336] (A / X = B) = ((X = A / B) & not(B = 0)),
существует X (А / Х = B).
А21.42. [337] (X ** 2 = A) = (((X = sqrt(A) \/ X = - sqrt(A)) & (A > 0)),
существует X (X ** 2 = A).
А21.43. [338] (X * X = A) = (((X = sqrt(A) \/ X = - sqrt(A)) & (A > 0)),
существует X (X * X = A).
А21.44. [339] (X ** A = B) = (X = exp(ln(B) / A)),
существует X (X ** A = B).
А21.45. [340] (A * ln(X) = B) = (X = exp(B / A)),
существует X (A * ln(X) = B).
А21.46. [341] (A * log(B, X) = C) = (X = exp(ln(B) * C / A)),
существует X (A * log(B, X) = C).
А21.47. [342] (A * sin(X) = B) = ((X = arcsin(B / A) & not(A < B) & not(A = 0)),
существует X (A * sin(X) = B).
А21.48. [343] (A * cos(X) = B) = ((X = arccos(B / A) & not(A < B) & not(A = 0)),
существует X (A * cos(X) = B).
А21.49. [344] (A * tg(X) = B) = ((X = arctg(B / A) & not(A = 0)),
существует X (A * tg(X) = B).
А21.51. [345] (A * ctg(X) = B) = ((X = arcctg(B / A) & not(A = 0)),
существует X (A * ctg(X) = B).
А21.52. [346] (A * sec(X) = B) = ((X = arcsec(B / A) & not(A = 0)),
существует X (A * sec(X) = B).
А21.53. [347] (A * cosec(X) = B) = ((X = arccosec(B / A) & not(A = 0)),
существует X (A * cosec(X) = B).
А21.54. [348] (A * arcsin(X) = B) = ((X = sin(B / A) & not(A = 0)),
существует X (A * arcsin(X) = B).
А21.55. [349] (A * arccos(X) = B) = ((X = cos(B / A) & not(A = 0)),
существует X (A * arccos(X) = B).
А21.56. [350] (A * arctg(X) = B) = ((X = tg(B / A) & not(A = 0)),
существует X (A * arctg(X) = B).
А21.57. [351] (A * arcctg(X) = B) = ((X = ctg(B / A) & not(A = 0)),
существует X (A * arcctg(X) = B).
А21.58. [352] (A * arcsec(X) = B) = ((X = sec(B / A) & not(A = 0)),
существует X (A * arcsec(X) = B).
А21.59. [353] (A * arccosec(X) = B) = ((X = cosec(B / A) & not(A = 0)),
существует X (A * arccosec(X) = B).
А21.60. [354] (A * sh(X) = B) = ((X = Arsh(B / A) & not(A = 0)),
существует X (A * sh(X) = B).
А21.61. [355] (A * ch(X) = B) = ((X = Arch(B / A) & not(A = 0)),
существует X (A * ch(X) = B).
А21.62. [356] (A * th(X) = B) = ((X = Arth(B / A) & not(A = 0)),
существует X (A * th(X) = B).
А21.63. [357] (A * cth(X) = B) = ((X = Arcth(B / A) & not(A = 0)),
существует X (A * cth(X) = B).
А21.64. [358] (A * Arsh(X) = B) = ((X = sh(B / A) & not(A = 0)),
существует X (A * Arsh(X) = B).
А21.65. [359] (A * Arch(X) = B) = ((X = ch(B / A) & not(A = 0)),
существует X (A * Arch(X) = B).
А21.66. [360] (A * Arth(X) = B) = ((X = th(B / A) & not(A = 0)),
существует X (A * Arth(X) = B)
А21.67. [361] (A * Arcth(X) = B) = ((X = cth(B / A) & not(A = 0)),
существует X (A * Arcth(X) = B).
А21.68. [362] (A * X ** 2 + B * X = C) = ((X = (- B + sqrt(B * B + 4 * A * C)) / (2 *
A)) \/ (X = (- B - sqrt(B * B + 4 * A * C)) / (2 * A))) & not(A = 0).
существует X (A * X ** 2 + B * X = C).
А21.69. [363] (A * X * X + B * X = C) = ((X = (- B + sqrt(B * B + 4 * A * C)) /
(2 * A)) \/ (X = (- B - sqrt(B * B + 4 * A * C)) / (2 * A))) & not(A = 0),
существует X (A * X * X + B * X = C).
Аксиомы,
определяющие
алгебраические
неравенства,
также
многочисленны. Они также используются для решения неравенств с одним
неизвестным. Если число неизвестных более одного, то считается, что для решения
соответствующих неравенств имеются самые разнообразные методы. ИЛ не должна
диктовать один какой-либо метод, чтобы не внести искажения в знания.
А21.70. [364] (X + A < B) = (X < B - A),
существует X (X + A < B).
А21.71. [365] (X * A < B) = (((X < B / A & not(A = 0) & not(A < 0)) \/ ((not(X < B /
A) & not(A = 0) & (A < 0))),
существует X (X * A < B).
А21.72. [366] (X / A < B) = ((X < B * A) & not(A = 0) & not(A < 0)) \/ ((not(X < B *
A) &
not(A = 0) & (A < 0))),
существует X (X / A < B).
А21.73. [367] (A / X < B) = ((X < A / B) & not(B = 0) & not(A < 0)) \/ ((not(X < A ./
B) & not(B = 0) & (A < 0))),
существует X (X / A < B).
А21.74. [368] (X ** 2 < A) = (((X < sqrt(A) \/ X < - sqrt(A)) & (A > 0)),
существует X (X ** 2 < A).
А21.75. [369] (X * X < A) = ((X < sqrt(A) & (A > 0)),
существует X (X * X < A).
А21.76. [370] (X ** A < B) = (X < exp(ln(B) / A)),
существует X (X ** A < B).
А21.77. [371] (A * ln(X) < B) = (X < exp(B / A)),
существует X (A * ln(X) < B).
А21.78. [372] (A * log(B, X) < C) = (X < exp(ln(B) * C / A)),
существует X (A * log(B, X) < C).
А21.79. [373] (A * sin(X) < B) = ((X < arcsin(B / A) & not(A < B) & not(A = 0)),
существует X (A * sin(X) < B).
А21.80. [374] (A * cos(X) < B) = ((X < arccos(B / A) & not(A < B) & not(A = 0)),
существует X (A * cos(X) < B).
А21.81. [375] (A * tg(X) < B) = ((X < arctg(B / A) & not(A = 0)),
существует X (A * tg(X) < B).
А21.82. [376] (A * ctg(X) < B) = ((X < arcctg(B / A) & not(A = 0)),
существует X (A * ctg(X) < B).
А21.83. [377] (A * sec(X) < B) = ((X < arcsec(B / A) & not(A = 0)),
существует X (A * sec(X) < B).
А21.84. [378] (A * cosec(X) < B) = ((X < arccosec(B / A) & not(A = 0)),
существует X (A * cosec(X) < B).
А21.85. [379] (A * arcsin(X) < B) = ((X < sin(B / A) & not(A = 0)),
существует X (A * arcsin(X) < B).
А21.86. [380] (A * arccos(X) < B) = ((X < cos(B / A) & not(A = 0)),
существует X (A * arccos(X) < B).
А21.87. [381] (A * arctg(X) < B) = ((X < tg(B / A) & not(A = 0)),
существует X (A * arctg(X) < B).
А21.88. [382] (A * arcctg(X) < B) = ((X < ctg(B / A) & not(A = 0)),
существует X (A * arcctg(X) < B).
А21.89. [383] (A * arcsec(X) < B) = ((X < sec(B / A) & not(A = 0)),
существует X (A * arcsec(X) < B).
А21.90. [384] (A * arccosec(X) < B) = ((X < cosec(B / A) & not(A = 0)),
существует X (A * arccosec(X) < B).
А21.91. [385] (A * sh(X) < B) = ((X < Arsh(B / A) & not(A = 0)),
существует X (A * sh(X) < B).
А21.92. [386] (A * ch(X) < B) = ((X < Arch(B / A) & not(A = 0)),
существует X (A * ch(X) < B).
А21.93. [387] (A * th(X) < B) = ((X < Arth(B / A) & not(A = 0)),
существует X (A * th(X) < B).
А21.94. [388] (A * cth(X) < B) = ((X < Arcth(B / A) & not(A = 0)),
существует X (A * cth(X) < B).
А21.95. [389] (A * Arsh(X) < B) = ((X < sh(B / A) & not(A = 0)),
существует X (A * Arsh(X) < B).
А21.96. [390] (A * Arch(X) < B) = ((X < ch(B / A) & not(A = 0)),
существует X (A * Arch(X) < B).
А21.97. [391] (A * Arth(X) < B) = ((X < th(B / A) & not(A = 0)),
существует X (A * Arth(X) < B)
А21.98. [392] (A * Arcth(X) < B) = ((X < cth(B / A) & not(A = 0)),
существует X (A * Arcth(X) < B).
А21.99. [393] (A * X ** 2 + B * X < C) = ((X < (- B + sqrt(B * B + 4 * A * C)) /
(2 * A)) \/ (X < (- B - sqrt(B * B + 4 * A * C)) / (2 * A))) & not(A = 0).
существует X (A * X ** 2 + B * X < C).
А21.100. [394] (A * X * X + B * X < C) = ((X < (- B + sqrt(B * B + 4 * A * C)) /
(2 * A)) \/(X < (- B - sqrt(B * B + 4 * A * C)) / (2 * A))) & not(A = 0),
существует X (A * X * X + B * X < C).
Аксиомы для кванторов рассмотрены в разделах 5.1.6 и 5.1.8. Однако данная
система аксиом должна быть пополнена следующими.
А21.101. [395] существует Х (Х = А) = истина, если А принадлежит типу Х, или
ложь, если А не принадлежит типу Х, подстановка Х = А, если имеется
еще выражение, то:
А21.102. [396] существует Х (Х = А & P(X)) => P(A).
А21.103. [397] существует Х (Х < А) есть истина, если А принадлежит типу Х
или больше максимального значений типа Х, или ложь, если А не
принадлежит типу Х или меньше минимального значения типа Х,
изменение типа Х с учетом неравенства, , если имеется еще выражение,
то:
А21.104. [398] существует Х (Х < А & P(X)) -> существует Х1 (P(X1)).
А21.105. [399] для всякого Х (Х = А) => ложь.
А21.106. [400] для всякого Х (Х = А \/ P(X)) => для всякого Х (P(X)) \/ P(A).
А21.107. для всякого Х (Х < А) => ложь, если А принадлежит типу Х или А
меньше минимального значения типа Х, истина, если А не принадлежит
типу Х и А больше максимального значений типа Х.
А21.108. [401] для всякого Х (Х < А & P(X)) -> ложь, если тип Х содержит А;
если тип Х меньше А, то для всякого Х (P(X)).
Аксиомы для логических выражений (с логическими операциями) изложены в
разделах 5.1.1..5.1.8. Если выражение является параметром, то тождества следуют из
аксиоматики:
A21.109. [402] (X < Y) & (Y < Z) => (X < Z).
МАВ разрабатывается непрерывно с ростом числа учитываемых аксиом. В этом
смысле интеллект Интеллсист должен находиться в состоянии роста.
5.2. Логика преобразований и атрибутов. К преобразованиям относятся
преобразование к типу, приведение к типу (или квалификация выражения),
образование агрегатов, переводы лексем во внутреннее представление, присваивания,
масштабирование, подстановка и трансляция текста. Условно к преобразованиям
можно отнести процессы вычисления атрибутов данных. Особняком в ИЛ стоит
аксиоматика смешанных вычислений. Смешанные вычисления - это вычисление во
время трансляции, компиляции, логического вывода или ассемблирования по
фрагментам программы или фразам языка Лейбниц, приводящие к получению
промежуточных результатов, составленных полностью или частично из исходных
данных в объектной программе, или во фразе, передаваемой на ВМ для выполнения;
вычисления при частично или полностью заданных параметрах. Смешанные
вычисления полностью переносятся на понятие вычисления (лучше сказать
предвычисление) смысла фразы, они реализуются по СеГ с полным учетом
аксиоматики ИЛ.
Сразу следует оговориться относительно некоторых преобразований.
Рассмотрим их в порядке, обратном указанному. Аксиоматика трансляции текста или
перевода с ЯПП на ЯЛ определяется формальной грамматикой ЯЛ, включающей
синтаксис, семантику и прагматику. Описание грамматики ЯЛ представляет собой
утверждения, которые являются истинными (своеобразными аксиомами) и
обязательными для безошибочной трансляции. Автономное изложение аксиоматики
трансляции явилось бы повторением всего описанного в «Информатике» материала.
Реализация и применение инструментария ИП является практическим критерием
правильности построения аксиоматики ИЛ. Конечно, здесь необходимо учитывать
последовательную и расширяющуюся реализацию (по версиям), поскольку каждая
система живет и модифицируется со временем.
Процесс подстановки или применения правил может быть описан с помощью
некоторой аксиоматики. Но она не рассматривается в силу достаточной очевидности и
полностью соответствует определению правил. Говорят, что такие аксиомы являются
естественными. Фундаментальные и встроенные правила подстановки определены и
частично обоснованы в гл.6, а задаваемые пользователем правила контролируются им
самим. Любая подстановка должна сохранять истинность преобразуемого выражения это главное требование для правил. Если пользователь сформирует правило,
допускающее нарушение указанного требования, то сам пользователь и несет
ответственность за результаты работы Интеллсист. Например, можно задать правило
дифференцирования diff(cos(X)) -> sin(X) * diff(X), которое может привести к
непредсказуемым результатам. Истинность итогового выражения не гарантируется
после применения такого правила.
Относительно аксиоматики масштабирования можно высказать такие же
утверждения, какие были даны в предыдущем абзаце. Ведь масштабирование
алгоритмически мало отличается от преобразования подстановкой. Поэтому само
определение масштабирования описывает искомую аксиоматику. Отличие состоит в
том, что масштабирование подразумевает операцию умножения на значение
выражения и приведение результата, вообще говоря, к другому типу.
Еще более простой является аксиоматика присваивания. Они представляют
правила подстановки некоторого выражения вместо имени такого же типа как и тип
выражения. Правило замены термина выражением описано в гл.6. Подстановка,
определяемая присваиванием одного из трех видов, сохраняет не только истинность
преобразуемого выражения, но и типы вычисляемых по выражению значений (типы
левой и правой частей присваивания должны быть равны). Понятие сохранения
истинности условно и относится к запросу или его решению. «Локальная» истинность
может меняться. Например, если X:=sin(Y), то выражение Y>0 после подстановки
примет вид sin(Y)>0, значение которого зависит от значений Y и может быть
истинным или ложным.???
Преобразования внешнего представления лексем во внутреннее (переводы
лексем во внутреннее представление) связано с алгоритмами, которые гарантируют
точность (истинность) результата в пределах точности представления типа данных в
ВМ. Дискретные типы преобразуются точно и контролируются в процессе
преобразования. Например, для целых чисел тип определяется по самой лексеме, а
строки контролируются в соответствии с описанием строковых величин. Строка не
может быть длиннее 255. Вещественные типы преобразуются с точностью,
допустимой разрядной сеткой ВМ. Здесь нарушение истинности возможно, а контроль
над нарушениями должен осуществляться средствами вспомогательных утверждений
в запросе. Такие же рассуждения можно провести относительно преобразований всех
других лексем или агрегатов из лексем. Исследование точности представлений
является самостоятельной задачей, которая должна предшествовать созданию БЗ и
запросов на решение задач.
Образование любого из агрегатов не требует отдельной аксиоматики, оно
подчинено правилам грамматики ЯЛ. Образование агрегатов связано лишь с
контролем соответствия типа, размерности и размеров агрегата и атрибутов типа
величины, для которой этот агрегат является значением. В процессе логического
вывода такой контроль осуществляется обязательно. Сущность контроля и выражает
косвенно аксиоматику образования агрегатов.
Приведение к заданному типу или квалификация выражения, которое становится
квалифицированным, связано с объявлением нового типа этого выражения.
Аксиоматика приведения к заданному типу полностью определяется таблицей
допустимых преобразований. Одна аксиома ясна по существу. Если словом «тип»
обозначить заданный тип, то: (тип = тип объекта ’ А) => (тип`(А) = А).??? Истинность
БЗ, запроса и решения сохраняется, если преобразование указано в соответствии с
таблицей, в противном случае автоматически обнаруживается ошибка, которая
связана с противоречием по таблице. В таблице указывается какой тип является
подтипом основного типа. Другими словами, если значение выражения имеет тип А,
то заданный тип Б может быть таким, чтобы Б было меньше типа А или Б было бы
подтипом А, то-есть значение выражения должно иметь тип А. Если тип значения
выражения неизвестен, то квалификация выражения используется для явного
установления типа этого значения. Это путь для доопределения характеристики
понятия, представленного квалифицированным выражением.
Наконец, рассмотрим операцию преобразования к типу, которая связана с явным
преобразованием значения выражения к целевому типу, указанному перед
выражением. Явные преобразования типов допустимы между взаимосвязанными
типами. Взаимосвязь типов дается в таблице, которая определяет аксиоматику
операции.
Теперь обсудим аксиоматику для атрибутов, которые являются своеобразным
преобразованием. Это преобразование связано с выборкой значений из таблиц
характеристик многих объектов. Определение имени каждого атрибута известно в
сводной таблице атрибутов (см. Приложение 2, т.2). Сами определения «состоят» из
аксиом, совокупность которых и есть аксиоматика атрибутов. Здесь важен только
контроль над правильностью применения операции вызова атрибута. Если вызываемая
атрибутом характеристика не определена, то и значение операции не определено.
И еще одно рассмотрение касается понятия смешанного вычисления, которое
также должно определяться аксиоматически. Для каждой фразы имеется алгоритм
вычисления ее смысла. Применение алгоритма возможно только тогда, когда известны
все входящие во фразу значения параметров. Наличие параметров определяется по
признакам, свойственным каждой базовой или предопределенной операции.
Интеллсист использует алгоритм вычисления полностью, если значения всех
параметров известны, и частично, если известны значения только части параметров
(смешанные вычисления смешанных вычислений). Процедура распознавания
возможности применения смешанных вычислений применяется рекурсивно. Это
значит, что после реализации смешанных вычислений с какой-либо операцией и
получением ее значения, проверка признаков возможности смешанных вычислений
осуществляется вновь с этой или охватывающей фразой.
5.3. Общий процесс вывода решений
Работа МЛВ и МАВ осуществляется в соответствии с результатами
преобразования всех аксиом ИЛ в правила для преобразования запроса в результат.
Правила применяются главным образом по мере появления операции в процессе
трансляции и анализа входных выражений, которые поступают по мере ввода абзацев
знаний или запроса. При этом выполняются операции: ввод и трансляция текстов ЯПП
на язык Лейбниц, применение правил преобразования для операций, интерпретация
статических выражений, применение пользовательских правил, алгебраические
преобразования, определение искомых величин, синтез программы или печать
результатов, завершение работ, сбор статистических данных по данному заданию.
Принят общий принцип распределения временного ресурса. Затраты времени
работы распределяются так: возможно наименьшее время работы МЛВ и МАВ
(реализация полиномиального просмотра) и «любое» время для синтеза программы
для реализации квадратичного просмотра.
5.4. Классы конечных результатов решения. Примеры логических задач
ИЛ предназначена для выполнения операций решения логических уравнений,
получения результатов на запросы пользователя. МЛВ подготавливает для печати
результаты логического вывода в форме альтернатив совместных фактов. Здесь под
фактами понимается нечто более широкое по сравнению с точным толкованием того,
что такое факт. Здесь под фактом будем понимать и факт в его точном определении, и
утверждение о фактах, и программу получения точного факта. Если все новые факты,
содержащиеся в результатах, являются точными, то исходное знание, передаваемое
через БЗ и запрос, непротиворечиво, независимо и полно. Применение Интеллсист в
таком случае является продуктивным как с точки зрения скорости и точности, так и с
точки зрения полезности. Такие результаты могут использоваться как конечное
принятое решение, полученное автоматически. Это утверждение надо понимать
отчасти условно, так как результат состоит из альтернатив. Они могут привести к их
анализу с целью исключения некоторых из них и поиску единственного решения.
Конечно, лучший результат - это единственное решение. Однако альтернативные
результаты также могут быть окончательными, все зависит от пользовательского
смысла самой задачи.
Если в результатах отмечено хотя бы одно утверждение о фактах, то сам
результат не является окончательным. Эта ситуация возникает тогда, когда знаний
недостаточно. Результат в этом случае будет полезным, если формулировка запроса
предполагает вывод нового метода решения задачи. Такие результаты можно
квалифицировать как автоматическое определение нового понятия. Здесь можно
выделить два исхода. Первый состоит в том, что получен метод, которые в
дальнейшем будет применяться для решения конкретных задач. Второй состоит в том,
что БЗ необходимо пополнить дополнительными знаниями для получения
окончательного результата из фактов. После пополнения БЗ решение задачи будет
получено после работы МЛВ и МАВ.
На самом деле получение результатов с утверждениями о фактах подразумевает
третий исход. Он состоит в том, что для получения окончательных фактов необходимо
добавить исходные данные (или факты). Их подстановка преобразует утверждения в
конечные факты. Поскольку исходные данные могут варьироваться, то целесообразно
построить программу, которая и будет преобразовывать исходные данные в конечный
результат. В инструментарии имеется синтезатор программ, который реализует
перевод БЗ и запроса в программу с выбором и запросом исходных данных и
получением окончательного результата после производства всех вычислений. Однако
следует обратить внимание на то, что, если не все величины определены как исходные
данные или пользователь не планирует задавать значения некоторых из них, то
синтезированная программа будет выдавать утверждения, содержащие не заданные
своими исходными данными величины. В этом случае можно говорить об
автоматической генерации набора методов решения других задач.
Выше перечислены три класса конечных результатов работы МЛВ, МАВ и
Интеллсист в совокупности. Все они будут полезными, все зависит от смысла в
поставленной для Интеллсист задаче.
из тестовых
5.5. Другие дедукции
В сущности своей, говоря обыденными словами, дедукция - это новое положение
(утверждение), вытекающее из одного, двух и более положений (утверждений).
Широко известна дедукция в математической логике - правило модус поненс.
Следователи часто используют другие виды дедукций. Некоторая интерпретация
других видов дедукции рассматривается ниже. Все формы дедукции должны
использоваться в Интеллсист или МЛВ. Все формы являются похожими друг на друга.
5.5.1. Физическая дедукция. К такому виду дедукции модно отнести выводы о
том, что продолжение по пространству, по времени, по условиям и т.п. величин,
явлений, событий или процессов приведет к таким же, какими они были ранее.
Практически полезный пример физической дедукции: вероятность точного прогноза
погоды равна 0.75, если утверждается, что завтра погода будет такой же, как сегодня.
5.5.2. Алгебраическая дедукция. Если функция дана своим графиком, то можно
построить его аппроксимацию в виде линейной комбинации линейно-независимых
функций, и по аппроксимации подсчитывать либо интерполяционные или
экстраполяционные значения в точках, для которых нет значений исходной функции.
5.5.3. Геометрическая дедукция.
5.5.4. Аналитическая дедукция.
5.5.5. Логическая дедукция
Широко известна логическая дедукция. Она выражается правилом дедукции
(modus ponens): если А и А следует В, то В. Оно используется в МЛ для
доказательства теорем. Кроме логической дедукции всюду используются другие
дедукции. Перечислим лишь некоторые. Сразу надо заметить, что по аналогии с
методами устранения логической дедукции, устраняются аналогичные формы
перечисленных дедукций. Это будет видно из определений примеров других
дедукций.
5.5.6. Программная дедукция.
5.5.7.Тригонометрическая дедукция.
5.6. Применение информатической логики
Область применения ИЛ не очерчена полностью, поскольку сейчас ведутся
работы по ее массовому внедрению. Прагматическая оценка применения ИЛ ясна.
Если задана БЗ, то можно сформулировать запрос, который будет разрешен с
помощью Интеллсист на МЛВ и МАВ в пределах «компетенции» БЗ. Если в запросе
будут использованы понятия, которые не определены в БЗ или в самом запросе, то
реакция Интеллсист будет состоять в индикации ошибки, а полное решение не может
быть получено. Из этого положения практически вытекает, что применение ИЛ с
точки зрения пользователя Интеллсист возможно только при наличии
соответствующей БЗ. Поэтому область применения ИЛ образуется из областей,
покрытых различными БЗ. Вопрос об областях применения Интеллсист не может
сводиться к указанию определенной сферы деятельности пользователя ВМ.
Применяемая БЗ должна соответствовать его сфере деятельности.
Далее применение ИЛ рассматривается с учетом классификации аксиом на 7
классов. Каждый класс аксиом отражается на реализации какой-либо части
инструментария Интеллсист. При обсуждении применения ИЛ не выделяется тот или
иной класс аксиом. В этом нет особой необходимости. Возможно, что некоторый
класс аксиом реализован с ошибками, тогда Интеллсист может выдать системную
ошибку. Обычно такие случаи оговорены в руководствах в разделе ограничений.
Интеллсист содержит встроенную БЗ, которая реализует все возможности ИЛ по
решению логических и арифметических уравнений. Кроме этого пользователь вправе
ввести внешние БЗ, ориентированные на его область применения. Прикладная область
может быть задана в запросе. Поэтому область применения ИЛ определяется не
только используемой БЗ, но и хорошим наполнением знаний во встроенной БЗ.
Интересен следующий вопрос. Каков объем встроенной БЗ? Точного ответа на него
пока не существует. Во встроенной БЗ определены знания о 150 операций и 36 типов
данных. Общее число аксиом (базовые знания) оценивается числом 300. Ясно, что
такой набор операций и типов является избыточным, но он покрывает известные
общие знания. Возможности языка Лейбниц позволяют «моделировать» некоторые
операции и типы данных. Если иметь в виду такую возможность, то можно говорить о
том, что встроенная БЗ избыточна. Однако избыточность оказалась полезной для
обеспечения эффективности МЛВ, МАВ и Интеллсист. Но тогда следовало бы
подумать о расширении встроенной БЗ. И опять, трудно ответить на поднятый вопрос
о составе встроенной БЗ. Пусть эта проблема пока будет открытой.
ИЛ не может рассматриваться изолировано от СеГ. Возможность использования
смысла выражений существенно и качественно расширяет область применения ИЛ.
СеГ не сформулирована полностью. Полная формулировка грамматики невозможна,
так как ЕЯ непрерывно развивается, словарный запас модифицируется или
расширяется, что является базой для доработки СеГ. Важно, чтобы инструментарий
имел быстрые средства для расширения СеГ, используемого в Интеллсист через
словари стандартной части лексикона.
ИЛ не может рассматриваться изолировано от инструментария Интеллсист.
Главная возможность его - это скрытие сведений о формальном языке Лейбниц.
Область применения ИЛ расширяется за счет расширения круга пользователей ВМ.
Основной частью инструментария является оконное меню, которое будет находиться в
непрерывном развитии, что рождает его новые версии и редакции. Развитие СВТ и
круга пользователей стимулируют внесение изменений в инструментарий. Таков
жизненный цикл всех системных программ. Например, сегодня мифической работой
Интеллсист является информационное конструирование систем. Первые же
применения этого раздела меню инструментария укажет либо на недостатки, либо на
необходимые модификации подхода к функционированию работ, связанных с
проектированием систем. Претензии подобного сорта могут коснуться и любого
другого раздела работ инструментария Интеллсист.
ИЛ не может рассматриваться изолировано от накопленного в информатике и
программировании огромного опыта решения различных задач, которые представлены
отработанными программами. Инструментарий и Интеллсист позволяют подключать в
качестве представлений знания программа и подпрограммы. Чаще всего подключение
готовых подпрограмм связано с реализацией процессов физического или виртуального
моделирования. Готовые подпрограммы уже используются при программировании
инструментария. Например, совершенно нецелесообразно разрабатывать и включать в
инструментарий часы, калькулятор, дату, выбор файла и т.п. Инструментарий
Интеллсист работает на базе системы WINDOWS и использует по возможности все
или почти все инициализируемые программы.
ИЛ не может рассматриваться изолировано от ЕЯ (в частности об этом уже
сказано в абзаце выше), с помощью которого память пользователя сохраняет опыт
общения на уровне общедоступных и известных понятий вместе с их терминами,
смыслом и другими атрибутами. Ведь ЯПП является частью ЕЯ, он наследует все
используемые в СеГ свойства ЕЯ. Наиболее важной стороной общения является
хорошее знание связей понятий для выражения смысла, явно не упоминая
подразумеваемое понятие или его термин. ИЛ предусматривает использование такого
опыта человека.
ИЛ не может рассматриваться изолировано от Интеллсист, с помощью которого
автоматически решаются задачи с большими возможностями по сравнению с ПП.
Более того, Интеллсист работает и решает задачи пользователя на основе ИЛ.
Математические основы ИЛ заложены во встроенную БЗ или в МЛВ и МАВ. ИЛ
является средством решения логических уравнений, которые формируются из БЗ и
запроса. ИЛ сформулирована на основе определения всех операций, которые
определены в языке Лейбниц. А сам язык является внутренним представлением
знаний в Интеллсист.
ИЛ может рассматриваться изолировано от перечисленных факторов для
достижения различных целей. Действительно. Металогика, исследующая свойства ИЛ,
рассматривает ее изолировано от инструментария Интеллсист и ИП. Формальное
обоснование ИЛ необходимо для подтверждения правильности применения и
выявления свойств ИЛ, которые могут эффективно использоваться в инструментарии.
Поскольку металогика базируется на теоремах, которые можно доказывать с помощью
Интеллсист, то ИЛ косвенно остается связанной со всеми перечисленными факторами.
ИЛ не может рассматриваться изолировано от программ обучения. Правда,
обучение на основе формального изложения, как это сделано в этой главе, не должно
предусматриваться, поскольку концентрированное описание не может продуктивно
усваиваться. Формальное описание необходимо для автономного исследования,
построения алгоритмов МВЛ и создания встроенной БЗ. Неформальное изложение
должно предусматривать пояснительное и иллюстративное описание констант,
величин и операций, их свойств и применения. В качестве образца такого
неформального изложения можно рассматривать текст, представленный в т.4.
Наконец, ИЛ пригодно для ручного применения. Другими словами, многие
незначительные по объему примеры запросов (задач, вопросов и проблем) могут
разрешаться вручную на базе ИЛ. Цель ручного применения может быть различной:
освоение ИЛ, проверка правильности некоторых положений ИЛ, иллюстрация
возможностей логики. Так можно оценить проблему применения логики решения
логических уравнений.
5.7. Значение информатической логики
Можно сказать, что значение ИЛ полностью определяется поставленными перед
ней целью и назначением, формировать алгоритмы логического вывода решения
логических уравнений. Главное значение ИЛ состоит в том, чтобы быть основанием
информатики и обоснованием алгоритмов МЛВ, МАВ и Интеллсист. ИЛ образует
систему правил для реализации своего назначения. Информатика призвана
обслуживать пользователя с помощью ВМ (может быть и без нее) в его желании
автоматически решать задачи методами ИП.
Основное назначение ИЛ состоит в ее применении для самых разнообразных
логик, например МЛ или ИН. Еще раз можно повторить, что у каждого пользователя
Интеллсист своя логика. Здесь под логикой понимается исчисление, построенное на
основе знаний пользователя об операциях и величинах над ними или используемых
БЗ. Знания представляют исчисления, в которых определяются константы, величины,
операции и различные правила преобразования выражений. Большей частью
используются классические логики. Исключением служит ситуация, когда
используется готовая БЗ вместе со встроенной БЗ, а запросы являются задачами для
решения. Запрос определяет логику пользователя для формирования ее выражений,
которые ограничивают логику используемой БЗ, не внося никаких изменений в нее. С
этих позиций ИЛ является обобщением существующих и потенциальных логик.
Итак, ИЛ призвана поддержать в применениях логику пользователя для того,
чтобы решать его задачи. Любой запрос уже определяет частную логику введением
описаний и преобразований. Это устраивает любого пользователя независимо от того,
решает ли он свою частную задачу или общественно полезную. Так поступали и
поступают всегда в прикладной информатике, в применениях ВМ для автоматизации
всех процессов. Каждая программа обладает такими же свойствами отражать логику
ее создателя. Интеллсист ничем не отличается в этом смысле по сравнению с другими
программами. Но Интеллсист надо рассматривать как инструмент, для которого
применяется логика, заложенная в БЗ и запросы. В этом смысле любая другая
программа содержит в своем коде почти всю логику, исключая фактические знания,
содержащиеся в исходных данных. Таким образом, Интеллсист является
инструментом для работы с любыми знаниями, включая фактические или мыслимые.
Так можно описать практическое значение ИЛ.
Конечно же, пользователь будет опираться главным образом на классические
логики. Это важно в особенности для реализации проверки правильности утверждений
и соответствия их установленным правилам (утвержденной логике). Для этого лучше
всего использовать проверенные и коллективные знания, другими словами,
отлаженные и работающие БЗ, анкеты, шаблоны готовых заданий, что не
ограничивает индивидуального исследователя, он может создавать свои накопители
знаний: БЗ, анкеты и шаблоны. Если индивидуальная разработка этих объектов найдет
рынок сбыта, то она попадает в разряд проверенных знаний. Никто не будет
пренебрегать БЗ, в которую внесены знания из учебников или внедренных руководств.
ИЛ обеспечивает такой общий подход к использованию возможностей ВМ.
И важным является последнее: значение ИЛ состоит в том, что она указывает
хороший путь для (косвенного) расширения ИЛ, которое поддерживает еще
нерешенные задачи в любой области знания, не встававшие ранее конкретные задачи,
проблемы и вопросы. Аппарат языка Лейбниц обеспечивает пользователя всеми
средствами расширения возможностей разрешать задания в соответствии со знаниями,
введенными в Интеллсист в форме запроса.
Знания не даются без старания
Глава 6. Алгоритмы логического вывода
Решение логического уравнения определяется в Интеллсист в соответствии с ИЛ
по алгоритмам, заложенным в МЛВ и МАВ, которые работают по правилам
логического вывода решения. ИЛ состоит из аксиом (определения операций, констант
и величин) и правил вывода. Аксиомы служат для построения дополнительных правил
вывода. Рассмотрим последовательно достаточно полную классификацию системы
правил логического вывода. Глава посвящена определению правил исчисления ИЛ и
их иллюстрациям. По своему существу правила логического вывода именуются в
логике умозаключениями. Все правила служат основой для построения алгоритмов
МЛВ и МАВ. Всего использовано 7 классов правил.
6.1. Правила вывода
Составной частью любого логического исчисления (или умозаключения)
является набор правил логического вывода. (Они определяют интеллект системы.)
Правило логического вывода - это операция преобразования логической формулы так,
чтобы не происходило потери знания и сохранялась мера истинности выражений. Там,
где такие требования нарушаются, используется оговорка о сущности нарушения.
Преобразование должно быть ориентировано на получение конечного результата
решения логического уравнения. Операция преобразования состоит из пары формул,
первая формула - посылка и вторая формула - заключение. Правила логического
вывода предназначены для формализации и вывода логических умозаключений
(доказательств) и для построения пути вывода. Некоторые правила являются
подразумеваемыми или встроенными, другие задаются для Интеллсист из ИЛ, для
конкретных классов задач они содержатся в БЗ или в запросе пользователя.
Встроенными в инструментарий и Интеллсист правилами являются те, которые
строятся из:
 естественных,
 языковых,
 большинства концептуальных аксиом,
 аксиом для фактов,
 логических аксиом ИЛ,
 прикладных аксиом,
 системных аксиом.
Логические аксиомы в форме правил явно встроены в МЛВ и МАВ, а прикладные
аксиомы - в БЗ и запросы. Общий смысл правил вывода состоит в рекуррентном или
рекурсивном сжатии знаний.
Вообще говоря ИЛ включает все семь классов аксиом (см. разд. 4.7). Их
применение таково. Класс естественных аксиом порождает правила работы со знаками
(например, аксиомы одинаковости символов). Эти аксиома явно не выписаны здесь,
они реализованы алгоритмически в программах инструментария и Интеллсист. Эти
аксиомы интуитивно применяются в информатике и программировании давно и
повсеместно. Примерно также можно охарактеризовать класс языковых аксиом.
Примером аксиом этого класса являются синтаксические правила языков Марков,
Лейбниц и Вызов (см. т. 2). Языковые аксиомы полностью использованы в
транслирующей системе Интеллсист. Класс концептуальных аксиом реализуется в
лексиконе, структура и наполнение которого определяет правила работы с терминами
и их атрибутами. Класс аксиом для наборов фактов определяют прагматику всех
сторон представления знаний. Он учтен в реализации всех проверок свойств данных в
программах инструментария и Интеллсист. Правильность встраивания указанных
групп аксиом устанавливается путем жесткой отладки алгоритмов. О классе
логических аксиом будет сказано ниже. Весь класс логических аксиом рассмотрен в
главе 5. Класс прикладных аксиом разрабатывается пользователем и используется при
написании содержимого своих БЗ и запросов. Класс системных аксиом используется
алгоритмически и программно в реализации и применении ОС, инструментария и
программ Интеллсист. Правильность встраивания указанных двух групп аксиом
устанавливается также путем жесткой отладки алгоритмов, реализующих такие
правила и их применение. Все аксиомы всех классов проходят следующие стадии
обработки:
аксиома правило преобразования алгоритм обработки программа преобразования знаний.
Итак, в ИЛ каждая аксиома - это определение объекта или операции, терманда
или термации. Любое определение устанавливает взаимосвязь объектов и операций, а
также включает неопределенные аксиомой данного исчисления объекты и операции.
Предполагается, что неопределенные объекты и операции описаны с помощью аксиом
некоторого класса, они могут определиться в процессе логического вывода или
остаться неопределенными. Указанные положения можно использовать при
конструировании аксиом пользовательского исчисления. Исчисление ИЛ, например,
опирается на язык Лейбниц, в котором зафиксирован набор типов данных и операций
(языковые аксиомы).
Каждый запрос (его можно назвать предположительно прикладной аксиомой или
набором прикладных аксиом) вместе с БЗ конструируется по двум правилам, которые
можно условно именовать: синтаксическими и семантическими. Первое правило
указывает на то, что собственно запрос (З) сохраняет истинность, если БЗ истинна.
Как наиболее частый способ задания запроса он означает, что со знания в базе
согласуются знания в запросе. Условно его можно написать так "БЗ выводит З", но
фактически Интеллсист рассматривает логическое уравнение вида БЗ & З (запрос - это
знание, которое присоединяется к БЗ, которое совместно истинно с БЗ). Второе
правило задает сам пользователь, формируя посылку и заключение для указания того,
что если верна посылка, то верно и заключение. Это можно записать с помощью
операции следования П => З, где П - посылка, З - заключение. Тогда Интеллсист
рассматривает логическое уравнение вида БЗ & (П => З). Особых различий между
двумя правилами задания запроса здесь не наблюдается. Примеры в большинстве
случаев относятся к первому правилу, в задачах диагностики или синтеза программы
рассматривается как раз второе правило задания запроса.
Правила вывода ИЛ представляют в сжатой форме внутренние или встроенные
знания Интеллсист. Внешние правила представляют сжатые знания пользователя, они
задаются пользователем как обобщенные знания о фактах и утверждениях о фактах. С
помощью этих знаний Интеллсист выводит ответы на запросы пользователей и новые
знания. Внешнее знание закладывается в БЗ. Она содержит определения операций,
понятий и констант, правила вывода или интерпретации знаний для получения нового
знания и конкретные факты, на основе которых строится процесс вывода и которые
являются исходными данными для получения нового знания. В приводимых ниже
правилах можно усмотреть метазнания, которые не могут изменяться по просьбе
пользователя. Данные правила образуют Мир Интеллсист, свойства которого
вытекают из существа встроенных операций, а также свойств отношений или
функций. Сами свойства принимаются или нет - это зависит от пожелания
пользователя.
Важно отметить, что любое излагаемое ниже правило не должно нарушать
законы формирования текстов по языку Лейбниц.
6.2. Классы правил вывода
Классификация правил не совпадает с классификацией аксиом, поскольку к
вытекающих из аксиом правилам присоединяются правила вывода из ИЛ и
пользовательские правила. Каждое правило сохраняет истинность выражения, к
которому применяется правило. Ниже дан перечень классов правил с краткими
пояснениями смысла правила.
1. Правила исчисления. Сущность правила исчисления состоит в следующем.
Если задано утверждение, которое является истинным (по своему существу или, как
было сказано, предположительно), то результат замены каждой переменной какимлибо утверждением или фразой является также истинным. При замене тип значений,
подставляемых переменных, утверждений или фраз должен семантически совпадать с
типом заменяемой переменной. Правило позволяет применять подстановки, которые
содержатся в БЗ или запросе и вводить синонимы. Такие правила применяются при
замене терминов идентификаторами в синтезированной программе.
2. Частный случай правила исчисления - подстановка значений (придание
смысла) вместо терминов. Это правило исчисления ИЛ именуется правилом
специализации. Если в заданном утверждении заменить некоторую величину
константой (значением, лексемой) соответствующего типа, то верно утверждение
следования из заданного утверждения к тому же утверждению, полученному заменой
каждой переменной соответствующей константой. Это правило работает при
смешанных вычислениях и при вводе исходных данных.
3. Правила из аксиоматики ИЛ. Правила вывода следуют из аксиом двадцати
двух групп и предназначены для обоснования и построения МЛВ и МАВ решения
логического уравнения. Правила группируются так, чтобы их реализация допускала
создание подпрограмм логического вывода. Некоторые правила являются
символическими или поясняющими, другие - непосредственно используются
процессорами МЛВ и МАВ. Группы правил образованы главной направленностью их
применения: получение правил исчисления ИЛ, которое именуется правилом
заключения. Другими словами, если рассматривается аксиома, то из нее можно
построить правило логического вывода решения логического уравнения. Такие
правила можно именовать
алгебраического вывода.
аксиоматическими
правилами
логического
или
Итак, встроенными знаниями ИС являются правилами вывода, которые
составляют основу алгоритмов МЛВ и МАВ. Внешне знания представляются
аксиомами, которые составляют основания Интеллсист. С помощью этих знаний
Интеллсист выводит ответы на запросы пользователей. Внешнее знание закладывается
во встроенную БЗ в форме правил вывода. Они содержат определения операций,
понятий и констант, правила вывода или интерпретации знаний для получения нового
знания или конкретных фактов, на основе которых строится процесс вывода и которые
являются исходными данными для получения нового знания. Аксиомы и построенные
по ним правила соотносятся количественно один к одному.
4. Правила замены терминов операций. Эти правила можно еще именовать
правилами подстановки операций без изменения смысла выражений. Они являются
как бы грамматическими синонимами. Некоторые операции зависимы и выражаются
через композиции других операций. Избыточность «ликвидируется» путем
применения правила замены. Для решения логических уравнений целесообразно сами
уравнения приводить к полной системе операций, что позволяет увеличить
эффективность процесса логического вывода. Правила замены и предназначены для
исключения из формул избыточных операций и заменой их базовыми операциями.
5. Правила замены терминов терминами. Это правило исчисления ИЛ
именуется еще правилом замены переменных. Если задано утверждение и по нему
построено новое утверждение путем замены каждого вхождения переменной на новую
переменную, не входящую в заданное утверждение, то такие утверждения равны или
эквивалентны по смыслу. Замена величин полезна во многих случаях и направлена на
эффективное кодирование. В лексиконе хранятся оригиналы исходных терминов, а в
остальных случаях используются их кодовые синонимы. Можно указать и другие
случаи замены терминов, которые приносят ту или иную пользу.
Еще один пример. Свободная переменная Y может быть заменена свободной
переменной X так, чтобы такая замена не привела к коллизии. В зоне действия (в
контексте) переменной Y не должна встречаться одинаковая с ней переменная.
Правило замены используется в процессе вывода при порождении новых переменных.
Правило замены применяется и при синтезе программы, когда необходимо вводить
идентификатор для понятия, как того требует формальный язык программирования.
6. Правила замены связных терминов на уникальные термины. Связные
переменные часто обозначаются одинаковыми терминами, поэтому их переименование
устраняет все возможные коллизии. Это правило исчисления ИЛ именуется правилом
переименования связной переменной. Необходимость этого правила переименования
возникает в связи с динамическим порождением новых выражений (промежуточных
формул, результатов вывода и др.). Формула all Y P(Y) заменяется формулой all X
P(X), если такая замена не породит коллизию. Такие правила широко применяются в
математике.
7. Правила именования формул уникальными терминами. Все термины
могут заменяться на другие термины, не совпадающие с имеющимися. Это относится
и к именам утверждений или формул. Например, запрос именуется фиксированным
термином, который фигурирует в МЛВ или в синтезированной программе в форме
уникального кодового обозначения или идентификатора программы. Это правило
носит свойства частного случая. Дело в том, что выделение правила именования в
отдельное правило вызвано отличием имени формулы от имени величины, первая не
участвует в вычислениях, а вторая входит в формулы.
8. Правила применения подстановок. Заданная пользователем операция
присваивания должна выполниться независимо от того приведет ли замена величины
(левая часть присваивания) на выражение (правая часть присваивания) к
неприятностям или не приведет. Правила, поясняющие смысл операций присваивания,
рождает правило применения подстановок.
9. Правила применения пользовательских подстановок. Если пользователь
задает правила подстановок, то МЛВ обязана их реализовать. Правило подстановок
принимается в ИЛ, оно зафиксировано в языке Лейбниц.
10. Правила применения масштабирования. Изменение масштаба величин,
диктуемое соотношениями различных физических единиц измерения величин, должно
выполняться путем подстановки масштабов. Такие указания пользователя приводят к
правилам применения масштабирования. Это правило принимается в ИЛ, оно также
зафиксировано в языке Лейбниц.
11. Правила интерпретации операций. Смешанные вычисления, которые
реализуются в любом месте логического вывода, применяются тогда, когда операнды
операций представлены конкретными данными, и повышают эффективность
логического вывода и синтезированной программы, используются в алгоритмах и
программах Интеллсист. Все операции могут интерпретироваться, кроме операций
преобразования памяти, которые могут выполниться только в динамике выполнения
синтезированной программы. Реализация смешанных вычислений осуществляется
интерпретатором операций.
12. Правила унификации. Эти правила сокращают объем БЗ, повышают
эффективность МЛВ и МАВ, они диктуются аксиомами ИЛ. Правила унификации
являются оптимизирующими. Обсуждение правила унификации вынесено в
отдельный раздел.
13. Правила оптимизации в БЗ. Под оптимизацией в БЗ и запросе понимается
выделение повторяющихся частей и сохранении только одного их образа. Правило
оптимизации является естественным средством сокращения объема памяти для
хранения любых объектов (значений и формул) и времени их выполнения.
Применение правила оптимизации обеспечивает эффективность МЛВ и МАВ. Здесь
используется принцип: преобразование одинаковых объектов приводит к одинаковым
результатам.
14. Правила оформления результатов. Все результаты работы МЛВ и МАВ
представляют последовательности кодов, которые необходимо визуализировать для
пользователя. Правила оформления результатов многочисленны, они известны
алгоритмически и программно и не могут рассматриваться полностью в форме текстов
правил. Правила очевидны, поскольку декодирование результатов работы МЛВ и
МАВ должны представляться в терминах лексикона. Отметим лишь некоторые
правила оформления результатов.
Сворачивание элементарного и простого знания в результирующие формулы
является откликом на исключение правила дедукции.
Сворачивание большого числа альтернатив
Сворачивание альтернатив комплексов в формулу для наглядности
Сворачивание многозначных логик (Х, возможно) ->
15. Правила повышения уровня интеллекта. Интеллект Интеллсист ограничен
по пятой номинации интеллектуальности. ИЛ не содержит ограничения, но
реализация ИЛ в форме алгоритмов и программ МЛВ и МАВ может иметь
ограничения такого сорта. Формальная запись теоремы для трех переменных вида A =
B или A = C или B = C имеет второй уровень интеллекта. Попытка разрешения этого
запроса не даст в результате смысл истины. В ИЛ заложен интеллект любого уровня,
но МЛВ реализует интеллект первого уровня. Этого достаточно для решения почти
всех задач. Приведенный пример запроса требует повышения уровня интеллекта до
второго. Можно привести пример, в котором требуется третий уровень интеллекта от
МЛВ. И так далее. Имеется несколько алгоритмов повышения уровня интеллекта.
Первый алгоритм состоит в применении вычислений значения аналогичного
приведенному выше выражения при всех значениях входящих в него величин. Метод
можно именовать интерпретационным. Можно убедиться в том, что выражение
принимает значение истина при всевозможных значениях величин. Это значение
подставляется вместо выражения. Такая процедура вызывает экспоненциальный рост
перебора значений входных величин.
Второй алгоритм состоит в применении дополнительных операций следующего
вида. Логически умножим исследуемое исходное выражение на выражение вида (А и
В и С или не (А и В и С)), которое имеет значение истина Тогда МЛВ определит
значение полученного таким образом нового выражения как истина.
Третий алгоритм состоит в создании и применении библиотеки стандартных
шаблонных наборов выражений, которые не разрешаются на некотором уровне
интеллекта. Сравнение с библиотечными шаблонами может привести к разрешению
запроса.
Для многозначной логики указанные алгоритмы должны чуть-чуть измениться
или модифицироваться. Пока нет четких описаний алгоритмов повышения уровня
интеллекта в случае многозначной логики.
Всякое переименование связано с общим правилом замены имен переменных:
замена не должна приводить к коллизиям, к смешению или к приведению разных имен
к одинаковым. Однако рассмотрим пример. Широко известна формула исключенного
третьего: существует X P(X) \/ не существует X P(X). Она трактуется в классической
логике как истина. Ничего не мешает переименованию связной переменной в одной из
дизъюнкций. Тогда получим: существует X P(X) \/ не существует Y P(Y). Эта формула
остается истинной в МЛ. В других логиках она не может сразу же трактоваться как
истина. Необходимо рассмотреть подробнее слагаемые. Этим примером
продемонстрировано два факта: возможность (скорее нужно сказать необходимость)
замены имени перемененой и аккуратный подход к формулировке (исследованию)
закона исключенного третьего. Для убедительности можно рассмотреть конкретный
пример такой формулы. Истинной можно считать формулу (она уже рассматривалась):
не существует I: целое (I * I = 2) \/ существует X: вещественное (X * X = 2), ложной
можно считать следующую формулу: существует I: целое (I * I = 2) \/ не существует
X: вещественное (X * X = 2), если предметная область I - целые числа, а предметная
область X - вещественные числа.
Фундаментальное правило дедукции не применяется, поскольку его
формулировка в интерпретации Интеллсист истинна. Следовательно, дедукция
присутствует в Интеллсист «подпольно».
6.3. Пользовательские правила вывода
Пользовательские правила записываются в соответствии с ЯПП и напоминают
по применению указанные выше 15 правил. Некоторые из них не имеют смысла для
применений. Следует исключать правила:
6.4. Аксиомы и правила вывода
Аксиомы ИЛ служат для формирования правил логического вывода.
Приведенные в главе 5 аксиомы являются схемами, если они определяют операцию.
Построение правил реализуется следующими путями. Первый путь состоит в поиске
по тексту вхождения выражения, идентичного схеме некоторой аксиомы.
Идентичность состоит в совпадении входящих в аксиому и выражения операций и
типов величин. Идентичное выражение заменяется значением истина, и вывод
продолжается. Второй путь состоит в реализации подстановок. Этот путь сложнее и
может породить циклы, выход из которых может оказаться сложным.
6.5. Определение унификации.
Уточнение алгоритмов на примерах
Правила
порождения
унификации.
В [Зикманн84] представлена теория универсальной унификации, которая здесь
максимально использована в качестве математического средства решения логических
уравнений. Рассматривается следующая общая задача. Пусть задано логическое
выражение, зависящее от параметров. Это может быть равенство, логические
операции & или \/ и другие операции. Заданное логическое выражение должно быть
истинным. Спрашивается, какими должны быть параметры или какие соотношения
параметров обеспечат истинность логического выражения. Например, логическое
выражение, напоминающее закон исключенного третьего Р(х) \/ not Р(y) может быть
истинным при y=x. Пример является простой иллюстрацией процесса унификации. Из
этого видны проблемы поиска унификации и применение их для решения логического
уравнения.
Из общей проблемы выработки алгоритма унификации вытекает множество
частных проблем. Такими частными проблемами являются следующие проблемы.
1. Каков перечень всех условий унификации. Условиями унификации являются
все аксиомы ИЛ. Поскольку от логического выражения требуется истинное значение,
алгоритм унификации должен использовать эти условия. Это требование вытекает из
главного положения, которое сформулировано во введении в рамочках. Для
введенных пользователем аксиомы в запросе записываются алгоритмы унификации в
форме правил преобразований.
2. Определение унификатора необходимо для получения решения логического
уравнения в форме представлений фактов. Основное техническое назначение
алгоритма унификации состоит в сокращении операций, которые не несут знаний для
результирующих фактов.
3. Унификаторы определяются для формирования ответа (решения) или
подстановки. Они появляются вместо логических уравнений, "похожих" на аксиомы
ИЛ. Аналогия с аксиомами наталкивает на мысль введения подстановки, которая
уменьшает число операций в предрешении.
4. При формировании унификации необходимо учитывать перечень всех свойств
операций (или функций). Их свойства увеличивают возможности построения
унификаторов или их простых форм.
5. Определение одного наиболее общего (универсального) унификатора не
обязательно для решения логического уравнения. Процесс решения логического
уравнения должен порождать группы унификаторов.
6. Для оптимизации времени работы алгоритма унификации его надо поместить
после выполнения всех других алгоритмов получения решения логического
уравнения.
7. Алгоритм унификации необходимо исследовать самым тщательным образом,
поскольку его применение не всегда может быть оправданным. Например, равенство
F(х) = F(у) не может преобразовываться всегда в х=у. Если функция является
синусоидой, то решение должно быть таким: х=у+2*пи*к, к=1,2,3,…, или еще какимлибо, что должно быть установлено путем исследования функции. Конечно, если о
функции ничего неизвестно, то решение х=у будет удовлетворительным для
начальных стадий исследований. Рассмотрим несколько примеров.
Пусть рассматривается аксиома: Х => (У => Х). Исследуется выражение: А => (В
=>С), тогда применение унификации дает выражение А = С.
По аксиоме Х \/ not X выражение с неопределенным предикатом P(А) \/ not P(В)
после унификации приводит к выражению A = В.
По аксиоме Х & not X выражение P(А) & not P(В) после унификации приводит к
выражению A <> В.
6.6 Общая структура алгоритма работы с инструментарием Интеллсист
Основная проблема, которую решает Интеллсист, связана с решением
логических уравнений путем применения правил вывода решения по исходной
формулировке уравнения. Алгоритм решения логического уравнения здесь
представлен в самом общем структурном виде по шагам, реализуемым с помощью
МЛВ. Для начала рассмотрим следующую последовательность шагов, приводящую
исходное логическое уравнение к решению. Будем исходить из предположения, что БЗ
введена и отлажена. Рассмотрим только сам процесс получения решения проблемы.
Технология решения логических уравнений уже представлялась и будет еще
представлена несколько раз с различных точек зрения. Частое рассмотрение
технологии служит ее усвоению и поиску путей ручного применения. Случай полного
рассмотрения работы будет представлен при анализе инструментария Интеллсист.
Шаг 1. Ввод запроса на решение проблемы. Запрос может быть представлен на
ЯПП, в форме заполненной анкеты (в данном случае под анкетой понимается некая
форма с внесенными в нее необходимыми сведениями) или заполненного шаблона.
Шаг 2. Перевод формулировки запроса с ЯПП (анкеты или шаблона) на язык
Лейбниц. При анкетном запросе возможны только лексемный перевод или отсутствие
какого-либо перевода, хотя не исключается и перевод фраз, являющихся ответами
пользователя по некоторым пунктам анкеты. В процессе перевода могут
обнаруживаться ошибки, которые инициируют обратную связь в алгоритме - переход
к предыдущим шагам после устранения ошибки.
Шаг 3. Уточнение запроса. Среди обнаруживаемых ошибок могут быть
потенциальные ошибки, которые явно не обнаружены, но могут проявиться в процессе
поиска решения проблемы. Например, некоторая операция неправильно применяется к
недопустимым операндам или неясна последовательность выполнения операций. В
таком случае МЛВ формирует вопросы пользователю и в зависимости от его ответа
формирует правильную последовательность операций. Уточнение может быть на
каждом шаге.
Шаг 4. Разложение и анализ формулы запроса по правилам ИЛ и подготовка к
работе МЛВ. Другими словами на этом шаге находится предрешение запроса,
использующее знания самого запроса и встроенные знания МЛВ. В результате
построения предрешения получается набор заготовок, которые обрабатываются на
следующем шаге.
Шаг 5. Поиск решения из полученного предрешения запроса на основе БЗ.
Теперь наступил момент применения МЛВ для получения альтернатив совместных
фактов, представляющих решение исходной проблемы. Этот шаг является
центральным в работе Интеллсист. От полноты БЗ и интеллектуальной способности
МЛВ зависит, насколько предрешение будет близким к окончательному решению
исходной проблемы.
Шаг 6. Оформление решения. Оно связано с формированием итогового
документа для пользователя, который должен содержать фиксацию противоречия в
запросе, отсутствие решения, единственное решение, альтернативные решения или
полное решение, устанавливающее, что формулировка проблемы - это теорема. Этот
шаг емок алгоритмически и требует специального рассмотрения. Процессы перевода с
формального внутреннего языка представления знаний на ЯПП представляются
достаточно сложными алгоритмами, по крайней мере сложнее процессов перевода с
ЯПП на ФЯ.
Шаг 7. Восстановление подсистем для перехода к шагу 1. Эта работа рутинная,
но завершающая и необходимая для построения ответов на новые запросы
пользователя. Этот шаг может быть связан со статистической обработкой результата
решения логического уравнения и процесса получения результата. Статистическая
обработка увязывается с глобальными статистическими данными. Такие данные могут
использоваться автоматически или автоматизировано для улучшения алгоритмов
МЛВ.
Еще раз необходимо упомянуть замечание, сделанное на шаге 2. Надежность
МЛВ обеспечивается, в частности, процедурами обнаружения, локализации,
индикации и возможно автоматического или автоматизированного исправления
ошибок на каждом шаге. Инициализация таких процедур приводит к повторению
предыдущих шагов работы МЛВ для проработки решения с новыми данными.
Проблема надежности МЛВ считается одной из важных, стоящих на втором месте
после алгоритмов, обеспечивающих интеллектуальные способности МЛВ.
(Проблемы для исследования.) До сих пор рассматривался детерминированный случай
организации МЛВ. Вместе с тем потенциально можно представить себе существование вероятностной
МЛВ, основанной на размытой или байесовской логиках. Конструктивно такая МЛВ выглядят
аналогично детерминированной МЛВ. Помимо всего прочего в нее входят алгоритмы вещественной
арифметики, предназначенной для сопровождения каждого шага вывода расчетами над значениями
вероятностей существования входящих в формулы вывода переменных. Что может дать или к чему
может привести вероятностная МЛВ? Также можно рассматривать «положительный» мир Интеллсист.
Это значит, что все правила будем использовать в том виде, в каком они даны первоначально. Можно
представить себе антимир, в котором действуют правила, полученные заменами высказываний
антивысказываниями, которые условно можно представить формулами подстановки такого вида: P(X) --> not P(X). Можно рассматривать «конечный» мир Интеллсист. Например, многомерные комбинации
правил для кванторов:
all X P(X) ---> X = X1 & X = X2 & ..... - для расчетов и
exists X P(X) ---> X = X1 \/ X = X2 \/ .....- для оценки альтернатив.
И одно замечание. Число правил, которые заложены в алгоритмы МЛВ, определяет уровень
интеллектуальности Интеллсист. Чем больше правил, тем интеллектуальнее Интеллсист. Такая
пропорциональность действует не до бесконечности. Ограничительным фактором является время,
которое необходимо для распознавания того правила логического вывода, которое применимо в данный
момент, в данной части алгоритма МЛВ. Временная сложность алгоритма важна, она должна всегда
оцениваться либо пользователем, либо автоматически самой МЛВ. Алгоритмы оценки могут быть
фиксированными или статистическими, их эффективность необходимо исследовать.
6.7. Алгоритмы машины логического вывода
Из программистской литературы [Дал75, Макаровский80, Мартин80, Тиори85,
Цикритзис85] известны такие формы представления данных в виде деревьев. Их
содержательная функция - это внутреннее представление формул в бесскобочном виде
с учетом приоритета каждой операции. Использование древовидного представления
формул значительно эффективнее строчного (или тем более многоэтажного)
представления, которое является основным представлением в алгоритмических
языках. Работа с формулами (программирование операций над формулами) во время
аналитических выкладок с ними складывается из некоторого набора операций.
Совокупность операций, реализованная автономно от программ, составляет
процессор. В данном случае будем его именовать процессором деревьев, подразумевая
при этом, что процессор будет использоваться для преобразования формул при
производстве аналитических выкладок.
Полный состав операций процессора деревьев формируется при рассмотрении
Интеллсист, поскольку именно в них реализуются наиболее разнообразные операции с
формулами. В системах аналитических выкладок по правилам преобразования
[Красилов73б, 85а] используется меньший состав операций, из-за ограниченности
числа правил преобразования. Аналитические выкладки не используют алгоритмы
унификации, которые являются главными в МЛВ и МАВ. Процессор деревьев
является составной частью МЛВ. Эти обстоятельства и побудили подробное
рассмотрение операций над деревьями. Кроме этого, рассмотрение древесных
представлений важно в познавательных целях: деревья - это несколько необычная
форма данных, она отличается от наиболее распространенных форм представления
данных.
Как обычно, процессор деревьев интерпретируется пакетом подпрограмм и
процедур для операций преобразования. Процессор использует (обращается) память
определенного формата. Состав памяти таков: таблица листьев, которая является
обязательным атрибутом реализации, таблица деревьев - это главная память
процессора, таблица кортежей - элементов БЗ, представляющих простое знание,
лексикон, вспомогательные таблицы с характеристиками терминов (коды свойств
понятий, паспорта структурных величин, определения понятий, массивы, записи и
таблицы с данными и другие структуры). Память машины деревьев подразделяется на
различные секции, включающих список областей памяти, список указателей, массив
деревьев, массив правил вывода, память таблиц и констант, рабочая память и др.
Хранение дерева (представляющего формулу) связано с формами хранения
вершин дерева, поскольку дерево состоит из вершин. Можно выделять в дереве
вершины или листья, которые не содержат ссылок (или связей с другими вершинами
или листьями). Каждая вершина имеет имя, указание на операцию, с которой связана
вершина, и некоторое число выходных дуг, указывающих на другие вершины или
листья. Число выходных дуг может равняться нулю, если вершина-лист, одной, если
вершина связана с одноместной операцией, две, если вершина связана с двуместной
операцией ??. Необходимо помнить, что некоторые или все двуместные операции
могут быть многоместными (групповыми). Например, двуместная операция сложения
может быть представлена в дереве одной вершиной для группового сложения
нескольких операндов. Наконец, вершина, представляющая лист, связана с некоторым
операндом.
Число выходных дуг определяет ветвление дерева при многоместных операциях.
Знак числа определяет наличие или отсутствие отрицания перед данной операцией
или операндом: плюс - отсутствие, минус - наличие операции отрицания перед
операцией, для которой построено дерево. Сорт узла определяет смысл последующего
указателя и, естественным образом, свойства данного дерева. Оно может представлять
лист, вершину-квантор, вершину-компоненту и т.п. Оно может определять свойства
последующих указателей (пусты ли эти указатели). Однако имеются трудности в
реализации операций с деревьями, у которых много выходных дуг. Поэтому приняты
к рассмотрению бинарные деревья, у которых всегда имеется только две выходные
дуги. Для одноместных операций одна дуга «пустая». Для многоместных операций
реализуется представление бинарными деревьями.
Процессор деревьев имеет блоки, реализующие отдельные операции. Они
перечислены в следующих абзацах.
Имеется три основных сорта деревьев (для упрощенной классификации). Первый
сорт деревьев имеет в корне равенство и другие операции отношения. Такие деревья
задаются в запросах, имеются в БЗ или получаются в результате применения
алгоритма унификации. К этому же сорту относятся деревья с равенством и с
предшествующим ему (равенству) отрицанию. Второй сорт деревьев имеет в корне
присваивание. Такие деревья содержатся в определениях, или они получаются в
результате применения (или работы) алгоритма унификации. Наконец, к третьему
сорту деревьев относятся все остальные деревья, они в корне не имеют обращения к
процедурам.
МЛВ является процессором знаний, поскольку ее работа связана с обработкой
деревьев и лексикона, представляющих знания. При построении деревьев учитывается
старшинство операций. Каждая формула может учитывать старшинство операций и
использовать меньшее количество скобок для указания порядка выполнения операций.
Иерархия операций с пометкой номера ранга операции приведена во введении к гл. 5.
Старшинство операций используется при построении деревьев. Операция формирует в
дереве узел-вершину, которая в конечном счете ссылаются на листья. Структура узлавершины для бинарных операций проста: ссылка на таблицу характеристик данной
операции и две ссылки на подчиненные узлы-вершины или листья.
Одной из операций МЛВ является упорядочивание ветвей и листьев для
ускорения работы программ оптимизации. Сущность проблемы упорядочивания
состоит в следующем. Поиск дерева с заданными свойствами составляет основу
многих алгоритмов переработки деревьев. Поиск можно сделать эффективным, если
воспользоваться свойствами операций. Например, коммутативные операции
увеличивают поисковое пространство из-за необходимости сравнения с исходным
деревом и с его двойником, имеющим переставленные ветви для коммутативной
операции. Если ветви коммутативной операции упорядочить, то число сравнений
уменьшается вдвое для таких операций. Упорядочивание может реализовываться по
нескольким критериям. Первый критерий - лексикографическое упорядочивание имен,
второй критерий - числовое упорядочивание по возрастанию номеров для ссылок,
третий критерий - числовое упорядочивание по возрастанию числа вершин в
поддереве и т.п. Два первых критерия подходят для наших целей более всего. Если
упорядочивать листья, то используется первый критерий. Если упорядочиваются
поддеревья, то используем второй критерий. Если одна ветвь является листом, а
вторая - поддеревом, то используется критерий: левая ветвь - это лист, а правая ветвь это поддерево. Выше был изложен алгоритм операции упорядочивания, который
выполняется процедурой. Она имеет следующую спецификацию: Список кортежей
задает начальный адрес очередного кортежа и размер кортежа. Число кортежей размер БЗ - составляет не более 10 000. Сокращение числа кортежей приводит к
чистке массива - списка кортежей.
Процедура поиска одинаковых поддеревьев должна подключаться при каждом шаге
построения нового дерева или поддерева. Это утверждение дает правило решения
обеих проблем: тактической и стратегической. В дереве в результате оптимизации
появляются одинаковые ссылки (циклы в графе-дереве).
Знание - двигатель нового знания
Глава 7. Информатическая металогика
Всякая теория требует обоснования. Конечно, практическая работа с Интеллсист
и получение полезных результатов являются хорошими гарантами правильности
исследуемой теории. Такие утверждения в полной мере относятся и к ИЛ. Ниже
делается начальная попытка построения обоснования ИЛ. Что является обоснованием?
Непротиворечивость ИЛ (слабая) автоматически вытекает из простой самопроверки
конъюнкции всех аксиом и их комбинаций, которая приводит к значению истина.
Полнота ИЛ не гарантируется, поскольку не все аксиомы заложены в Интеллсист.
Добиться полноты ИЛ невозможно, поскольку аксиоматически определить
зафиксированные константы, величины и операции не представляется возможным.
Какое число аксиом необходимо для их корреляционного определения? МЛВ и МАВ
ориентируются на аксиомы глава 5, а там нет многих аксиом связи, например, связи
арифметических операций + и **, сложение и возведение в степень. Однако, это не
означает отсутствие полноты в смысле ИЛ для разрешения запросов пользователей.
Тот же пример. Связь операций + и ** может оказаться не востребованной в запросе.
Запрос пользователя - это некоторая конкретная модель ИЛ, если все величины
определены, она может быть практически проверена на непротиворечивость и
полноту. Независимость аксиом менее важное для пользователя свойство ИЛ. Почти
любая зависимость устраняется в процессах работы МЛВ и МАВ.
Основная цель главы - описать приблизительно (частично или неполно) логику
рассуждений при решении информатических проблем. Рассматриваем ИЛ как орудие
решения проблем пользователей. Однако сама ИЛ подчинена логике более высокого
порядка, ее будем называть металогикой. При этом необходимо выяснить некоторые
свойства металогики. Поскольку логический подход подобного сорта рассматривается
впервые, то и накопленного материала по металогике весьма мало и недостаточно для
полного ответа на вопрос о том, как рассуждают информатики. Образцы некоторых
рассуждений будут приведены здесь в главе.
Практический подход к металогике состоит в использовании Интеллсист для
новой «пользовательской» операции следования (= =>), а при необходимости и других
операций, с помощью которых строится металогика. Далее надо следовать известным
подходам из МЛ и ИН. Строятся утверждения в новых операциях относительно
свойств ИЛ. Утверждения выступают как запросы для Интеллсист, затем
рассматриваются результаты прогона. Утверждения могут привести к истине, что
соответствует теореме, или к условиям того, что утверждение будет истинным. По
результатам прогона утверждений исследователь ИЛ может делать вполне
определенные выводы о свойствах ИЛ.
При исследовании свойств ИЛ необходимо иметь в виду, что в ИЛ исключен
метод дедукции, а правила для функций построены отлично от принятых в МЛ или
ИН. Влияние таких допущений (или ограничений) в ИЛ должно быть исследовано в
металогике ИЛ. Сложность установления позитивного или негативного результата
относительно таких свойств ИЛ состоит в том, что весьма трудно построить
формализм, который будет обслуживать такие задачи. Исключение дедукции не
устраняет решение задач, которые используют дедукцию в МЛ или ИН. Изменение
правил для функций также усложняется тем обстоятельством, что при формировании
знаний трудно определить, что все задано в знаниях относительно исследуемой
функции. Ведь введение в ИЛ новых правил обосновывается утверждением о том, что
о функции необходимо сообщить все знания, которые бы обеспечили получение
альтернативных решений задачи с применением правил ИЛ для функций. В связи со
сказанным напрашивается вывод о том, что для опровержения ИЛ необходимо
подобрать такой контрпример, чтобы осуществить опровержение правильности
указанных свойств ИЛ.
Существенными являются следующие замечания. Дедукция полезна только при
оформлении результатов решения (в особенности) логических задач, когда
альтернативы совместных фактов необходимо собрать в конечное утверждение
(конечное выражение) для создания большей наглядности самого результата. Для
поиска всех альтернативных решений, получаемых после применения правил для
функций, необходимо реализовать исследование свойств данной функции F. При
обнаружении нескольких решений уравнения F(X) = F(Y), например X=Y и X=Z (их
два), необходимо задать условия того, что у функции имеется пара альтернативных
решений. Такое исследование можно не проводить, если Интеллсист сама обнаружила
альтернативные решения. То есть, знаний (прямых или косвенных) в БЗ или в запросе
было достаточно для получения альтернативных решений.
Метод резолюций, изложенный во многих публикациях [Логический90, 98,
Логическое88, Лорьер90, Осуга89, Робинсон70, Справочная82, Стерлинг90, Хоггер88],
указывает на попытки исключения дедуктивного метода из машинных методов
решения логических задач. В ИЛ метод резолюций «упрятан» в аксиомы, поэтому он
явно не используется. Можно рассмотреть пример применения метода резолюций и
ИЛ и сравнить эффективность обеих методов. Пример взят из [Осуга89]. Приводимые
ниже записи используют знак присваивания для указания обозначений формул.
Остальные обозначения должны быть ясными из контекста.
S := C1 & C2 & C3 & C4 & C5;
C1 := not P \/ not Q \/ R;
C2 := not P \/ not Q \/ S;
C3 := P;
C4 := not S;
C5 := Q;
Ответом Интеллсист является логический вывод о том, что S = ложь или not S. В
книге показаны шаги:
С6 получается как результат применения процедуры Резольвента(C2, C3);
С7 получается как результат применения процедуры Резольвента(C4, С6);
С8 получается как результат применения процедуры Резольвента(C5, С7);
В итоге S := ложь (строится опровержение).
Применение ИЛ сводится к подстановке вместо Ci их выражений и в приведении
конъюнкции Ci к результату. Находим конъюнкции C1&C3 и C2&C4:
(not P \/ not Q \/ R)&(not P \/ not Q \/ S)&P& not S&Q |(not P \/ not Q \/ R)&(not Q&P \/ S&P)& not S&Q |(not P \/ not Q \/ R)& (not Q&P &S)&Q |-
(not P \/ not Q \/ R)&ложь |- ложь.
В реализации метод ИЛ предпочтительнее. Анализ примера показывает, что метод
резолюций содержится в ИЛ.
7.1. Метатеория, логика доказательств
Вообще говоря, метатеорией ИЛ является вся совокупность рассуждений об ИЛ.
Можно было бы этим и ограничиться, считая совокупность сведений об ИЛ базой или
исходным материалом, на основе которого устанавливается истинность любых
высказываний об ИЛ. Действительно, как уже кратко отмечалось, можно построить
предметную и проблемную область исследований в ИЛ, специальную БЗ (описание
ИЛ) в этих областях, а затем составлять запросы о свойствах ИЛ. В результате
разрешения запросов будут получены либо доказанные утверждения, либо условия
того, чтобы утверждения были истинными. Однако следует остановиться на
некоторых общих рассуждениях об ИЛ для установления ее корректности и
возможности для практических нужд. Интеллсист приспособлена для применения к
формальным системам и проблемам. Величины могут быть абстрактными с
возможным контролем контекста их применения, для проверки конкретных свойств
ИЛ они могут быть модельными или с предписанными им свойствами. Так можно
построить и исследовать абстрактные и реальные логические модели.
Важным обстоятельством применения Интеллсист является то, что
доказательство утверждений существует не для удовлетворения запроса на
доказательство (как в классической логике), но для построения условий истинности
утверждений. Выявляемые свойства абстрактных исчислений только с помощью
получения истинности утверждений недостаточно для практических нужд.
Получаемые условия истинности подчас могут быть важнее для изучения свойств
исчислений. Доказываемое свойство некоторого исчисления представляется
утверждением, которое только потенциально может быть теоремой. Поиск условий
истинности приводит к конечной формулировке теоремы.
Важным является сравнение свойств ИЛ со свойствами ИИ. Это необходимо для
установления возможности использования Интеллсист для решения задач ИИ.
Основная и реальная проблема, стоящая перед ИЛ и Интеллсист, - это построение
моделей реальных предметов, явлений, процессов или их свойств. В связи с этим ИИ
считается некорректной формулировкой дисциплины. Нет чистого ИИ, а есть
моделирование естественного интеллекта (ЕИ). Человек является воплощением всех
законов природы, он отражает только законы природы, реальной действительности.
Если ИИ самостоятельно, т.е. изучает какой-то особый интеллект, то этот интеллект
не согласуется с природой. Мыслимые образы также могут не согласоваться с
природой и не иметь поначалу реальных аналогий с реальными объектами. Затем
находятся реальные применения новых мыслимых образов, и все становится на свои
места. Поначалу мыслимые объекты были не принятой формализацией знаний об
известных объектах. Но результаты логических построений по таким знаниям нашли
применение, они согласуются с реальностью и законами природы. Здесь также не
работал ИИ, хотя системы ИИ могли применяться для логических построений. Отсюда
следует, что дело не в результатах исследований по ИИ, но в термине, который может
создавать ложные пути поиска интеллекта. Заметим, что в задачах с неполными
знаниями важнейшую роль играет многозначная логика. Это всегда не следует
упускать из вида для увеличения выразительности логики, отличной от многозначной
логики. Формально в этом случае решаются проблемы веры.
Учитывать все логики важно для прикладных задач и по существу такой подход
к практическим задачам является емким. Каждый пользователь Интеллсист сам
определит вложенность его логики в ИЛ. Например, логика умолчаний
[Логический90] более всего напоминает ИЛ. Надо сказать точнее: ИЛ через
Интеллсист способна обслуживать многие логики. Ответ на вопрос: можно ли
построить свою логику? имеет ответ, вытекающий из существа работы Интеллсист.
Каждый только тем и занимается, что строит свою логику. Важно только то, чтобы
логика была непротиворечивой, по возможности не содержала зависимые знания (но
не обязательно) и была бы полна для получения новых фактов, а не вопросов от
Интеллсист.
7.2. Библиотеки баз знаний
Интеллсист имеет унифицированную библиотеку знаний (БибЗ). Унификация
вызвана стандартным подходом к созданию Интеллсист, независимым от остальных
характеристик (координат классификационного пространства). БибЗ содержит
разнообразные представления знаний. Объем БибЗ определяется объемом
зарезервированной памяти ВМ. Качественный состав рассматривается ниже. Реальные
БибЗ могут состоять из разных разделов, уменьшающих роль унификации или не
изменяющих ее. Они могут учитывать такие признаки для классификации, как
специализация, время изготовления, области применения и др. Так ли важна
унификация БибЗ?
Выделяются семь содержательных разделов БибЗ. Это деление условно, но оно
способствует более глубокому запоминанию. Вместе с описанием разделов будем
представлять описания элементов БибЗ. Из семи сортов библиотек, связанных с ИП,
библиотека БЗ может иметь свои разделы, которые диктуются практикой
использования Интеллсист и знаний. Вот как выглядят разделы БибЗ:
 БЗЦ. База целей включает виды и формы запросов пользователей в зависимости от
структуры Интеллсист и классов решаемых проблем. Запрос может быть
представлен в трех видах: текстуальные фразы, анкеты и шаблоны. В базе целей в
большинстве своем содержатся шаблоны - заведомо фиксированные формы
постановки целей применения Интеллсист.
 БЗК. База правил включает кластеры правил логического вывода в зависимости от
отрасли знаний или конкретной науки.
 БЗУ. База утверждений состоит из альтернатив совместных фактов,
представляющих знания о связи элементов данных предметной и проблемной
областей и имеющих характеристики, которые заложены при генерации каждой БЗ.
 БЗФ. База фактов (фактическая Б3) состоит из совокупностей или наборов БД,
которые в совокупности представляют знания о конкретных значениях величин
предметных областей.
 БЗТ. База теорий состоит из обобщенных (часто формализованных) знаний
некоторой отрасли науки и некоторых характеристик и свойств знаний, вложенных
в библиотеку Интеллсист для генерации и настройки МЛВ и МАВ на решение
проблем этой отрасли науки.
 БЗП. База процедур включает те программные реализации алгоритмов, которые
отражают алгоритмические (процедурные) знания и соответствуют некоторым
библиотечным БЗ непроцедурного вида.
 БЗЗ. БЗ о себе - это база статистических знаний о работе элементов Интеллсист, ее
инструментов или данных для ее работы.
По сути своей библиотека знаний является хранилищем различных видов знания,
которое используется при инициализации Интеллсист для разрешения запросов.
Выборка БЗ осуществляется либо при работе с инструментарием, либо автоматически,
если в текстах знаний или запросов имеются ссылки на элементы библиотеки.
Библиотека знаний по совокупности образует прикладные метазнания,
характеризующие процессы обработки знаний. Заметим, что БибЗ может служить
исходным материалом для построения элементов БибЗ (проблема самоприменимости).
Кроме указанного подразделения БЗ имеется классификация знаний в
библиотеке общего доступа, которая содержит кроме БЗ еще и другие компоненты
ИП.
7.3. Интеллект системы
Интеллсист обладает заданным уровнем интеллекта. Он определяется в
различных номинациях, число которых данным перечислением не ограничивается.
Интеллект человека подразумевает большое число объективных и субъективных
номинаций. Ниже рассматриваются некоторые номинации применительно для
Интеллсист. Возможно, что для программных систем существуют свои номинации, а
для человека свои, поскольку условия для жизни человека и Интеллсист
характеризуются различным образом. Частично о номинациях программ будет сказано
в т.7. Здесь изложение номинаций ориентировано на применение ИЛ.
Первой вступительной номинацией для инструментария ИП (как для
программной системы) является мера интеллектуальности интерфейса человек-ВМ.
Интерфейс инструментария ИП определяется графическим языком меню. Он
непрерывно развивается и обычно соответствует интерфейсу, который рекомендуется
операционной системой. Поскольку интерфейс выполнен средствами операционной
системы WINDOWS, то уровень интеллектуальности интерфейса соответствует ее
главным возможностям. Развитие системы приводит к развитию прикладной
программы WINDOWS, в данном случае такой программой является Интеллсист.
Однако, у Интеллсист (как у любой прикладной программы) имеются частности,
определяемые выбранными окнами, горячими клавишами, справочным материалом,
логотипами, рисунками и др. атрибутами операционной системы. Все атрибуты будут
изменяться со временем в сторону усовершенствования с приобретением
практического опыта работы с Интеллсист и учета предложений конкретных
пользователей.
Интеллект Интеллсист (как составной части инструментария ИП) определяется
встроенных в нее стандартных частей лексикона и словарей. Здесь развитие
интеллекта связано с полнотой описания СеГ. По мере выявления конкретного
материала для СеГ и внесения его в таблицы Интеллсист будет наблюдаться рост ее
интеллекта. Развитие СеГ может быть связано с появлением новых языковых
объектов, увеличением словарей, с использованием того или иного ЕЯ и с
подключением новых правил вычисления смысла фраз или текстов. Интеллект
Интеллсист определяется также содержанием и размерами лексикона пользователей.
Знание понятий увеличивает число пользователей или число решаемых заданий и тем
самым расширяет интеллект Интеллсист. В этом суть второй номинации интеллекта
Интеллсист. Для программ вторая номинация выражается тем, как увеличивается
число реализованных в ней функций. Важной характеристикой второй номинации
является уровень решения проблемы понимания знаний и заданий и построение ответа
на ЕЯ.
Третья номинация связана с вводом в БЗ взаимосвязей понятий, которые
выражаются наборами аксиом, или качеством определенности понятий. Другими
словами, интеллект Интеллсист зависит от меры определенности понятий. Чем точнее
определено понятие и чем больше неопределенных понятий уточняются через
определения, тем интеллект Интеллсист выше. Во-первых, точность определения
понятия определяется размерами БЗ (чем больше знаний, тем точнее и полнее
решаются задачи), во-вторых, все взаимосвязи задаются аксиомами, как формой
определения любых понятий. Практически понятия уточняются чаще всего введением
в их определения новых атрибутов. Например, человек может определяться только
паспортными данными, и тогда можно построить справочную систему на основе
атрибутов паспорта, увеличение числа атрибутов записи о человеке, например
состоянием его физических и физиологических данных, позволяет решать задачи
опознания. Описание человека может уточняться почти беспредельно, каждый раз
интеллект Интеллсист будет возрастать.
Четвертая номинация связана с использованием фактического материала,
накапливаемого в БД и обрабатываемого с помощью операций СУБД. Использование
БД в Интеллсист предусмотрено в двух вариантах. Первый - это создание различных
таблиц и коллекций данных, собираемых по знаниям и запросам. Второй - это
использование стандартизованных СУБД или набора различных СУБД (на выбор
пользователем), интеллектуальность которых заложена заведомо разработчиками
выбранных СУБД. Оценка системы обработки знаний по четвертой номинации
целиком зависит от используемых СУБД и версии Интеллсист, отличающихся друг от
друга мерой использования каждой СУБД или их набором. СУБД требует настройки и
используется для выбора, посылки и поиска данных и для решения задач.
Следующая пятая номинация связана с логическим выводом решения
логического уравнения. Условно можно сказать, что учет логического вывода на
основе ИЛ придаст Интеллсист первый уровень интеллекта в общем смысле слова.
Однако, можно составить пример, который не может решаться на основе ИЛ
изложенного вида. Таким примером является логическое уравнение: (A = B)\/(A =
C)\/(B = C) для трех логических величин. Решение уравнения на МЛВ со встроенными
знаниями будет иметь следующие альтернативы:
A, B; A, C; B, C; not A, not B; not A, not C; not B, not C.
В действительности, решением исходного уравнения должна быть истина - теорема
доказана. У МЛВ не хватает интеллекта установить этот факт. Расширение свойств
МЛВ может быть осуществлено следующим приемом: надо к логическим уравнениям
добавить фразу: A & B & C \/ not A \/ not B \/ not C. В таком случае Интеллсист выдаст
требуемое решение (истина - теорема доказана). То же можно сказать о выражениях с
четырьмя и большим числом логических величин. Учет добавочных условий
повышает уровень интеллекта Интеллсист.
Шестая номинация связана с удобствами в программировании: язык и стиль,
возможность создания больших программ, надежность и эффективность программ и
процессов программирования, тестируемость, верифицируемость, подтверждаемость,
документируемость (и др. см. т.6). Интеллсист предусматривает автоматический
синтез программ, что обеспечивает все характеристики программ хорошими, и
построение программ средствами ЯПП. Оценка интеллектуальности Интеллсист по
этой номинации является весьма высокой.
Седьмая номинация (системная интеллектуальность) предусматривает и
ориентируется на многие атрибуты системного порядка: рынок, маркетинг, реклама,
аудит, конкурентоспособность. Относительно Интеллсист пока рано говорить о
высокой оценке интеллектуальности по этой номинации. Многие программные
комплексы заслужили наивысшие оценки, например программный комплекс
"Галактика", обеспечивающий с помощью электроники и информатики активный и
успешный бизнес. Их разработка и распространение заслужили внимательного
анализа и как только возможно широкого использования. Так оценивается интеллект
ИП и инструментария Интеллсист.
Здесь использован принятый семеричный подход. Он может оказаться
недостаточным для оценки интеллектуальности той или иной системы. Предложенный
стиль оценки интеллектуальности не является обязательным для применений.
7.4. Сравнение логик
Сравнение логик может оказаться избыточным для металогики ИЛ, поскольку
ИЛ предусматривает ввод и применение пользовательской логики. Для пользователя
это так. Но есть профессиональный математический интерес осуществить сравнение
МЛ, ИН и ИЛ. Известно, что МЛ строит формальные теории на основе формальных
исчислений, доказывает или опровергает утверждения или теоремы. Основная задача
МЛ состоит в установлении факта существования искомого объекта. ИН расширяет
возможности МЛ, она доказывает или опровергает утверждения о существовании
объекта и формирует алгоритм построения искомого объекта. ИЛ еще более
расширяет возможности ИЛ и ИН, она доказывает или опровергает утверждения,
строит алгоритм построения искомого объекта и (или) находит сам объект.
Расширение возможностей логик необходимо для придания ВМ интеллекта по пятой
номинации.
Сравнение логик может осуществляться по самым разнообразным признакам.
ИЛ обобщает все логики в силу многих свойств языка Лейбниц (многообразие типов
данных, наличие неопределенного типа, возможность задания операций и функций,
помимо встроенных операций и функций и т.п.). Проведем сравнение лишь с
классическими логиками и убедимся в правильности предыдущей фразы. Имеются три
классические логики: математическая, интуиционистская и модальная. Последняя из
перечисленных логик именуется еще и неклассической, хотя для сравнительного
анализа ее следует принять как классическую. Обычным критерием принадлежности
логики тому или иному направлению служит толкование закона исключенного
третьего.
Критерием получения результата применения логики является принятие или
рассмотрение логического закона исключенного третьего. Необходимо иметь в виду,
что закон противоречия также должен служить критерием квалификации логик. МЛ
утверждает, что закон исключенного третьего всегда верен. ИН отвергает такое
утверждение и ставит задачу подробного рассмотрения применения этого закона. На
основе рассмотрения закона ИН строит алгоритм для получения искомого объекта,
представленного связной величиной некоторого высказывания. ИЛ вначале следует за
ИН, затем выполняет алгоритм и находит сам объект. Так делается всегда при
разрешении запроса пользователя. В этом кардинальное отличие логик. Другое
отличие состоит в том, что, если МЛ и ИН фиксирует аксиомы исчисления или создает
стандарт исчисления (тем самым ограничивая пользователя конкретными
константами, величинами и операциями), то ИЛ использует логику пользователя,
которая, как в частном случае, может быть принятым стандартом или классически
сформулированной.
Поэтому
Интеллсист
доказывает
теоремы,
которые
рассматриваются в МЛ и ИН. Третье отличие состоит в том, что для ИЛ задача поиска
условий истинности важнее доказательства теорем. В основе работы ИЛ лежит задача
синтеза теорем. Решение любой задачи (кроме задач доказательства теорем) сводится
к поиску условий, при которых исходное утверждение в задаче будет истинным.
Широко известна формула исключенного третьего:
exists X P(X) \/ not exists X P(X)
Она трактуется в классической логике как истина. Ничего не мешает нам
переименовать связную переменную в одном из кванторов. Тогда получим:
exists X P(X) \/ not exists Y P(Y)
Эта формула не может сразу же трактоваться как истина. Необходимо рассмотреть
подробнее слагаемые. Этим примером продемонстрировано два факта: возможность
(скорее нужно сказать необходимость) замены имени перемененной и аккуратный
подход к формулировке (исследованию) закона исключенного третьего. Для
убедительности можно рассмотреть конкретный пример такой формулы. Истинной
можно считать формулу:
not exists I (I * I = 2) or exists X (X * X = 2),
и ложной можно считать следующую формулу:
exists I (I * I = 2) or not exists X (X * X = 2),
если предметная область I - целые числа, а предметная область X - вещественные
числа.
На основе ИЛ Интеллсист ищет ответы в трех формах: числа в обобщенном их
понимании, как основа фактов (формирование искомых объектов), утверждения,
характеризующие факты (формирование искомых понятий) и программы для
исполнения (формирование средств вычисления искомых объектов). В отличие от
принятого в математике доказательства теорем о единственности решений ИЛ
обеспечивает поиск альтернативных решений (одно или ни одного). Такие ответы
либо полезны для пользователя, поскольку он не может сформулировать знания,
которые обеспечили бы единственность решения, либо полезно только единственное
решение, тогда альтернативы обеспечивают поиск дополнительного знания для
сужения области решений. После получения одного решения пользователь
естественным образом устанавливает факт его единственности. В деятельности
пользователей по существу альтернативные решения могут оказаться полезными для
окончательного принятия решения, например в результате субъективных оценок.
Из сказанного следует делать вывод о преимуществах ИЛ, поскольку она
обеспечивает решения задач в любой логике (в том числе в МЛ и ИН). Каждая логика
имеет свои области применения, а с ее помощью решаются свои задачи определенной
области знания. Данное сравнение логик позволяет раскрыть области их применения,
указать на границы, в пределах которых данная логика имеет преимущества и
уравнять «шансы» на существование и единственность искомых объектов.
Напомним проблему сопоставления логик. Если говорить кратко существование
двух главных направлений в математике характеризуется двумя взглядами на
толкование бесконечности. Для МЛ существует актуальная бесконечность (которая
рассматривает множества как целое), а для «прагматической» ИН - потенциальная
бесконечность (которая рассматривает произвольные конечные множества).
«Разногласие» МЛ и ИН выявляется при рассмотрении закона исключенного третьего.
Его формулировка известна:
существует X (P(X)) или не существует Y (P(Y)).
Действительно, рассуждают классики, неважно, что используется X или Y, одна
формула является отрицанием другой, поэтому неизбежно следует истина при
рассмотрении всей формулы. Действительно, рассуждают интуиционисты, важно то,
что используется в качестве X и Y. От этого зависит истинность всей формулы.
Информатики согласны с первым и последним утверждениями. При этом ИЛ начинает
рассматривать в деталях смысл X и Y, в особенности области значений этих
переменных. Например, если области значений связных переменных формулы
совпадают, то действует МЛ. И. Имеется еще много различных логик, которые будут
давать самые разнообразные результаты изучения закона исключенного третьего (и
закона противоречия). ИЛ ставит проблему закона исключенного третьего так. Дана
логическая формула, попробуем найти решение логического уравнения, построенного
на базе этого закона. Решение можно интерпретировать с различных позиций.
Окажется, что среди решений найдется место для МЛ, ИН и др, логик.
7.5. Исчисление баз знаний и теорий
Накопление БЗ уже происходит непрерывно. Как упоминалось, их число равно,
по крайней мере, числу областей знаний или специализаций применения ВМ.
Исторически, вначале БЗ - это собрание книг в библиотеках, затем сбор данных в
памяти ВМ. Наконец, накоплены огромные библиотеки программ – алгоритмического
знания. Осознание таких фактов привело к появлению парадигмы машинной БЗ,
обеспечивающей доступ любого пользователя со своими проблемами к знаниям. Эта
функция собрания данных и знаний важна и признана. В отличие от БД БЗ готовы
обеспечить любого пользователя необходимыми сведениями для решения его проблем
или, как сейчас модно говорить, поиск новых решений на основе знаний. В связи с
накоплением БЗ возникают качественно новые и практически полезные проблемы:
 построение новой БЗ из известных,
 образование науки на стыке двух (трех) наук на основе композиции БЗ,
 реализация операций с БЗ и их атрибутами.
Следуя А.Н. Колмогорову, который сформулировал исчисление задач можно
говорить об исчислении БЗ. Новые БЗ можно строить путем объединения (применение
операции объединения), пересечения и использования «антизнания» (применение
операции отрицания) над исходными БЗ. Эти три операции полны, поэтому можно
построить любую функцию, определяющую БЗ на основе известных БЗ. В частности
можно говорить о построении базы теорий.
Для построения базы теорий можно использовать известные из математики
теории, которые следует рассматривать прежде, до формирования своей теории, так
как они являют универсальный формализм для многих (если не сказать для всех)
практически важных областей знаний. Ниже приводятся примеры представлений
знаний только некоторых конкретных теорий в качестве иллюстрации свойств ИП.
Необходимо обратить внимание на тот факт, что внешне запись аксиом каждой теории
почти ничем не отличается от принятой в математике записи. Вместе с
общепринятыми обозначениями для терминов приведем записи соответствующих
каждой аксиоме, которая будет находиться в БЗ после ее настройки на эту теорию.
Рассмотрим технологию создания и использования новой БЗ. Для построения
новой БЗ из числа имеющихся необходимо проделать некоторую работу. Работа с БЗ
или ее использование реализуются по вполне определенным шагам. Процедуры
формирования и использования БЗ являются технологическими. Шаги такой
технологии приведены ниже. Шаги могут показаться не совсем полными или кратко
описанными. К настоящему времени накоплено мало практического материала для
детального анализа технологии создания и использования БЗ.
Шаг 1. Построение предметной области через формирование лексикона и
формальное определение терминов понятий. Напомним определение предметной
области. Под предметной областью понимается совокупность данных, которая
потенциально или фактически может использоваться в решении данной проблемы или
данного класса проблем. Совокупности данных кластеризуются в типы данных, на
которые ссылаются объекты, используемые в проблемах или их решении
(переменные, функции и др.). Построение предметной области включает создание
имен предметов, выбор или построение типов данных и привязывание имен к типам
данных. В программировании соответствующий раздел именуется описанием
идентификаторов. Имена собираются в лексикон данной предметной области (обычно
совпадающей с предметной областью конкретной специальности). Лексикон включает
в себя полное описание термина, который проявляется внешне через свое имя,
состоящее из знаков и слов в обычном понимании смысла этого слова.
Шаг 2. Построение проблемной области через формирование или введение
операций и их формального определения. Проблемная область отличается от
предметной тем, что в ней рассматриваются операции (и функции, и процедуры) и их
определения. В принципе можно было бы операции рассматривать среди объектов
предметной области. Но имеются существенные аргументы в пользу того, чтобы
операции рассматривать отдельно. Среди них имеется обширный класс свойств
операций, которые не рассматриваются и не могут быть рассмотрены при
формировании предметной области. Предметная область - это коллекции данных, а
проблемная область - это коллекции отображений. Проблемная область определяет в
знаниях «глаголы», которые «оперируют» с объектами. Глаголы в представлениях
знаний существенно отличаются от глаголов ЕЯ. Иногда они могут совпадать, но чаще
всего они имеют мало общих свойств.
Шаг 3. Сбор знаний по различным источникам. В качестве источников могут
быть: учебники и пособия, собственные знания или знания специалиста и эксперта,
статьи или руководства, интервью или обсуждение, БЗ-аналоги или запросыпрецеденты. Проблемы сбора знаний могут составить самостоятельный или
специальный раздел книги по информатике или ИИ. Здесь описание шага завершается,
но заметим, что о сборе знаний будут материалы или сведения везде, где это будет
необходимо. Собранный материал нуждается в квалификации, которая может быть
реализована с помощью Интеллсист.
Шаг 4. Ввод и отладка знаний, помещенных в БЗ, является одним из методов их
квалификации. То, что можно сделать со знаниями, рассказывается в каждом томе.
Шаг 5. Тестирование и подтверждение знаний путем прогона тестовых запросов
с известными ответами. Проблемы тестирования известны в программировании, они и
их разрешение почти полностью переносится в ИП (см. [Коллинз86, Майерс82]), Здесь
же можно рассматривать и проблемы верификации.
Шаг 6. Создание комплекта БЗ и документации на знания в базе. Для
пользователя имеется простой вариант создания БЗ в форме задания без раздела
запроса. Для тиражирования БЗ создается специальными средствами инструментария
ИП, не всегда доступными каждому пользователю.
Технология создания БЗ напоминает технологию решения задач, она является
частью работ с инструментарием ИП и является доступной всем. В пределах запроса
можно создавать пользовательскую (свою) БЗ. Отработанные БЗ составляют рынок
знаний, который является новой нишей программного продукта.
7.6. Логика доказательств, логический вывод
В соответствии с нашей классификацией видов (см. т.1) представлений знаний
можно предложить такую классификацию методов логического вывода. Они в
большинстве случаев известны и не требуют специального пояснения. Однако
некоторый комментарий будет дан в процессе перечисления методов. В духе описания
информатики рассматриваются семь разновидностей логического вывода. Не все
разновидности принимаются в математике.
Правдоподобный логический вывод свойствен человеку и полезен для
машинного моделирования метода. Метод характеризуется использованием
созерцания мира вещей и приемами рассуждений по здравому смыслу. Машинное
моделирование полезно в познавательных целях, для исследования понимания
здравого смысла. Как математический метод правдоподобный вывод применяется в
статистической обработке результатов наблюдений.
Функциональный логический вывод используется в математике при
аналитических выкладках. Конечно же, он используется в информатике для
автоматизации процессов производства аналитических выкладок. Сущность метода
вытекает из его назначения - осуществлять преобразование текстов (формул или
выражений), которое представляет грамматически правильно построенные формулы.
Подстановочный логический вывод является самым простым, он используется
практически и теоретически во всех других методах вывода как составная часть.
Сущность метода состоит в рассмотрении некоторого (например, текстового) объекта,
в поиске вхождения некоторого шаблона и в замене этого вхождения другим
шаблоном. Манипулирование подстановок может привести к искомому результату.
Элиминационный логический вывод можно именовать информатическим, так
как он лежит в основании работы МЛВ и МАВ. Сущность метода состоит в
последовательном (шаг за шагом) исключении операций из рассматриваемой
формулы. Появление дополнительной операции возможно только при элиминации
старших в иерархии исчислений операций в младшие. Например, при переходе от
исчисления предикатов к открытому исчислению предикатов может появиться
операция-функция.
Дедуктивный логический вывод используется в классической математике при
построении доказательств теорем. Он сложен по своему существу и мало пригоден для
автоматизации процессов логического вывода с помощью ВМ. У человека работает
широкая интуиция, она и позволяет эффективно использовать этот метод вывода.
Машинные алгоритмы сложны по времени и применяются практически на модельных
примерах теорем в алгоритмах машинного доказательства теорем.
Мониторный логический вывод строится по аналогии с обслуживанием
информационно-поисковых алгоритмов и связан с рассмотрением больших массивов
данных и ассоциативной выборкой запрашиваемых данных. Метод обладает
значительной силой, которая до сих пор не выявлена до конца, используется
практически только его начальные основания для прямого шаблонного обследования
различных данных.
Индуктивный логический вывод также как и дедуктивный используется в
классической математике при индуктивных рассуждениях. Метод характеризуется
такими свойствами, как и дедуктивный метод. Поэтому его пояснение связано с
пояснениями дедуктивного метода.
Итак, из классификации методов логического вывода следует некоторое
представление о месте металогики информатики в системе знаний о природе
применения ВМ.
Нужно быть осторожным с применением синтаксических и семантических
правил логического вывода. Вспомним, что синтаксическое правило интерпретируется
логической связкой «если-то», а семантический - отношением следования истины
(знак |-). В качестве иллюстрации рассмотрим правила дедуктивного и эвристического
вывода. Правило дедукции имеет вид A & (A => B) | B, а правило эвристики - A & (H
=> A) | H. Семантическое правило для индукции при его исследовании примет
следующий вид A & (A => B) => B, а синтаксическое правило эвристики - A & (H =>
A) & H. Решение первого уравнения определяет истину, решение второго - A & H. В
[Осуга89] приведены содержательные примеры: «Яблоко падает с дерева (A), если
яблоко упало с дерева, то оно гнилое (A => B) | яблоко гнилое (B)» и «Яблоко падает с
дерева (A), если существует закон всемирного тяготения, то яблоко падает с дерева (H
=> A) | закон всемирного тяготения существует (H - гипотеза)». Решение второго
уравнения определяет одновременность двух событий «Яблоко падает с дерева» и
«закон всемирного тяготения существует».
Наиболее трудоемкой частью логики информатики является метаматематика
информатики. Главным образом по этой причине метаматематика ИЛ еще не
оформлена окончательно. Предстоит сложный путь в создании окончательной версии
ИЛ. Кроме создания необходимым атрибутом ИЛ должна быть работа, связанная с
определением области применения ИЛ и соответствующих МЛВ и МАВ.
Сформулируем некоторые утверждения из метаматематики информатики и
дадим некоторые определения, касающиеся интерпретации знания математическими
средствами. Построение метатеории информатики, это уже отмечалось, является
сложным делом, делом большого времени исследований. Ниже даются только
некоторые образцы метатеории.
Теорема 1. Если А(Х) имеет решение <Х, значение>, то А(У) также имеет
решение вида <У, значение>. Заметим, что решение <У, значение> может оказаться
предрешением А(У).
Теорема 2. Для исчисления высказываний верно утверждение: если логическое
уравнение В получено из логического уравнения А заменой операций & и \/ на
операции \/ и & соответственно, тогда решения not В и А после замены в В всех
входящих в него высказываний С на not С будут одинаковы.
Теорема 3. Логическое уравнение А => В имеет те же решения, что и логическое
уравнение not А \/ В.
Проблем для метаматематики чрезвычайно много. Среди них имеются такие:
проверка корректности и грамматической правильности задания, проблемы
осмысленности и соответствия фактам, возможности получения новых фактов, оценка
условий единственности решения и точности вычислений.
7.7. Сравнение исчислений и некоторые теории
Исчисления строятся каждый раз, когда обнаруживаются новые предметы,
явления или процессы. Использование известных исчислений наступает тогда, когда
решается конкретная задача в предметной и проблемной областях, поддержанными
такими исчисленьями. Попытка построения нового исчисления может оказаться
неудачной из-за его противоречивости или неполноты, тогда необходимо принять
известное исчисление. Попытка может оказаться удачной, тогда возникает проблема
определения области применения этого исчисления. Заметим, что каждый
пользователь строит или применяет БЗ, которая определяет некоторое исчисление в
данной области знания. Рассмотрим некоторое число известных теорий с
комментариями, вытекающими из возможностей Интеллсист. Заметим, что при
введении новых типов данных используемые ниже операции необходимо вводить
через их описание с новыми типами данных.
Пример 1. Теория порядка определяет включенную в ИЛ операцию неравенства
и включает следующие аксиомы АП.
АП1. X <= X.
АП2. (X <= Y & Y <= Z) => (X <= Z).
АП3. (X <= Y & Y <= X) => (X = Y).
АП4. (X <= Y \/ Y <= X) => (X = Y).
В Интеллсист решение каждого уравнения-аксиомы будет представлено как истина,
поскольку эта операция вместе с ее свойствами учтена и реализована в МЛВ. Заметим,
что аксиомы 1 и 2 формируют теорию предпорядка. Аксиомы 1 - 3 образуют
собственно теорию порядка, а вся совокупность аксиом - теорию линейного порядка.
Пример 2. Теория решеток рассматривает операции \/ - объединение и /\ пересечение и определяется следующими аксиомами.
АР1. (X1 = Y1 & X2 = Y2) => (X1 \/ X2 = Y1 \/ Y2)
АР2. (X1 = Y1 & X2 = Y2) => (X1 /\ X2 = Y1 /\ Y2)
АР3. X \/ Y = Y \/ X
АР4. X /\ Y = Y /\ X
АР5. (X \/ Y) \/ Z = X \/ (Y \/ Z)
АР6. (X /\ Y) /\ Z = X /\ (Y /\ Z)
АР7. ((X /\ Y) \/ Y) = Y
АР8. (X /\ (X \/ Y)) = X
АР9. (X /\ (Y \/ Z)) = ((X /\ Y) \/ (X /\ Z))
АР10. X = Y => - X = - Y
АР11. (X /\ - X) \/ Y = Y
АР12. (X \/ - X) /\ Y = Y
Аксиомы 1 - 8 формируют собственно теорию решеток. Вместе с аксиомой 9 теория
именуется теорией дистрибутивных решеток. Добавление аксиом 10 - 12 приводит к
построению теории булевых алгебр. Операция «–» обозначает операцию дополнения
(или отрицания). В Интеллсист также решение каждого уравнения-аксиомы будет
представлено как истина.
Пример 3. Элементарная теория аддитивных групп определяет операцию
сложения (+), единичный нулевой элемент (0) и включает некоторые из приведенных
аксиом.
АА1. (X1 = Y1 & X2 = Y2) => (X1 + X2 = Y1 + Y2)
АА2. X + (Y + Z) = (X + Y) + Z
АА3. X + 0 = X
АА4. exists Y (X + Y = 0)
АА5. exists Y (N * Y = X & N >= 1)
Для введенных типов данных, для которых допустимы использованные операции, эти
аксиомы при решении дадут в ответе истину. Аксиомы 2, 3 и 4 образуют Абелеву
группу, а вместе с аксиомой 1 - полную Абелеву группу. Вся совокупность аксиом
представляет кольцо. Можно рассмотреть построение теории на основе добавления
аксиомы АА5.
Пример 4. Элементарная теория мультипликативных групп определяет операции
умножения (*) и обратной величины (-1), единичный элемент (E) и включает
следующие аксиомы.
АГ1. (X1 = Y1 & X2 = Y2) => (X1 * X2 = Y1 * Y2)
АГ2. X * (Y * Z) = (X * Y) * Z
АГ3. exists Z (X * Z = Y)
АГ4. exists Z (Z * X = Y)
АГ5. X = Y => X-1 = Y-1
АГ6. X * E = X
АГ7. X * X-1 = E
АГ8. X * 1 = X
АГ9. 0 /= 1
Пример 5. Элементарная теория чисел включает следующие аксиомы:
Аксиома экстенсиональности, всякое множество определено своими элементами.
А1: all X, Y ((X = Y) = all Z (Z in X = Z in Y))
Свойство пустого множества
А2: all X (not X in null)
Существует множество, в которое входят только два элемента X и Y
А3: all X, Y (exists Z (all W (W in Z = (W = X \/ W = Y))))
Существует множество, которое является объединением двух множеств
А4: all X, Y (exists Z (all W (W in Z = (W in X \/ W in Y))))
Х - натуральное число, определяемое аксиомами.
Литература
[Абрамов89] Абрамов С.А., Зима Е.В. Начала информатики М., Наука, 1989. - 256 с.
[Агафонов82] Агафонов В.Н. Типы и абстракции данных в языках программирования. //В кн.:
Данные в языках программирования. - М., Мир, 1982
[Агафонов87] Агафонов В.Н. Спецификация программ: понятийные средства и их организация.
Новосибирск, Наука, 1987
[Айзерман90] Айзерман М.А., Алескеров Ф.Т. Выбор вариантов. Основы теории. - М., Наука, 1990, 237 с.
[Айламазян89] Айламазян А.К., Стась Е.В. Информатика и теория развития. - М., Наука, 1989. - 174 с.
[Алгоритмы82] Алгоритмы, математическое обеспечение и архитектура многопроцессорных
вычислительных систем. - М., Наука, 1982. - 336 с.
[Алгоритмы90] Алгоритмы и программы решения задач на графах и сетях. - М., Наука, 1990, - 515 с.
[Александров78] Александров В.В., Лапин А.Н. К проблеме построения диалоговых систем хранения
знаний. //В кн.: Автоматизация исследований и проектирования. - М., 1978
[Александров75] Александров Е.А. Основы теории эвристических решений. - М., Советское радио,
1975, - 254 с.
[Алексеев68] Алексеев П.М. Частотный словарь английского подъязыка электроники. //В сб.:
Статистика речи. - Л., 1968
[Алексеева84] Алексеева З.Я., Стефанюк В.А. Экспертные системы - состояние и перспективы. //Изв.
АН СССР, Техническая кибернетика, 1984, N 5
[Алексеева97] Алексеева Т.Н., Алексеев А.В., Гаврилин А.В., Товбис М.Б., Удалов В.А., Яковлева Т.А. О
региональном стандарте по информатике (предложение по разработке и внедрению). - М.,
Информатика и образование, 1997, N 5, с.8-10
[Алиев90] Алиев Р.А., Абдикеев Н.М., Шахназаров М.М. Производственные системы с
искусственным интеллектом. - М., Радио и связь, 1990, - 264 с.
[Алиев91] Алиев А.С., Восков Л.С., Ильин В.Н., Матвеев В.И., Садеков А.С., Сыпчук П.П., Чиннова И.И.
Интеллектуальные САПР технологических процессов в радиоэлектронике. - М., Радио и связь,
1991, 262 с.
[Альтшуллер73] Альтшуллер Г.С. Алгоритм изобретения. - М., Московский рабочий, 1973. - 296 с.
[Альтшуллер79] Альтшуллер Г.С. Творчество как точная наука. Теория решения изобретательских
задач. - М., Сов.радио, 1979, - 176с.
[Амамия93] Амамия М., Танака Ю. Архитектура ЭВМ и искусственный интеллект. - М., Мир, 1993, 400 с.
[Амосов79] Амосов Н.М. Алгоритмы разума. - Киев, Наукова думка, 1979, -220 с.
[Анализ84] Анализ и оптимальный синтез на ЭВМ систем управления. - М., Наука, 1984
[Анин00] Анин Б.Ю. Защита компьютерной информации. - Санкт-Петербург, 2000, 342 с.
[Анисимов83] Анисимов Б.В., Курганов В.Д., Злобин В.К. Распознавание и цифровая обработка
изображений. - М., Высшая школа, 1983, - 295 с.
[Анохин73] Анохин П.К. Философский смысл проблемы естественного и искусственного
интеллекта. - М., Вопросы философии, 1973, N 6
[Антонюк86] Антонюк Б.Д. Экспертные системы в программе стратегической инициативы США. //
В кн.: Персональные компьютеры и локальные сети. - Тбилиси, 1986, - с. 9-10.
[Апресян74] Апресян Ю.Л. Лексическая семантика. - М., Наука, 1974
[Арбиб68] Арбиб М. Мозг, машина и математика. - М., Наука, 1968, - 224 с.
[Аристотель] Аристотель. Сочинение. Т.1, - М., Мысль, 1976
[Арсак90] Арсак Ж. Программирование игр и головоломок.- М., Наука,1990, - 224 с.
[Ахо78] Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции. - М., Мир,
1978. Т.1. Синтаксический анализ. - 614с. Т.2. Компиляция. - 488 с.
[Ахо79] Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. - М.,
Мир, 1979, - 536 с.
[Баженов64] Бежанов Л.Б. О некоторых философских аспектах проблемы моделирования
мышления кибернетическими устройствами. //В кн.: Кибернетика, мышление, жизнь. - М., 1964
[Базилевич89] Л.А.Базилевич. Автоматизация организационного проектирования. - Л.,
Машиностроение ЛО, 1989. - 176 с.
[Бакланов78] Бакланов В.М., Попов Э.В. "Понимание" фраз ограниченного русского языка. - М., Изв.
АН СССР, Техническая кибернетика, 1978, N 4.
[Бар88] Бар Р. Язык Ада в проектировании систем. - М., Мир, 1988
[Барздинь82] Барздинь Я.М. Некоторые правила индуктивного вывода и их применения. //В сб.
Семиотика и информатика, вып. 19, - М., ВИНИТИ, 1982
[Баронец86] Баронец В.Д. Проектирование лингвистических устройств на основе нечеткой логики.
//Автоматика и телемеханика, 1986, N 12
[Баррон74] Баррон Д. Рекурсивные методы в программировании. - М., Мир, 1974, - 80 с.
[Батурин] Батурин Ю.М. Проблемы компьютерного права. - М., Юридическая литература, 1991, - 272
с.
[Бауэр76] Бауэр Ф.Л., Гооз Г. Информатика. Вводный курс. - М., Мир, 1976
[Бауэр78] Бауэр Ф.Л., Гнац Р., Хилл У. Информатика. Задачи и решения.- М., Мир, 1978, - 355 с.
[Бектаев69] Бектаев К.Б., Зубов А.В., Ковалевич Е.Ф., Машкина Л.Е., Нехай .А. К исследованию
законов
распределения
лингвистических
единиц.
//В
сб.:
Статистика
текстов.
.Лингвостатистические исследования. - Минск, 1969
[Бектаев71] Бектаев К.Б., Лукьяненко К.Ф. О законах распределения единиц письменной речи. //В сб.:
Статистика речи и автоматический анализ текста. - Л., 1971, 1973, 1974
[Бектаев74] Бектаев К.Б., Пиотровский Р.Г., Шабес В.Я. Тезаурусное распознавание смысла
документа в АСУ и АИСП. //В сб.: Лингвистическое обеспечение автоматизированных систем
управления и информационно-поисковых систем. - Тюмень, 1974
[Белецкая91] Белецкая Л.В., Липницкий С.Ф., Машковская И.П., Млынчик И.И. Словарь по
информатике. - Минск, Университетское, 1991, - 160 с.
[Белнап81] Белнап Н., Стил Т. Логика вопросов и ответов.- М., Прогресс,1981.- 287 с.
[Белоногов79] Белоногов Г.Г., Новоселов А.П. Автоматизация процессов накопления, поиска и
обобщения информации. - М., Наука, 1979
[Белый10] Белый А. Мысль и язык (философия языка А.А.Полтебни). //В сб.: Логос. - М., 1910
[Беляев86] Беляев И.П. Структурная модель представления знаний. // В кн.: Психологическое
обеспечение АСОУ. - Одесса, 1986. - с. 60-65.
[Бенерджи71] Бенерджи Р. Теория решения задач. Подход к созданию искусственного интеллекта. М., Мир, 1971, - 224 с.
[Берг76] Берг А.И.,Бирюков Б.В.,Геллер Е.С.,Поваров Г.И. Управление, информация, интеллект. - М.,
1976
[Берж62] Берж К. Теория графов и ее применения. - М., ИЛ, 1962, - 320с.
[Берзтисс74] Берзтисс А.Т. Структуры данных. - М., Статистика, 1974, - 408 с.
[Бешенков97] Бешенков С.А., Давыдов А.Л., Матвеева Н.В. Гуманитарная информатика в начальном
обучении. - М., Информатика и образование, 1997, N 4, с.62-64
[Бидер76] Бидер И.Г., Большаков И.А. Формализация морфологического компонента модели
"смысл-текст". 1. Постановка проблемы и основные понятия. - М., Изв. АН СССР, Техническая
кибернетика, 1976, N 6
[Библиотека81] Библиотека алгоритмов 151б - 200б. Справочное пособие. Вып.4. - М., Радио и связь,
1981
[Бирюков65] Бирюков Б.В. О взглядах Г.Фреге на роль знаков и исчисления в познании. //В сб.:
Логическая структура научного знания. - М., 1965
[Блох87] Блох А.Ш. Граф-схемы и алгоритмы. - Минск, Высшая школа, 1987, 144 с.
[Богодист74] Богодист В.И. Измерение смысловой информации лингвистической единицы
французского языка. - Л., 1974
[Бойченко85] Бойченко Е.В., Кальфа В., Овчинников В.В. Локальные вычислительные сети. - М.,
Радио и связь, 1985. - 304 с.
[Бонгард67] Бонгард М.М. Проблема узнавания. - М., Наука, 1967, - 320 с.
[Бондаренко97] Бондаренко Н.В., Северова Т.С., Соколовский М.В., Толстых Г.Д. О концепции
обучения информатике в школе. - М., Информатика и образование, 1997, N 1, с.19-22
[Бордовский91] Бордовский Г.А., Извозчиков В.А., Исаев Ю.В., Морозов В.В. Информатика в
понятиях и терминах. Книга для учащихся старших классов средней школы. - М., Просвещение,
1991, - 208с.
[Борисов89] Борисов А.Н., Алексеев А.В., Меркурьев Г.В., Слядзь Н.Н., Глушков В.И. Обработка
нечеткой информации в системах принятия решений. - М., Радио и связь, 1989. -304с.
[Бохуа82] Бохуа Н.К., Геловани В.А., Ковригин О.В., Смольянов Н.Д. Экспертная система
диагностики различных форм артериальной гипертензии. - М., Изв. АН СССР, Техническая
кибернетика, 1982, N 6
[Боэм85] Боэм Б.У. Инженерное проектирование программного обеспечения. - М., Радио и связь,
1985, - 511 с.
[Брандон70] Брандон Д.Х. Организация работы на вычислительном центре. - М., Статистика, 1970, 296 с.
[Братко90] Братко И. Программирование на языке Пролог для искусственного интеллекта. - М.,
Мир, 1990, - 560 с.
[Братчиков75] Братчиков И.Л. Синтаксис языков программирования. - М., Наука, 1975
[Браун77] Браун П. Микропроцессоры и мобильность программного обеспечения. - М., Мир, 1977, 255 с.
[Бриллюэн66] Бриллюэн Л. Научная неопределенность и информация. - М., Мир, - 271 с.
[Бритон79] Бритон Д.Б. Новая компьютерная архитектура, основанная на потоке данных. - М.,
Электроника, 1979, N 9
[Бродская81] Бродская И.М., Камынин С.С. Система машинного видения для анализа сцен. //В кн.:
Проблемы машинного видения в робототехнике. ИПМ АН СССР, - М., 1981
[Броуди90] Броуди Л. Начальный курс программирования на языке Форт. - М., Финансы и
статистика, 1990, - 352 с.
[Брукс79] Брукс Ф.П. мл. Как проектируются и создаются программные комплексы. Мифический
человеко-месяц. Очерки по системному программированию. - М., Наука, 1979, - 152 с.
[Брусницов79] Брусницов Н.П. Микрокомпьютеры. - М., Наука, 1979
[Брябрин81] Брябрин В.М. Ф-язык - формализм для представления знаний в интеллектуальной
системе. //В сб.: Прикладная информатика. Вып. 1, Финансы и статистика, - М., 1981
[Брябрин88] Брябрин В.М. Программное обеспечение персональных ЭВМ. - М., Наука, 1988, - 271 с.
[Булос94] Дж.Булос, Р.Джеффри. Вычислимость и логика. - М., Мир, 1994, - 397 с.
[Бусленко78] Бусленко Н.П. Моделирование сложных систем. - М.,Наука,1978, 399 с.
[Вагин86] Вагин В.Н. Параллельная дедукция на семантических сетях. //Изв. АН СССР, Техническая
кибернетика, 1986, N 5
[Вагин87] Вагин В.Н., Захаров В.Н., Розенблюм Л.Я. К логическому выводу на сетях Петри. //Изв.АН
СССР, Техническая кибернетика, 1987, N 5
[Ван Дейк78] Ван Дейк Т. Вопросы прагматики текста. //В кн.: Новое в лингвистике. Вып. VIII.
Лингвистика текста. - М., 1978
[Василеску90] Василеску Ю. Прикладное программирование на языке Ада. - М., Мир, 1990, - 350 с.
[Вегнер83] Вегнер П. Программирование на языке Ада. - М.,Мир,1983,- 240с.
[Вейль89] Вейль Герман. Математическое мышление. - М., Наука,1989,- 400с.
[Велихов86] Велихов Е.П. Информатика - актуальное направление развития советской науки.
//Кибернетика. Становление информатики. - М., Наука, 1986, с.10-21
[Вельбицкий80] Вельбицкий И.В., Ходаковский В.Н., Шолмов Л.И. Технологический комплекс
производства программ на машинах ЕС ЭВМ и БЭСМ-6. - М., Статистика, 1980, - 263 с.
[Ветров68] Ветров А.А. Семиотика и ее основные проблемы. - М., 1968
[Винер66] Винер Н. Творец и робот. Обсуждение некоторых проблем, в которых кибернетика
сталкивается с религией. - М., Прогресс, 1966
[Винер68] Винер Н. Кибернетика или управление и связь в живом и машине. - М., Советское радио,
1968, - 340 с.
[Виноград76] Виноград Т. Программа, понимающая естественный язык. -М., Мир, 1976
[Виноградов86] Виноградов В.И. Информационно-вычислительные системы: Распределенные
модульные системы автоматизации. - М., Энергоатомиздат, 1986. - 336 с.
[Вирт77а] Вирт Н. Систематическое программирование: Введение. - М., Мир, 1977
[Вирт77б] Вирт Н. Язык программирования Паскаль (Пересмотренное сообщение). //В сб.:
Алгоритмы и организация решения экономических задач. вып. 9, - М., Статистика, 1977
[Вирт85] Вирт Н. Алгоритмы + структуры данных = программы. - М., Мир, 1985, - 408 с.
[Власов88] Власов В.К., Королев Л.Н., Сотников А.Н. Элементы информатики. - М., Наука, 1988. - 320
с.
[Воз84] Воз Л. Решение некоторых открытых проблем с помощью программы для автоматического
доказательства теорем. //Кибернетический сборник. Вып.21, - М., Мир, 1984, с.235-263
[Воронов90] Воронов Ю.П. Компьютеризация: Шаг в будущее. - Новосибирск: Наука, 1990. - 336 с.
[Восилюс80] Восилюс С.К., Мачераускас В.Ю. Фреймовое представление знаний в системах
управления качеством. //В кн.: Представление знаний в системах искусственного интеллекта. - М.,
1980
[Вудс76] Вудс В.А. Сетевые грамматики для анализа естественного языка. Кибернетический
сборник, вып. 13, - М., Мир, 1976
[Вулф87] Вулф А. Модули на базе однокристального Лисп-процессора для ЭВМ военного
назначения. //Электроника, 1987, т.60, N 5, с.27-31
[Высоцкий70] Высоцкий Г.Я., Рудный Б.Н., Трунин-Донской В.Н., Цемель Г.И. Опыт речевого
управления вычислительной машиной. Изв. АН СССР, Техническая кибернетика, 1970, N 2
[Выч67] Вычислительные машины и мышление. - М., Мир, 1967, - 552 с.
[Выч78] Вычислительная техника и обработка данных. Терминологический толковый словарь
фирмы IBM. - М., Статистика, 1978, - 232 с.
[Гаврилова00] Гаврилова Т.А., Хорошевский В.Ф. Базы знаний интеллектуальных систем (Учебник).
Санкт-Петербург, Москва – Харьков – Минск, 2000, - 384 с.
[Гавурин63] Гавурин М.К. О ценности информации. Вестник ЛГУ. Сер. математики, механики и
астрономии. N 19, вып. 4, 1963
[Гаек84] Гаек П., Гавранек Т. Автоматическое образование гипотез. Математические основы общей
теории. - М., Наука, 1984. - 278 с.
[Гантер81] Гантер Р. Методы проектирования программного обеспечения. - М., Мир, 1981
[Гетманова95] Гетманова А.Д. Логика. Для педагогических учебных заведений. -М., Новая школа,
1995, - 416 с.
[Ги86] Ги К. Введение в локальные вычислительные сети. - М., Радио и связь, 1986. - 176 с.
[Гилой81] Гилой В. Интерактивная машинная графика: структуры данных, алгоритмы, языки. М., Мир, 1981, - 384 с.
[Гильберт79] Гильберт Д., Бернайс П. Основания математики. Логические исчисления и
формализация арифметики. - М., Наука, 1979, - 558с.
[Гильберт82] Гильберт Д., Бернайс П. Основания математики. Теория доказательств. - М., Наука,
1982, - 653 с.
[Гинзбург70] Гинзбург С. Математическая теория контекстно-свободных языков. - М., Мир, 1970, 327 с.
[Гласс82] Гласс Р. Руководство по надежному программированию. - М., Финансы и статистика, 1982
[Гласс83] Гласс Р., Нуазо Р. Сопровождение программного обеспечения. - М., Мир, 1983, - 156 с.
[Глушков71] Глушков В.М., Гринченко Г.А. АНАЛИТИК. - К., Кибернетика,1971, N 3
[Глушков79] Глушков В.М. Фундаментальные исследования и технология программирования. //В
кн.: Технология программирования. - К., ИК АН УССР, 1979
[Глушков82] Глушков В.М. Основы безбумажной информатики. - М., Наука, 1982, - 552 с.
[Глушков90] Глушков В.М. Кибернетика, вычислительная техника, информатика. Избранные
труды в трех томах. Т.1. Математические вопросы кибернетики. - 264 с. Т.2. ЭВМ - техническая база
кибернетики. - 268 с. Т.3. - Киев, Наукова думка, 1990
[Голендер81] Голендер В.Е. Индуктивная логика и методы обнаружения закономерностей. //В кн.:
Машинные методы обнаружения закономерностей. - Рига, 1981
[Головкин80] Головкин Б.А. Параллельные вычислительные системы. - М., Наука, 1980. - 520 с.
[Горстко88] Горстко А.Б. Кочковая С.В. Азбука программирования. (Информатика для всех). - М.,
Знание, 1988, - 144 с.
[ГОСТ89] ГОСТ 28195-89. Оценка качества программных средств. Общие положения.
Государственный комитет СССР по стандартам. - М., Издательство стандартов, 1989, - 38 с.
[Грей89] Грей П. Логика, алгебра и базы данных.- М., Машиностроение,1989,- 368 с.
[Гренандер83] Гренандер У. Лекции по теории образов. - М., Мир. Т.1.Синтез образов. 1979, - 384 с.
Т.2. Анализ образов. 1981, - 446 с. Т.3. Регулярные структуры. 1983, - 345 с.
[Грис75] Грис Д. Конструирование компиляторов для цифровых вычислительных машин. - М.,
Мир, 1975, - 416 с.
[Грис84] Грис Д. Наука программирования. - М., Мир, 1984, - 416 с.
[Гришин82] Гришин Е.А., Билялитдинов А.Х. Структура языка представления знаний KRL.
//Техника средств связи. Сер. АСИ, N 1, 1982
[Громов85] Громов Г.Р. Национальные информационные ресурсы: Проблемы промышленной
эксплуатации. - М., Наука, 1985, - 237 с.
[Громов87] Громов Г.Р. Игровая компонента персональных ЭВМ: стимулятор творчества,
педагогический прием, жанр киноискусства. - М., Микропроцессорные средства и системы, 1987,
N3
[Гросс71] Гросс М., Лантен А. Теория формальных грамматик. - М., Мир, 1971
[Гудман81] Гудман С., Хидетниеми С. Введение в разработку и анализ алгоритмов. - М., Мир, 1981, 368 с.
[Гудстейн70] Гудстейн Р.Л. Рекурсивный математический анализ. - М., Наука, 1970, - 472 с.
[Гутер75] Гутер Р.Ц., Полунов Ю.Л. От абака до компьютера. - М., Знание, 1975, - 208 с.
[Дал69] Дал У., Мюрхауг Б., Нюгорд К. СИМУЛА 67 - универсальный язык программирования. - М.,
Мир, 1969
[Дал75] Дал У., Дейкстра Э., Хоор К. Структурное программирование. - М., Мир, 1975, - 248 с.
[Дейкало84] Дейкало Г.Ф., Новиков Б.А., Рухлин А.П., Терехов А.Н. Новые средства
программирования на ЕС ЭВМ. Транслятор с языка Алгол 68 и диалоговая система JEС. - М.,
Финансы и статистика, 1984, - 208 с.
[Дейкстра78] Дейкстра Э. Дисциплина программирования. - М., Мир, 1978, - 277 с.
[Дейт80] Дейт К. Введение в системы базы данных. - М., Наука, 1980
[Дейт88] Дейт К. Руководство по реляционной СУБД DB2. - М.: Финансы и статистика, 1988. - 320 с.
[Дембаускас87] Дембаускас А.П. Финансовая информатика. - М., Финансы и статистика, 1987, 207 с.
[Деметрович89] Деметрович Я., Кнут Е., Радо П. Автоматизированные методы спецификации. - М.,
Мир, 1989. - 115 с.
[Денинг84] Денинг В., Эссиг Г., Маас С. Диалоговые системы "человек-ЭВМ". Адаптация к
требованиям пользователя. - М., Мир, 1984
[Джадд75] Джадд Д.Р. Работа с файлами. - М., Мир, 1975
[Джехани88] Джехани Н. Язык Ада. - М., Мир, 1988, - 552 с.
[Джордж63] Джордж Ф. Мозг как вычислительная машина. - М., ИИЛ,1963, - 546 с.
[Добровольский89] ДобровольскийВ.Ю. Текстовый процессор microsoft WORD (для IBM
совместимых персональных компьютеров). Версия 4.0, руководство по эксплуатации. - М., 1989,
122 с.
[Доорс90] Доорс Дж., Рейблейн А.Р., Вадера С. ПРОЛОГ - язык программирования будущего. - М.,
Финансы и статистика, 1990, - 143 с.
[Дородницын85] Дородницын А.А. Информатика: Предмет и задачи. Вестник АН СССР, N 2, 1985,
с.85-89
[Дрейфус78] Дрейфус Х. Чего не могут вычислительные машины? Критика искусственного разума.
- М., Прогресс, 1978
[Дробушевич78] Дробушевич Г.А. Справочник программиста. - Минск, Вышятная школа, 1978, - 192
с.
[Дуда76] Дуда Р., Харт П. Распознавание образов и анализ сцен. - М., Мир, 1976
[Дэвис82] Дэвис Д., Барбер Д., Прайс У., Соломонидес С. Вычислительные сети и сетевые протоколы.
- М., Мир, 1982. - 562 с.
[Дюбуа90] Дюбуа Д., Прад А. Теория возможностей. Приложения к представлению знаний в
информатике. - М., Радио и связь, 1990, - 287 с.
[Дюк03] В.А. Дюк, Knowledge Mining - интеллектуальный анализ знаний. Санкт-Петербургский
институт информатики и автоматизации РАН.
[Евстигнеев85] Евстигнеев В.А. Применение теории графов в программировании. - М., Мир, 1985
[Ершов72а] Ершов А.П. О человеческих и эстетических факторах в программировании. - К.,
Кибернетика, N 5, 1972
[Ершов72б] Ершов А.П. Технология разработки систем программирования. //В кн.: Системное и
теоретическое программирование. Новосибирск, ВЦ СО АН СССР, 1972
[Ершов77] Ершов А.П. Введение в теоретическое программирование. Беседы о методе. - М., Наука,
1977, - 288 с.
[Ершов82] Ершов А.П., Ильин В.П. Пакеты программ как методология решения прикладных
проблем. //В сб.: Пакеты прикладных программ; проблемы и перспективы. - М., Наука, 1982
[Ершов83] Ершов А.П. Информатика. Предмет и понятие. //Наука в Сибире. - Новосибирск, 1983, N 32
[Ершов85] Ершов А.П. Человек и машина. - М., Знание, 1985
[Ершов86] Ершов А.П., Монахов В.М. и др. Основы информатики и вычислительной техники.
Пробное учебное пособие для средних учебных заведений. В двух частях. - М., Просвещение, 1986
[Ефимов77] Ефимов Е.И., Поспелов Д.А. Семиотические модели в задачах планирования для систем
искусственного интеллекта. - М., Изв. АН СССР, Техническая кибернетика, 1977, N 5
[Ефимов82] Ефимов Е.И. Решение интеллектуальных задач. - М., Наука,1982,- 320 с.
[Жигарев87] Жигарев А.Н., Макарова Н.В., Путинцева М.А. Основы компьютерной грамоты. Ленинград, Машиностроение ЛО, 1987, 255 с.
[Заде74] Заде Л.А. Основа нового подхода к анализу сложных систем и процессов принятия
решений. //В сб.: Математика сегодня. - М., Знание, 1974
[Зайцев85] Зайцев С.С. Транспортировка данных в сетях ЭВМ. - М., Радио и связь, 1985. - 128 с.
[Закревский85] Закревский А.Д., Баландин Р.К. Задание - опознать (распознавание образов). - М.,
Наука, 1985
[Зализняк77] Зализняк А.А. Грамматический словарь русского языка. - М., Русский язык, 1977
[Зарипов83] Зарипов Р.Х. Машинный поиск вариантов при моделировании творческого процесса. М., Наука, 1983. - 232 с.
[Зелковиц82] Зелкович М., Шоу А., Гэннон Дж. Принципы разработки программного обеспечения. М., Мир, 1982, - 368 с.
[Зикманн84] Зикманн Й., Сабо П. Универсальная унификация и классификация эквациональных
теорий. //Кибернетический сборник, вып.21, - М., 1984
[Зиновьев70] Зиновьев А.А. Комплексная логика. - М., Наука, 1970, 204 с.
[Ивашко86] Ивашко В.Г., Финн В.К. Экспертные системы и некоторые проблемы их
интеллектуализации. //Семиотика и информатика, вып.27, - М., ВИНИТИ, 1986
[Ивин96] Ивин А.А. Логика. - М., Просвещение, 1996, - 207 с.
[Ивлев92] Ивлев Ю.В. Логика. Изд. МГУ, 1992, - 272 с.
[Изерман84] Изерман Р. Цифровые системы управления. - М., Мир, 1984
[Ильин91] Ильин В.П. Вычислительная информатика: открытие науки. - Новосибирск, Наука СО,
1991, - 198 с.
[Ильинский79] Ильинский Н.И., Кузин Л.Т., Стрижевский В.С. Интеллектуальная система
программирования. //В кн.: Вопросы кибернетики, вып. 55, - М., АН СССР, 1979
[Ингерман69] Ингерман П. Синтаксически ориентированный транслятор. - М., Мир, 1969, - 175 с.
[Интелл90] Интеллектуализация программных средств. //Сб. ст. Новосибирск, Наука СО ИВЦ, 1990, 216 с.
[Информ75] Информационные системы общего назначения (аналитический обзор систем
управления базами данных). - М., Статистика, 1975, - 472 с.
[Информ90]
Информационный
бюллетень.
Научно-производственное
объединение
"ЦЕНТРПРОГРАММСИСТЕМ", Государственный испытательный центр программных средств
вычислительной техники. Тверь, 1990, - 22 с.
[Информатика1] Информатика. Экспресс-информация. - М., ВИНИТИ, с 1979, 48 раз в год.
[Информатика2] Информатика. Научно-технический сборник, сер. Кадровое обеспечение. Отдельные
выпуски с 1990 г. - М., ГК ВТИ СССР
[Информатика3] Информатика и вычислительная техника за рубежом. Информационный сборник
статей. По выпускам издается с 1990 г. - М.
[Информатика4] Информатика. Серия Автоматизация проектирования. - М., ВИМИ, издается с 1976
сборником статей.
[Информатика5] Информатика. Еженедельное приложение к газете «Первое сентября». ОАО.ПО
«Пресса-1» - М., с 1995, на 32 с.
[Информатика91] Информатика в понятиях м терминах. Книга для учащихся старших классов
средней школы. - М., Просвещение, 1991, - 208 с.
[Исихара92] Исихара С. Оптические компьютеры. Новый век науки. - М., Наука, 1992, - 96 с.
[Искусс88] Искусственный интеллект: Применение в химии. //Сб. ст. - М., Мир, 1988. - 430 с.
[Искусс91] Искусственный интеллект: Применение в интегрированных производственных
системах. - М., Машиностроение, 1991, 544 с.
[Йодан79] Йодан Э. Структурное программирование и конструирование программ. - М., Мир, 1979
[Калиниченко90] Калиниченко Л.А., Рывкин В.М. Машины баз данных и знаний. - М., 1990, - 296 с.
[Канторович72] Канторович Л.В., Гостко А.Б. Оптимальное решение в экономике. - М., Наука, 1972
[Карри69] Карри Х.Б. Основание математической логики. - М., Мир, 1069, - 568 с.
[Кархо81] Кархо М.И., Калья А.П., Тыугу Э.Х. Инструментальная система программирования ЕС
ЭВМ (ПРИЗ). - М., Финансы и статистика, 1981, - 160 с.
[Касаткин81] Касаткин Л.М. Активные семантические сети в системах знаний роботов. - Киев,
Знание, 1981
[Касьянов86] Касьянов В.Н., Поттосин И.В. Методы построения трансляторов. - Новосибирск, Наука
СО, 1986, - 344 с.
[Кейслер77] Кейслер Г., Чэн Ч.Ч. Теория моделей. - М., Мир, 1977
[Керниган85] Керниган Б., Плоджер Ф. Инструментальные средства программирования на языке
Паскаль, - М., Радио и связь, 1985, 313 с.
[Кибернетика79] Кибернетика. Неограниченные возможности и возможные ограничения. Итоги
развития. - М., Наука, 1979
[Кибернетика86] Кибернетика. Становление информатики. //Сб. статей. - М., Наука, 1986, - 192 с.
[Кинг91] Кинг Д. Создание эффективного программного обеспечения. - М., Мир, 1991, - 288 с.
[Кириллов98] Кириллов В.И., Старченко А.А. Логика. Учебник для юридических ВУЗов, - М., Юристъ,
1998, - 255 с.
[Кирсанов82] Кирсанов Б.С., Преображенский А.Б. Организация вычислительного процесса на
основе системы представления знаний. //В сб.: Прикладные и экспериментальные лингвистические
процессоры. Новосибирск, 1982
[Киселев97] Киселев М., Соломатин Е.. Средства добычи знаний в бизнесе и финансах. — Открытые
системы, № 4, 1997, с. 41–44.
[Кларк87] Кларк К., Маккейб Ф. Введение в логическое программирование на микро-Прологе. - М.,
Радио и связь, 1987, - 312 с.
[Классификация80] Классификация и кластер. - М., Мир, 1980, - 391 с.
[Клещев82] Клещев А.С., Черняховский М.Ю. Системы представления проблемно-ориентированных
знаний. Изв. АН СССР, Техническая кибернетика, N 5, 1982
[Клини73] Клини С.К. Математическая логика. - М., Мир, 1973. - 480 с.
[Клини78] Клини С., Весли Р. Основания интуиционистской математики с точки зрения теории
рекурсивных функций. - М., Наука, 1978, - 272 с.
[Клир90] Клир Дж. Системотология. Автоматизация решения системных задач. - М., Радио и связь,
1990, - 540 с.
[Клоксин87] Клоксин У., Меллиш К. Программирование на языке ПРОЛОГ. - М., Мир, 1987, - 336 с.
[Кнут00] Кнут Д.Э. Искусство программирования. Т.1. Основные алгоритмы.
- М.-СПб-Киев, Мир, 2000, - 713 с. Т.2. Получисленные алгоритмы. - М.-СПб-Киев, Мир, 2000, - 829
с. Т.3. Сортировка и поиск. - М.-СПб-Киев, Мир, 2000, - 823с. Т.4. Комбинаторные алгоритмы.
Т.5. Синтаксические алгоритмы. (в печати)
[Ковальски90] Ковальски Р. Логика в решении проблем. - М., Наука, 1990, - 279 с.
[Когаловский92] Когаловский М.Р. Технология баз данных на персональных ЭВМ. - М., Финансы и
статистика, 1992, - 224 с.
[Колин75] Колин А. Введение в операционные системы. - М., Мир, 1975, - 116 с.
[Коллинз86] Коллинз Г., Блэй Дж. Структурные методы разработки систем: от стратегического
планирования до тестирования. - М., Финансы и статистика, 1986
[Колмогоров65] Колмогоров А.Н. Три подхода к определению понятия "количество информации".
//В кн.: Проблемы передачи информации, т.1, вып.1, - М., 1965
[Компьютер86] Компьютерная алгебра. Символьные и алгебраические вычисления. //Сб. статей. М., Мир, 1986, - 392 с.
[Компьютер88] Компьютерные игры. - Л., Лениздат, 1988, - 168 с.
[Компьютер90] Компьютеры и познание: очерки по когнитологии. //Сб. статетй. - М., Наука, 1990, 128 с.
[Кондаков71] Кондаков Н.И. Логический словарь. - М., Наука, 1971, - 656с.
[Кондратов87] Кондратов А.М. Электронный разум. Очерк исследований по проблеме
искусственного интеллекта. - М., Знание, 1987, - 170с.
[Кондрашина79] Кондрашина Е.Ю. Элементы семантического представления локативных связей. //В
кн.: Новые задачи в информатике. Новосибирск, 1979
[Кондрашина89] Кондрашина Е.Ю., Литвинцева Л.В., Поспелов Д.А. Представление знаний о времени
и пространстве в интеллектуальных системах. - М., Наука, 1989, - 328 с.
[Конторов93] Конторов Д.С., Конторов М.Д., Слока В.К. Радиоинформатика. - М., Радио и связь, 1993,
- 296 с.
[Косарев89] Косарев Ю.А. Естественная форма диалога с ЭВМ. - Л., Машиностроение ЛО, 1989. - 144
с.
[КотовВЕ84] Котов В.Е. Сети Петри. - М., Наука, 1984. - 160 с.
[КотовВЕ91] Котов В.Е., Сабельфельд В.К. Теория схем программ. - М., Наука, 1991, - 248 с.
[КотовРГ79] Котов Р.Г., Якушин Б.В. Языки информационных систем. - М., Наука, 1979
[КотовЮВ88] Котов Ю.В. Как рисует машина. - М., Наука, 1988
[Коуги85] Коуги П.М. Архитектура конвейерных ЭВМ. - М., Радио и связь, 1985
[Коутс90] Коутс Р., Влейминк И. Интерфейс "человек-компьютер". - М., Мир, 1990, - 501 с.
[Коэн75] Коэн Ф., Милопулос Д., Борджиа А. Некоторые аспекты представления знаний. //Тр. IV
МОКИИ, т.2, - М., 1975, т.10.
[Крайзель81] Крайзель Г. Исследования по теории доказательств. - М., Мир, 1981
[Крайзмер68] Крайзмер Л.П., Матюхин С.А., Майоркин С.Г. Память кибернетических систем (основы
мнемологии). - Л., 1968
[Крамм89] Крамм Р. Системы управления базами данных dBASEII и dBASEIII для персональных
компьютеров. М., Финансы и статистика, 1989, - 384 с.
[Красилов56а] Красилов А., Наголкин А.Н., Князев Б.А., Толстых Е.Т., Кукин В.И. Метод
автоматического программирования на автоматической быстродействующей цифровой
вычислительной машине. Рукопись МКБ «Стрела», 1956, 51 с.
[Красилов56б] Красилов А., Федосеев В., Закамский В., Воронова А., Ганина А., Гусева. Программа для
автоматического программирования задач на машине СТ-2 (Программирующая программа №
1). Рукопись МКБ «Стрела», 1956, 64 с.
[Красилов59] Козлов С.И., Красилов А.А. Электронные вычислительные машины в подготовке
производства. //Производственно технический бюллетень, N 10, 1959, - М., Дом техники, с.62-64
[Красилов67] Красилов А.А. Курс программирования на языке АЛГОЛ. Препринт ЦКБ «Алмаз»,
1967, - 119 с.
[Красилов68а] Красилов А.А., Ксенофонтов Ю.И., Лейтес В.Л. Система автоматизации
программирования для вычислительной машины М-222. Алгоритм-1. Препринт ЦКБ «Алмаз»,
1968, - 180 с.
[Красилов 68б] Богомаз Н.А., Красилов А.А. Система команд вычислительной машины М-220.
Препринт ЦКБ "Алмаз", 1968, - 91 с.
[Красилов70а] Красилов А.А., Дригваль Г.П. Вопросы автоматизации программирования для ЦИМ.
Тр. конф. - Таганрог., 1970
[Красилов706] Красилов А.А., Ксенофонтов Ю.И., Лейтес В.Л. Репникова Л.А. Система автоматизации
программирования для вычислительной машины М-222. Алгоритм-2. Препринт ЦКБ «Алмаз»,
1968, - 116 с.
[Красилов70в] Красилов А.А., Ксенофонтов Ю.И., Лейтес В.Л. Репникова Л.А. Система автоматизации
программирования для вычислительной машины М-222. Алгоритм-3. Препринт ЦКБ «Алмаз»,
1968, - 24 с.
[Красилов70г] Красилов А.А. ЯМО - язык математического обеспечения. Препринт ЦКБ «Алмаз», М., 1970, 55 с.
[Красилов71а] Красилов А.А., Ксенофонтов Ю.И., Лейтес В.Л. Реализация на ЭВМ М-220 языка типа
Алгол 60. ЖВМиМФ, т.11, N 4, - М., 1971, с. 1075-1078
[Красилов71б] Красилов А.А., Горельков А.Л., Лейтес В.Л., Жданова Н.Л. Алгоритм синтеза тестовых
и диагностических таблиц для комбинационных логических схем. Доклад на XVII научной
конференции МФТИ, г. Долгопрудный, 1971
[Красилов72] Красилов А.А., Ксенофонтов Ю.И. Система автоматического программирования. Язык
базовый Фортран. Препринт ЦКБ «Алмаз», - М., 1972, 87 с.
[Красилов73а] Красилов А.А., Ксенофонтов Ю.И. Библиотека стандартных программ ЭВМ "РИТМ".
Препринт ЦКБ "Алмаз", 1973, - 232 с.
[Красилов73б] Красилов А.А., Герасимов Ю.А. Автоматизация аналитических выкладок на ЭВМ.
Доклад на XIX научной конференции МФТИ, г. Долгопрудный, 1973
[Красилов73г] Красилов А.А. Программирование КС-языков. Доклад на XIX научной конференции
МФТИ, г. Долгопрудный, 1973
[Красилов74а] Красилов А.А., Лейтес В.Л., Лоскутов В.Г. Использование свойств языка Алгол-68 в
автокоде. //Тр. ХIХ Научн.конф. МФТИ, 1973, Сер. Аэромех. и процессы управления Долгопрудный, 1974, вып.3, с.143-146
[Красилов74б] Красилов А.А., Лейтес В.Л. Формульный автокод ФРАК26 (руководство
пользователю). Препринт ЦКБ "Алмаз", 1974, - 93с.
[Красилов74в] Красилов А.А. Программирование КС-языка. //Тр. ХIХ Научн. конф. МФТИ, 1973, Сер.
Аэромех. и процессы упр. - Долгопрудный, вып.3, 1974, с.135-142
[Красилов74г] Красилов А.А., Петрушкин П.Н. Конструктор программ грамматического разбора.
Доклад на XX научной конференции МФТИ, г. Долгопрудный, 1974
[Красилов75а] Красилов А.А. Программирование формальных языков. Препринт ЦКБ "Алмаз", 1975,
- 242 с.
[Красилов75б] Красилов А.А. Основные результаты и направления в студенческих работах по
системному программированию. Доклад на XXI научной конференции МФТИ, г. Долгопрудный,
1975
[Красилов75в] Красилов А.А. Применение машины грамматического разбора в программировании
алгоритмов АСУ. Тезисы докл. И сообщ. Семинара «Программное обеспечение задач АСУ и ЭВМ»,
- М., 1975, с. 14-15
[Красилов77] Красилов А.А. О программировании классов задач. Доклад на XXIII научной
конференции МФТИ, г. Долгопрудный, 1977
[Красилов78а] Красилов А.А. Система команд машины грамматического разбора. АН СССР,
Программирование, - М., 1978, N 2
[Красилов78б] Красилов А.А. Формульные автокоды - высокоуровневые машинноориентированные языки системного программирования. //В сб. Всесоюзного симпозиума,
Новосибирск, 1978
[Красилов78в] Броль В.В., Красилов А.А., Маслов А.Н. Язык программирования Алгол 68. Итоги
науки и техники. Теория вероятностей. Математическая статистика. Теоретическая кибернетика. Т.15,
ВИНИТИ, - М., 1978, с.165-234
[Красилов79а] Красилов А.А., Ксенофонтов Ю.И. Граф языка Алгол-68. Тр. ЦКБ "Алмаз", 1979, 24 с.
[Красилов79б] Красилов А.А., Горельков А.Л., Косырев В.Е. Структура математического обеспечения
системы управления металлорежущими станками. Доклад на XXV научной конференции МФТИ,
г. Долгопрудный, 1979
[Красилов80] Красилов А.А., Технология программирования. Доклад на XXVI научной конференции
МФТИ, г. Долгопрудный, 1980
[Красилов81а] Красилов А.А., Горельков А.Л. и др. Структура операционных систем комплекса ЭВМ
для управления станками. - Киев, УСиМ, 1981, N 4, с.134-139
[Красилов81б] Красилов А.А., Горельков А.Л., Львов В.М. Система команд машины диалога. Доклад
на XXVII научной конференции МФТИ, г. Долгопрудный, 1981
[Красилов81в] Горельков А.Л., Красилов А.А. и др. Структура операционных систем комплекса ЭВМ
для управления станками. - Киев, УСиМ, 1981, N 4
[Красилов 81г] Красилов А.А., Лейтес В.Л. Языки в технологии разработки управляющих ЭВМ АСУ.
Обмен опытом в радиопромышленности, - М., 1981
[Красилов83а] Красилов А.А. Язык программирования Ада - основа новой технологии
программирования. //Тр. семинара "Прогрессивная технология программирования", - М., МДНТП,
1983, с.42-44
[Красилов83б] Красилов А.А., Горельков А.Л. МГР-технология разработки транслирующих систем.
//В сб.: Прогрессивная технология программирования. - М., МДНТП, 1983, с.89-91
[Красилов83в] Красилов А.А., Горельков А.Л. АЛМАЗ - язык системы управления
многооперационными и многокоординатными станками. Часть 1. Пус - язык программ
управления станками. Препринт ЦКБ "Алмаз", 1983, - 179 с.
[Красилов83г] Красилов А.А., Леонова В.П., Пронина М.Ф. Англо-русский терминологический
словарь по единой системе ЭВМ. Препринт ЦКБ "Алмаз", 1977 и 1983, - 215 с.
[Красилов 83д] Красилов А.А. Единый язык программирования. Доклад на XXIX научной
конференции МФТИ, г. Долгопрудный, 1983
[Красилов85а] Красилов А.А., Герасимов Ю.А., Громов А.А., Косырева О.Е., Черных А.П., Шатилова
С.С. Программирование преобразований программ в системе аналитических выкладок
АНАЛИЗ. // Тр. конф.: Синтез программ. Устинов, 1985
[Красилов85б] Красилов А.А. Слово об информатике. Доклад на XXXI научной конференции МФТИ, г.
Долгопрудный, 1985
[Красилов85в] Красилов А.А., Милков В.Е. Расширение языка Ада для системы синтеза программ.
Доклад на XXXI научной конференции МФТИ, г. Долгопрудный, 1985
[Красилов86а] Красилов А.А., Горельков А.Л. Стили программирования. М., МФТИ, 1986, - 83 с.
[Красилов86б] Красилов А.А., Лейтес В.Л., Фадеева Е.П., Хитров В.А., Чепкасов В.П. Реализация
языка Ада на ЭВМ БЭСМ-6. Программирование, - М., 1986, N 3, с.60-70
[Красилов86в] Krassilov A.A., Sukhikh A.J., Milkov V.E. Ada language extension - entrance language for
program synthesis system. In:EVT, 1986, no.2, pp.78-87.
[Красилов87а] Красилов А.А. Язык Ада в основах информатики. // Тезицы докл. Применение и
реализация языка программирования Ада. РПИ, - Рига, 1987, с.5
[Красилов87б] Красилов А.А., Сухих А.Ю. Расширение языка Ада - входной язык системы синтеза
программ. // Тезисы докл. Применение и реализация языка программирования Ада. РПИ, - Рига,
1987, с65
[Красилов87в] Красилов А.А. Краткий терминологический словарь по информатике (с
библиографией). Препринт ЦКБ «Алмаз», 1987, 74 с.
[Красилов87г] Красилов А.А., Сухих А.Ю. Диалоговая система применения теории вывода в
программировании. ВСР, ЭВТ, вып. 2, 1987, с. 3-17
[Красилов87д] Горельков А.Л., Красилов А.А. Лингвистическое и программное обеспечение УЧПУ
Алмаз-200ПФ. ВСР, ЭВТ, вып. 2, 1987, с. 115-127
[Красилов88а] Красилов А.А. Методы информатики. Препринт ЦКБ "Алмаз", 1988, - 276 с.
[Красилов88б] Красилов А.А. Язык программирования Ада в технологии программирования. //В
сб.: Программное обеспечение систем автоматизированного проектирования, РПИ, - Рига, 1988, с.2330
[Красилов88в] Krassilov A.A., Sukhikh A.J., Dialog system of inference theory application in
programming. In:EVT, 1988, no.2, pp.3-16.
[Красилов 88г] Богородская Н.Е., Красилов А.А. Применение и реализация языка программирования
Ада. - Киев, УСиМ, N 1(93), 1988
[Красилов88д] Красилов А.А. Что такое информатика. ВСР, ЭВТ, вып. 2, 1988, с.3-24.
[Красилов89а] Красилов А.А., Горельков А.Л. Математические машины в диалоговых системах.
//Тезисы докл. на конф. "Диалог "человек-ЭВМ". Часть 2. Теоретические методы построения
диалоговых систем. Инструментальные системы. Технологические средства диалога и сети ЭВМ. Свердловск, 1989, с.29
[Красилов89б] Красилов А.А. Интеллектуализация программирования на базе экспертных систем.
Доклад на всесоюзной конф: «Теория и практика построения интеллектуальных интегрированных
САПР РЭА и БИС», - Звенигород, 5-7 декабря 1989
[Красилов89в] Красилов А.А. и др. (всего 25 авторов) Язык программирования Ада. ГОСТ 27831-88
(ИСО 8652-87) // разработка и редакция, М., Госком СССР по стандартам, 1989, - 264 с.
[Красилов89u] Красилов А.А., Хитров В.А. Преподавание основ информатики на базе языка Ада в
МФТИ. Тезисы докл. //В сб. «Методическое и программное обеспечение обучения языку ада», Рига,
3-6 апреля 1989, с.6.
[Красилов90а] Красилов А.А. Инструмент математической экспертной системы. //В сб.: Освоение и
концептуальное проектирование интеллектуальных систем. Тезисы докладов и сообщений. - М., 1990,
с.10-11
[Красилов90б] Красилов А.А. Математические экспертные системы. //Вторая всесоюзная школа.
Автоматизация создания математического обеспечения и архитектуры систем реального времени.
Тезисы докладов. - Иркутск, 1990, с.9
[Красилов90в] Красилов А.А. Математический подход к разработке экспертных систем. //Тезисы
докл. Всесоюзной школы-семинара, - М., МАИ, 1990
[Красилов90г] Красилов А.А. Направления информатизации САПР. //Сб. Технология разработки и
САПР программного обеспечения. - Рига, РТУ, 1990, с.5 - 13
[Красилов90д] Красилов А.А. Основы информатики. Определение и концепции. // Учебное пособие,
МФТИ, - Долгопрудный, 1990, - 80 с.
[Красилов90е] Красилов А.А. Инструмент математической экспертной системы. //Сб. тезисов
докладов на Научной конф. «Освоение и концептуальное проектирование интеллектуальных систем»
- М., 1990, с 10-11
[Красилов91а] Красилов А.А., Лейтес В.Л. Риюз - повторное использование программ и язык Ада. Киев, УСиМ, 1991, N 6, с. 57 - 68
[Красилов91б] Красилов А.А. Обзор направлений в информатике. //Материалы семинара: "Научнотехнические средства информатизации, автоматизации и интеллектуализации в народном хозяйстве",
28 - 29 октября 1991, - М., ЦРДЗ, 1991, с. 14 - 23
[Красилов91в] Красилов А.А. Классификация интеллектуальных систем. //Материалы семинара:
"Научно-технические средства информатизации, автоматизации и интеллектуализации в народном
хозяйстве", 28 - 29 октября 1991, - М., ЦРДЗ, 1991, с. 33 - 43
[Красилов92] Красилов А.А., Лейтес В.Л. Вопросы сертификации баз знаний и интеллектуальных
систем. //Тезисы докладов, Всесоюзное совещание-семинар, сентябрь, МИЭМ, - М., 1992, с. 34
[Красилов93] Красилов А.А. Интеллектуальные системы (системы решения проблем). Курс лекций
для 5 курса МФТИ ФУПМ, текстовый файл, 1993, 220 с.
[Красилов94а] Красилов А.А. Informatical Logic, Logical Equation Decision and Intellectual
(Nonproduction) Systems in CAD. EAST-WEST International Conference "Information Technology In
Design", Part 1, Moscow, Russia, 5-9 Sept. 1994, pp.196-198
[Красилов94б] Красилов А.А. Информатическая логика, решение логических уравнений и
интеллектуальные системы в САПР. Информатика. //В сб: Автоматизация проектирования, вып.23, ВНИИМИ, - М., 1994, с.14-26
[Красилов96] Красилов А.А. За горизонтом экспертных систем. Открытые системы, 6, 1996, с 65 - 69
[Красилов97а] Красилов А.А. Интеллектуальное программирование, или Все невозможности
возможны. PC WEEK, Russian edition, N 14, 1997, с. 52, Автоматическое построение программ по
знаниям. PC WEEK, Russian edition, N 15, 1997, с. 72
[Красилов97б] Красилов А.А. Экология знания и интеллектуальные системы. //Сб: Высокие
технологии в промышленности России, -М., Международная академия информатизации, 1997, с. 153160
[Красилов97в] Красилов А.А. Семантическая грамматика русского языка. //труды конф.
Интеллектуальные системы в САПР, ИТК, Минск, 1997, стр. 40-48
[Красилов98] Красилов А.А. Ecology of Knowledge and Intellectual Systems. //XV IFIP World Computer
Congress, 31.08-04.09, Vienna-Budapest, 1998
[Красилов99а] Красилов А.А., Григорьев Р.Д. Технология интеллектуального программирования.
//Сб. докл.: Высокие технологии в промышленности России, -М., Международная академия
информатизации, 1999, с.; и //Инженерный журнал Справочник, N 10 (31), Машиностроение, 1999, с.
34-37.
[Красилов99б] Красилов А.А., Григорьев Р.Д. Программный комплекс «INTELLSYST». Основы
использования. Руководство пользователя по инструментарию интеллектуального
программирования. Система Интелсис. Препринт корп. «Галактика», 1999, 250 с.
[Красилов00а] Красилов А.А. Язык и знание. Семантическая грамматика русского языка. //Научнотехническая информация, серия 2, № 10, ВИНИТИ, 2000, с 21-33.
[Красилов00б] Красилов А.А., Григорьев Р.Д. Программный комплекс «INTELLSYST». Основы
использования. Руководство пользователя синтезированной программой. Система Интелсис.
Препринт корп. «Галактика», 2001, 150 с.
[Красилов00в] Albert A. Krasilov. The 21st Century - Century of Informatics. CSIT 2000. p.p. 177-183
[Красилов01] Красилов А.А. 21 век - век информатики, // в сб.: Высокие технологии в
промышленности России, -М., Международная академия информатизации, 2001, с. 199-203
[Красилов02а] Красилов А.А., Григорьев Р.Д. Интеллектуальное программирование, синтез
программ и интерфейсы. "Высокие технологии в промышленности России", материалы VIII
Международной научно-технической конференции. 11-13 сентября 2002, - М., ОАО ЦНИТИ
"ТЕХНОМАШ", с.303-307
[Красилов02б] Krasilov A. A., Grigoriev R.D. Intellectual programming, synthesis of programs and their
toolbox. CSIT2002, , 18-20 сент. 2002
[Красилов03а] Красилов А.А., Григорьев Р.Д. Интеллектуальное программирование и
автоматический синтез программ. Новосибирск, 9-11 июля 2003, ИСИ СО РАН им. А.П. Ершова (в
представлении)
[Красилов03б] Красилов
А.А.,
Григорьев Р.Д.
Интеллектуальное и автоматическое
программирование. Международный форум по информации. - М., ВИНИТИ, том 28, № 2, 2003, с. 30-38
[Красилов03в] Красилов А.А Информация, знание и информатика: концептуальные аспекты.
Международный форум по информации. - М., ВИНИТИ, том 28, № 4, 2003, с. 10-26
[Красилов04а] Красилов А.А Синергетика синергетики. (04.12.2004) http://ihtik.lib.ru/
[Красилов04б] http://www.intellsyst.ru - общие сведения об ИНТЕЛЛСИСТ.
[Красилов05а] Красилов А.А Экология информации и знаний. Научно-техническая информация,
серия 1, Организация и методика информационной работы. № 2. - М., ВИНИТИ, 2005, с. 11-23
[Красилов05б] Красилов А.А. Knowledge Mining - от сырых знаний к полезным решениям и новым
знаниям. «Аналитика-капитал», том XI «Генезис информатики и аналитики в корпоративном и
административном управлении», - М., ВИНИТИ, 2005, с. 205-225
[Красилов06а] Красилов А.А. Григорьев Р.Д. Автоматический синтез программ в Интеллсист.
Материалы IX Международной конференции «Интеллектуальные системы и компьютерные науки»,
23-27 октября 2006 г. Том 1, часть 2, стр. 96-101. Издательство механико-математического факультета
МГУ, 2006.
[Красилов06б] Красилов А.А. Введение в автоматический синтез программ. Материалы IX
Международной конференции «Интеллектуальные системы и компьютерные науки», 23-27 октября
2006 г. Том 1, часть 2, стр. 153-158. Издательство механико-математического факультета МГУ, 2006.
[93]
[Кречетов97] Кречетов Н.. Продукты для интеллектуального анализа данных. - Рынок
программных средств, N14-15_97, c. 32–39.
[Кристиан89] Кристиан К. Руководство по программированию на языке Модула-2. - М., Мир, 1989. 464 с.
[Кристофидес78] Кристофидес Н. Теория графов. Алгоритмический подход. - М., Мир, 1978, - 432 с.
[Крон78] Крон Г. Тензорный анализ сетей. - М., Советское радио,1978, - 720с.
[Кузнецов80] Кузнецов И.П. Семантические представления М., Наука, 1980. - 295 с.
[Кузнецов97] Кузнецов А.А. Базовый курс информатики. - М., Информатика и образование, 1997, N 1,
с.12-17
[Кук90] Кук Д., Бейз Г. Компьютерная математика. - М., Наука, 1990, - 384 с.
[Кулагина79] Кулагина О.С. Исследования по машинному переводу. - М., Наука, 1979
[Куликовский87] Куликовский Л.Ф., Мотов В.В. Теоретические основы информационных процессов.
- М., Высшая школа, 1987, - 248 с.
[Курбаков68] Курбаков К.И. Кодирование и поиск информации в автоматическом словаре. - М., 1968
[Кэмпбел-Келли78] Кэмпбел-Келли М. Введение в макросы. - М., Советское радио, 1978, - 152 с.
[Лавров82] Лавров С.С. Синтез программ. - К., Кибернетика, 1982, N 6
[Лазарев84] Лазарев В.Г., Пийль Е.И., Турута Е.Н. Построение программируемых логических
устройств. - М.,Энергоатомиздат,1984,-480 с.
[Ларичев89] Ларичев О.И., Мечитов А.И., Мошкович Е.М., Фуремс Е.М. Выявление экспертных
знаний. -М.: Наука. 1989. -128с.
[Левин91] Левин Р., Дранг Д., Эделсон Б. Практическое введение в технологию искусственного
интеллекта и экспертных систем с иллюстрациями на Бейсике. - М., Финансы и статистика,
1991, - 240 с.
[Левитин89] Левитин К.Е. Прощание с АЛГОЛом. - М., Знание, 1989, - 224 с.
[Ледли61] Ледли Р.С., Ластед Л.Б. Объективные основания диагноза. Роль символической логики,
теории вероятностей и теории статистических решений в анализе мышления врача. - М., ИИЛ,
Кибернетический сборник, N 2, 1961
[Лейбниц] Лейбниц Г.В. Собрание сочинений. - М., Мысль. Т.1. 1982, - 638с. Т.2. 1983, - 688 с. Т.3.
1984, - 735 с. Т.4. 1989, - 556с.
[Лейчик77] Лейчик В.М., Смирнов И.П., Суслова И.М. Терминология информатики (теоретические и
практические вопросы). Итоги науки и техники, сер. Информатика, т.2, ВИНИТИ, - М., 1977
[Лекции93] Лекции лауреатов премии Тьюринга за первые двадцать лет 1966-1985. - М., Мир, 1993,
- 560 с.
[Липский88] Липский В. Комбинаторика для программистов. М., Мир,1988, - 216 с.
[Лисков89] Лисков Б., Гатэг Дж. Использование абстракций и спецификаций при разработке
программ. - М., Мир, 1989. - 424 с.
[Ловицкий80] Ловицкий В.А. Система, понимающая естественный язык. - Киев, Кибернетика, 1980, N
6
[Логический90] Логический подход к искусственному интеллекту. От классической логики к
логическому программированию. - М., Мир, 1990,-531 с.
[Логический98] Логический подход к искусственному интеллекту. От модальной логики к логике
баз данных. Перевод с франц., - М., Мир, 1998, 496 с.
[Логическое88] Логическое программирование. //Сб.: - М., Мир,1988,- 368 с.
[Лозовский82] Лозовский В.С. Экстенсиональная база данных на основе семантических сетей. Изв.
АН СССР, Техническая кибернетика, 1982, N 2
[Лорьер90] Лорьер Ж.-Л. Системы искусственного интеллекта.
- М., Мир, 1990. - 568 с.
[Льюис79] Льюис Ф., Розенкранц Д., Стирнз Р. Теоретические основы проектирования
компиляторов. - М., Мир, 1979, 656 с.
[Любарский90] Любарский Ю.Я. Интеллектуальные информационные системы. - М., Наука, 1990. 232 с.
[Ляпунов63] Ляпунов А.А., Яблонский С.В. Теоретические проблемы кибернетики. //Проблемы
кибернетики, 1963, вып.9, с. 5-22
[Майерс80] Майерс Г. Дж. Надежность программного обеспечения. - М., Мир, 1980
[Майерс82] Майерс Г. Искусство тестирования программ. - М., Финансы и статистика, 1982
[Майерс85] Майерс Г. Архитектура современных ЭВМ. В двух томах. - М., Статистика, 1985, 365+310
с.
[Макаровский80] Макаровский Б.Н. Информационные системы и структуры данных. - М.,
Статистика, 1980
[Маккиман80] Маккиман У., Хорнинг Дж., Уортман Д. Генератор компиляторов. - М., Статистика,
1980, - 528 с.
[Мальковский80] Мальковский М.Г. Словарь системы. //В кн.: Представление знаний в системах
искусственного интеллекта. - М., Знание, 1980
[Мальцев86] Мальцев А.И. Алгоритмы и рекурсивные функции. - М., Наука, 1986, - 368 с.
[Мальцев90] Мальцев А.И. Алгебраические системы. - М., Наука, 1990, - 392с.
[Марков84] Марков А.А., Нагорный Н.М. Теория алгорифмов. - М., Наука, 1984, - 432 с.
[Маркус70] Маркус С. Теоретико-множественные модели языков. - М., Наука, 1970, - 332 с.
[Мартин75] Мартин Дж. Сети связи и ЭВМ. Ч.1, 1974. Ч.2, - М., Связь, 1975
[Мартин80] Мартин Дж. Организация баз данных в вычислительных системах.- М., Мир, 1980. - 662
с.
[Мартин84] Мартин Дж. Планирование развития автоматизированных систем. - М., Финансы и
статистика, 1984
[Мартин87] Мартин Дж. Видеотекс и информационное обслуживание общества. - М., Радио и связь,
1987, - 183 с.
[Маслов83] Маслов С.Ю. Асимметрия познавательных механизмов и ее следствия. //В кн.:
Семиотика и информатика, 1983, т.20
[Маслов86] Маслов С.Ю. Теория дедуктивных систем и ее применения. - М., Радио и связь, 1986, - 134
с.
[Матемвыв67] Математическая теория логического вывода. - М., Наука, 1967
[Матеммод89] Математическое моделирование. Методы описания и исследования сложных систем.
- М., Наука, 1989, - 271 с.
[Матемэнц85] Математическая энциклопедия. Т.т.1-5. - М., Советская энциклопедия, 1985
[Маурер80] Маурер У. Введение в программирование на языке ЛИСП. - М., Мир, 1976, - 104 с.
[Машина86] Машинный фонд русского языка: идеи и суждения. - М., Наука, 1986
[Мейер82] Мейер Б., Бодуэн К. Методы программирования. Т.1,2. - М., Мир, 1982, 358+368 с.
[Мейер87] Мейер Д. Теория реляционных баз данных. - М., Мир, 1987, - 608с.
[Минский78] Минский М. Структура для представления знаний. //В кн.: Психология машинного
зрения. - М., Мир, 1987
[Минский79] Минский М. Фреймы и представление знаний. - М., Энергия, 1979, - 150 с.
[Минскин87] Минскин Е.М. От игры к знаниям. //Пособие для учителя. - М., Просвещение, 1987
[Михайлов68а] Михайлов А.И., Черный А.И., Гиляревский Р.С. Основы информатики. - М., Наука,
1968, - 756 c.
[Михайлов80б] Михайлов Б.М. Автоматизация процесса ведения и изготовления документации
программного обеспечения в АСУ. - М., Советское радио, 1980
[Моисеев79] Моисеев Н.Н. Математика ставит эксперимент М., Наука, 1979,- 223 с.
[Моисеев85] Моисеев Н.Н. Информатика: новые пути познания законов природы и общества.
//Вестник АН СССР, 1985, N 5, с.128-135
[Молокова85] Молокова О.С. Формирование индивидуального объяснения в экспертных системах.
//Изв. АН СССР, Техническая кибернетика,1985, N 5
[Моль75] Моль А., Фукс В., Касслер М. Искусство и ЭВМ. - М., Мир, 1975, - 558 с.
[Мульти71] Мультипроцессорные вычислительные системы. - М., Энергия, 1971
[Монахова01] Монахова Е., Бочкарев А., Лукомский А., Майоров А., Управление знаниями,
еженедельник "PC Week/RE" 2001 г., N 8, с. 35.
[Набебин96] Набебин А.А. Логика и Пролог в дискретной математике. - М., МЭИ, 1996, -452 с.
[Налимов74] Налимов В.В. Вероятностные модели языка. - М., Наука, 1974
[Нейлор91] Нейлор К. Как построить свою экспертную систему. - М., Энергоатомиздат, 1991, - 286 с.
[Непейвода78] Непейвода Н.Н. Соотношение между правилами естественного вывода и операторами
алгоритмических языков высокого уровня. ДАН СССР, т.239, 1978, N 4
[Непейвода79] Непейвода Н.Н. Устойчивая истинность и вычислимость. // Кн: Исследования по
теории алгорифмов и математической логике, - М., Наука, 1979, с 78 - 89
[Непейвода81] Непейвода Н.Н., Свириденко Д.И. Программирование с логической точки зрения. Т.1
и 2, Новосибирск, ИМ СО АН СССР, 1981
[Непейвода82] Непейвода Н.Н., Свириденко Д.И. К теории синтеза программ. //В сб.: Математическая
логика и теория алгоритмов М., Наука, 1982
[Нечаев75] Нечаев В.И. Числовые системы. - М., Просвещение, 1975, - 200с.
[Нечеткие86] Нечеткие множества и теория возможностей. - М., Советское радио, 1986, - 406 с.
[Николов89] Николов Р., Сендова Е. Начала информатики. Язык ЛОГО. - М., Наука, 1989. - 176 с.
[Нильсон73а] Нильсон Н.Дж. Искусственный интеллект. Методы поиска решений. - М., Мир, 1973, 272 с.
[Нильсон73б] Нильсон Н.Дж. Методы поиска решений. - М., Мир, 1973
[Нильсон85] Нильсон Н.Дж. Принципы искусственного интеллекта. - М., Радио и связь, 1985. - 280 с.
[НовостиИИ] Новости искусственного интеллекта. - М., Российская Ассоциация искусственного
интеллекта, с 1991 (4 раза в год).
[Ньюмен76] Ньюмен У., Спрулл Р. Основы машинной графики. - М., Мир, 1976, - 573 с.
[Обработка89] Обработка нечеткой информации в системах принятия решений. - М., Радио и связь,
1989. - 304 с.
[Оракл92] Сервер ORACLE7 Справочное руководство по языку SQL. Автор: Брайн Линдер, учетный
номер 778-70-1292, декабрь 1992, - 680 с.
[Оре80] Оре О. Теория графов. - М., Наука, 1980, - 336 с.
[Осипов90] Осипов Г.С. Инструментарий для экспертных систем. Технология SIMER + MIR.
//Программные продукты и системы, 1990, N3, с.23-32
[Осуга89] Осуга С. Обработка знаний. - М., Мир, 1989. - 293 с.
[Пайл84] Пайл Я. Ада - язык встроенных систем. - М., Финансы и статистика, 1984, - 238 с.
[Пакштас89] Пакштас А. Распределенные программные конфигурации. Анализ и разработка.
Вильнюс, Мокслас, 1989. - 223 с.
[Перегудов87] Перегудов М.А., Халамайзер А.Я. Бок о бок с компьютером. - М., Высшая школа, 1987
[Першиков91] Першиков В.И., Савинков В.М. Толковый словарь по информатике. Более 10000
терминов. - М., Финансы и статистика,1991,- 543 с.
[Петров67] Петров Ю.А. Логические проблемы абстракций осуществимости. - М., Наука, 1967
[Пиотровский74] Пиотровский Р.Г. Машинная грамматика для АСУ и АИСП. Тюмень, 1974
[Пиотровский75] Пиотровский Р.Г. Текст, машина, человек. - Л., Наука, 1975, - 328 с.
[Питерсон84] Питерсон Дж. Теория сетей Петри и моделирование систем. - М., Мир, 1984. - 264 с.
[Поваляев87] Поваляев С.А. Основы информатики. Справочное пособие. - Минск, изд.
Университетское, 1987, - 128 с.
[Пойа76] Пойа Д. Математическое открытие. Решение задач: основные понятия, изучение и
преподавание. - М., Наука, 1976, - 448 с.
[Половинкин88] Половинкин А.И. Основы инженерного творчества. - М., Машиностроение, 1988. 368 с.
[ПоповИ81] Попов И.И., Романенко А.Г. Моделирование информационных систем (теория и
приложения). ВИНИТИ, Итоги науки и техники, т.5, - М.,1981
[ПоповЭ82] Попов Э.В. Общение с ЭВМ на естественном языке. - М., Наука, 1982. - 360 с.
[ПоповЮ83] Попов Ю.П., Самарский А.А. Вычислительный эксперимент. //Новое в жизни, науке,
технике. Сер. Мат. кибернетика. - М., Знание, 1983, вып.11, с.64
[ПоспеловА81] Поспелов Д.А. Логико-лингвистические модели в управлении. - М., Энергоиздат, 1981
[ПоспеловГ85] Поспелов Г.С., Поспелов Д.А. Искусственный интеллект: прикладные системы. - М.,
Знание, 1985. - 48 с.
[ПоспеловГ86] Поспелов Г.С. Искусственный интеллект. Новая информационная технология. //Сб:
Кибернетика. Становление информатики. -М., Наука, 1986, с.106-120
[Построение87] Построение экспертных систем. - М., Мир, 1987, - 443 с.
[Пратт79] Пратт Т. Языки программирования: Разработка и реализация. - М., Мир, 1979. - 574 с.
[Предстинт80] Представление знаний в системах искусственного интеллекта. //В сб.: Материалы
семинаров, МДНТП, - М., 1980
[Предстсис89] Представление знаний и экспертные системы. //Сб. научных трудов. АН СССР,
Ленинградский институт информатики и автоматизации. - Л., 1989. - 194 с.
[Приобрзн90] Приобретение знаний. //Под ред. С. Осуги, Ю. Саэки. - М., Мир, 1990. - 304 с.
[Проект97] Проект федерального компонента государственного образовательного стандарта
начального общего, основного общего и среднего (полного) образования. Образовательная
область «Информатика». - М., Информатика и образование, 1997, N 1, с.3-11
[Простое88] Простое и сложное в программировании. - М., Наука, 1988.- 176с.
[Психология78] Психология машинного зрения. - М., Мир, 1978
[Райан89] Райан Д. Инженерная графика в САПР. - М., Мир, 1989. - 392с.
[Расева72] Расева Е., Сикорский Р. Математика метаматематики. - М., Наука, 1972. - 592 с.
[Рафаэл79] Рафаэл Б. Думающий компьютер. - М., Мир, 1979, - 408 с.
[Речевая89] Речевая информатика. //Сб. ст. - М., Наука, 1989. - 130 с.
[Ржанов83] Ржанов А.В. Требуется уточнить предмет и понятие информатики //Наука в Сибири.
1983, N 35
[Робинсон70] Робинсон Дж. Машинно-ориентированная логика, основанная на принципе
резолюции. //Кибернетический сборник. Новая серия.Вып.7, - М., Мир, 1970, с. 194-218
[Роджерс89] Роджерс Д. Алгоритмические основы машинной графики. - М., Мир, 1989. - 512 с.
[Розенфельд72] Розенфельд А. Распознавание и обработка изображений. - М., Мир, 1972
[Рот91] Рот М. Интеллектуальный автомат: компьютер в качестве эксперта. - М., Энергоатомиздат,
1991, - 80 с.
[Рубашкин89] Рубашкин В.Ш. Представление и анализ смысла в интеллектуальных
информационных системах. - М., Наука, 1989. - 192 с.
[Рыбина79] Рыбина Г.В., Строганова Н.А. и др. Система представления понятийных знаний с
использованием фреймов. //В сб.: Вопросы кибернетики. Интеллектуальные банки данных, - М.,
1979
[Сакман73]Сакман Г. Решение задач в системе человек-ЭВМ. -М., Мир, 1973
[Саломаа86] Саломаа А. Жемчужины теории формальных языков. - М., Мир, 1986, 160 с.
[Семантика80] Семантика языков программирования. //Сб. статей. - М., Мир, 1980, - 397 с.
[Сильдмяэ80] Сильдмяэ И.Я. Значение и смысл. АН СССР, - М., 1980
[Сильдмяэ83] Сильдмяэ И.Я. Действительность - текст-знание. //Уч. записки Тарт. ун-та, вып. 621,
Тарту, 1983
[Системное67] Системное программирование. //Сб. статей. - М., Советское радио, 1967
[Система92] Система сертификации ГОСТ. Основные положения. Требования к органу по
сертификации и порядок его аккредитации. Правила проведения сертификации продукции (общие
требования). Требования к испытательной лаборатории и порядке их аккредитации. Правила ведения
Государственного Реестра Системы. Государственный комитет Российской Федерации по
стандартизации, метрологии и сертификации при президенте Российской Федерации. - М., 1992, - 113
с.
[Системы85] Системы автоматизации проектирования. - М., Мир, 1985
[Скороходько68] Скороходько Э.Ф. и др. Информационно-поисковая система БИТ. - Киев, Наукова
думка, 1968
[Скороходько74] Скороходько Э.Ф. Семантические связи в лексике и текстах. //В сб.: Вопросы
информационной теории и практики. - М., ВИНИТИ, 1974, N 23
[Скэнлон91] Скэнлон Л. Персональные ЭВМ IBM PC и XT. Программирование на языке
ассемблера. - М., Радио и связь, 1991, - 336 с.
[Слейгл73] Слейгл Дж. Искусственный интеллект. Подход на основе эвристического
программирования. - М., Мир, 1973, - 320 с.
[Смальян81] Смальян Р. Теория формальных систем. - М., Наука, 1981, - 208с.
[Смирнов72] Смирнов В.А. Формальный вывод и логические исчисления.
- М., Наука, 1972, - 272 с.
[Советский89] Советский энциклопедический словарь. - М., Советская энциклопедия, 1989, - 1632 с.
[Современный81] Современный русский язык. В трех частях. //Учебное пособие. - М., Просвещение,
1981. Часть I. - 192с. Часть II. - 372с. Часть III. - 272с.
[Современный86] Современный компьютер. //Сб. научно-популярных статей. - М., Мир, 1986
[Сойер90] Сойер Б., Фостер Д.Л. Программирование экспертных систем на Паскале. - М., Финансы и
статистика, 1990, - 192 с.
[Соколов89] Соколов Е.Н., Вайткявичюс Г.Г. Нейроинтеллект: от нейрона к нейрокомпьютеру. - М.,
Наука, 1989. - 238с.
[Справочная82] Справочная книга по математической логике. - М., Наука. Ч.1. Теория моделей.
1982, - 392 с. Ч.2. Теория множеств. 1982, - 376 с. Ч.3. Теория рекурсий. 1982,- 360 с. Ч.4. Теория
доказательств и конструктивная математика. 1983, - 392 с.
[Справочник90] Справочник. Искусственный интеллект. В трех книгах. Кн.1. Системы общения и
экспертные системы. - 462 с. Кн.2. Модели и методы. Кн.3. Программные и аппаратные
средства. - М., Радио и связь, 1990
[Степанов64] Ю.С. О предпосылках лингвистической теории значения. - М., Вопросы языкознания,
1964, N 5
[Степанов71] Степанов Ю.С. Семиотика. - М., Наука, 1971
[Стерлинг90] Стерлинг Л., Шапиро Э. Искусство программирования на языке Пролог. - М., Мир,
1990, - 235 с.
[Стефик85] Стефик М., Эйкинс Я. и др. Организация экспертных систем. //Кибернетический сборник.
Вып.22, - М., Мир, 1985, с.170-220
[Тамм77] Тамм Б.Г., Тыугу Э.Х. Пакеты программ. Изв. АН СССР, Техническая кибернетика, 1977, N 5
[Тамм85] Тамм Б.Г., Тыугу Э.Х. Применение знаний в автоматизированных системах
проектирования и управления. //В сб.: Прикладная информатика. Вып. 1(8), - М., Финансы и
статистика, 1985
[Таунсенд90] Таунсенд К., Фохт Д. Проектирование и программная реализация экспертных систем
на персональных ЭВМ. - М., Финансы и статистика, 1990,- 320 с.
[Теоринф89] Теория телетрафика в системах информатики. //Сб. научных трудов. - М., Наука, 1989
[Термин75] Терминологический словарь по информатике. МЦНИТИ, 1975
[Термин89] Терминологический словарь по автоматике, информатике и вычислительной технике.
//Справочное пособие для СПТУ. - М., Высшая школа, 1989, - 192 с.
[Тиори85] Тиори Т., Фрей Дж. Проектирование структур баз данных. - М., Мир, 1985. - 230 с.
[Тихонов79] Тихонов А.Н., Арсенин В.Я. Методы решения некорректных задач.-М., Наука, 1979
[Толковый90] Толковый словарь по вычислительным системам. - М., Машиностроение, 1990
[Тоценко90] Тоценко В.Г., Александров А.В., Парамонов Н.Б. Корректность, устойчивость, точность
программного обеспечения. - Киев, Наукова думка, 1990, - 199 с.
[Требования84] Требования и спецификации в разработке программ. //В сб. статей. - М., Мир, 1984
[Ту78] Ту Дж., Гонсалес Р. Принципы распознавания образов. - М., Мир, 1978,- 413c
[Турский81] Турский В. Методология программирования. - М., Мир, 1981, 68 с.
[Тыугу77] Тыугу Э.Х. Формирование модели мира в системах искусственного интеллекта.
ВИНИТИ, - М., 1977
[Тыугу84] Тыугу Э.Х. Концептуальное программирование. - М., Наука, 1984. - 256 с.
[Уемов78] Уемов А.И. Системный подход и общая теория систем. - М., Мысль, 1978
[Уинстон80] Уинстон П. Искусственный интеллект. - М., Мир, 1980
[Уистоков68] У истоков классической науки. //Сб. статей. - М., Наука, 1968
[Ульман90] Ульман Дж. Базы данных на Паскале. - М.: Машиностроение, 1990,- 386c.
[Универс68] Универсальный язык программирования ПЛ/1. - М., Мир, 1968,- 352c.
[Уоллер81] Уоллер Л. Специальная машина, работающая на языке ЛИСП. Электроника, 1981, т.54,
N 17
[Уолш75] Уолш Д.А. Руководство по созданию документации для математического обеспечения. М., Наука, 1975, - 128 с.
[Уотермен89] Уотермен Д. Руководство по экспертным системам. - М., Мир, 1989, - 390 с.
[Уэзерелл82] Уэзерелл Ч. Этюды для программистов. - М., Мир, 1982, - 288с.
[Файн82] Файн В.С. Новые аспекты машинного понимания сообщений. АН СССР, Техническая
кибернетика, 1982, N 5
[Фант64] Фант Г. Акустическая теория речеобразования. - М., Наука, 1964
[Фаронов92] Фаронов В.В. Турбо Паскаль (в 3-х книгах), Кн.1. Основы Турбо Паскаля, 1992, 286 с.,
Кн.2. Библиотека Turbo Vision, 1993, 429 с. - М., МВТУ-ФЕСТО ДИДАКТИК
[Фейс71] Фейс Р. Модальная логика. - М., Наука, 1971, - 520 с.
[Феферман71] Феферман С. Числовые системы. Основания алгебры и анализа. - М., Наука, 1971, 440 с.
[Фигурнов90] Фигурнов В.Э. IBM PC для пользователя. - М., Финансы и статистика, 1990, - 239 с.
[Фланаган68] Фланаган Дж. Анализ, синтез и восприятие речи. - М., Связь, 1968
[Фокс82] Фокс А., Пратт М. Вычислительная геометрия. Применение в проектировании и на
производстве. - М., Мир, 1982, - 304 с.
[Фокс85] Фокс Дж. Программное обеспечение и его разработка. - М., Мир, 1985, - 368 с.
[Фоли85] Фоли Дж., вэн Дэм А. Основы интерактивной машинной графики. кн.1. - 368 с. кн.2. - 368 с.
- М., Мир, 1985
[Фостер74] Фостер Дж. Обработка списков. - М., Мир, 1974, - 72 с.
[Фреге77] Фреге Г. Смысл и денотант. //В кн.: Семиотика и информатика. Вып.8, - М., ВИНИТИ, 1977
[Фрейденталь69] Фрейденталь Х. Язык логики. - М., Наука, 1969, - 136 с.
[Фридмен86] Фридмен М., Ивенс Л. Проектирование систем с микрокомпьютерами. - М., Мир, 1986,
405 с.
[Фу77] Фу К. Структурные модели в распознавании образов. - М., Мир,1977,- 320 с.
[Хамбли76] Хамбли Э. Программирование таблиц решений. - М., Мир, 1976, - 86 с.
[Хант78] Хант Э. Искусственный интеллект. - М., Мир, 1978, - 560 с.
[Хао62] Ван Хао. На пути к механической математике. Кибернетический сборник. Вып.5, - М., ИИЛ,
1962, с. 114-165
[Харари73] Харари Ф. Теория графов. - М., Мир, 1973, - 300 с.
[Харкевич60] Харкевич А.А. О ценности информации. Проблемы кибернетики, вып.4, 1960
[Хейес89] Хейес-Рот Ф., Уотерман Д., Ленат Д. Построение экспертных систем. -М., Мир, 1989. -430с.
[Хельбиг80] Хельбиг Г. Семантическое представление знаний в вопросно-ответной системе. //В сб.:
Представление знаний и моделирование процессов понимания. Новосибирск, 1980
[Хендерсон83] Хендерсон П. Функциональное программирование. - М., Мир, 1983
[Хендрикс89] Хендрикс Д. Компилятор языка Си для микроЭВМ. - М., Радио и связь, 1989. - 240с.
[Хоар89] Хоар Ч. Взаимодействующие последовательные процессы. - М., Мир, 1989. - 264 с.
[Хоггер88] Хоггер К. Введение в логическое программирование.
- М., Мир, 1988, - 348 с.
[Холл75] Холл А.Д. Опыт методологии для системотехники. - М., Советское радио, 1975, - 448 с.
[Холл78] Холл П. Вычислительные структуры. Введение в нечисловое программирование. - М.,
Мир, 1978, - 216 с.
[Холстед81] Холстед М.Х. Начала науки о программах. - М., Финансы и статистика, 1981, - 128 с.
[Хомский61] Хомский Н. Три модели для описания языка. Кибернетический сборник. Вып.2, - М.,
ИИЛ, 1961
[Хомский62] Хомский Н. О некоторых формальных свойствах грамматик. Кибернетический сборник.
Вып.5, - М., ИИЛ, 1962, с. 279-311
[Хомский96] Хомский Н. Язык и проблема знания (5 Лекций в МГУ). Вестник Московского
университета, серия 9, Филология, 4, 1995, с. 130-156; 6, 1995, с. 110-134; 2, 1996, с. 103-121; 4, 1996,
с. 133-162, 6, 1996, с. 157-185
[Хопгуд72] Хопгуд Ф. Методы компиляции. - М., Мир, 1972, - 160 с.
[Хорошевский86] Хорошевский В.Ф. Разработка и реализация экспертных систем инструментальный подход. // Изв.АН СССР, Техническая кибернетика, 1986, N 5
[Хоффман80а] Хоффман Л.Дж. Современные методы защиты информации. - М., Советское радио,
1980, - 264 с.
[Хоффман80б] Хоффман Л.Дж. Структурный подход к программированию. - М., Советское радио,
1980
[Хьюз80] Хьюз ДЖ., Мичтом Дж. Структурный подход к программированию. - М., Мир, 1980, - 280 с.
[Хювенен90] Хювенен Э., Сеппянен Й. Мир Лиспа. Т.1.Введение в язык Лисп и функциональное
программирование. - 448 с. Т.2. Методы и системы программирования. - 320 с. - М., Мир, 1990
[Цаленко89] Цаленко М.Ш. Моделирование семантики в базах данных. - М., Наука, 1989. - 288 с.
[Цикритзис85] Цикритзис Д., Лоховский Ф. Модели данных. - М., Финансы и статистика, 1985. - 343 с.
[Цыпкин84] Цыпкин Я.З. Основы информационной теории идентификации. - М., Наука, 1984
[Чень83] Чень Ч., Ли Р. Математическая логика и автоматическое доказательство теорем. - М.,
Наука, 1983. - 360 с.
[Черный76] Черный А.И., Жданова Г.С., Колобродова Е.С., Мышева И.А., Полушкин В.А., Садырева
Р.Н. Терминология информатики (библиографический указатель работ). ВИНИТИ, Итоги науки
и техники, сер. Информатика, т.5, - М., 1976
[Черняк02] Черняк Л. Библиотека знаний Cyc. Открытые системы. СУБД. № 11 (79), М., 2002, - с. 1821.
[Черч60] Черч А. Введение в математическую логику М., ИИЛ,1960, - 486 с.
[Чечкин91] Чечкин А.В. Математическая информатика. - М., Наука, 1991, - 414 с.
[Шанин65] Шанин Н.А., Давыдов Г.В., Маслов С.Ю., Минц Г.Е., Оревков В.В., Слисенко А.О.
Алгорифм машинного поиска естественного логического вывода в исчислении высказываний. М.-Л., Наука, 1965, - 40 с.
[Шанский81] Шанский Н.М., Иванов В.В. Современный русский язык. - М., Просвещение, Часть I.
Введение. Лексика. Фразеология. Фонетика. Графика и Орфография. - 192 с. Часть II.
Словообразование. Морфология. - 272 с. Часть III. Синтаксис. Пунктуация. - 272 с.
[Шенк80] Шенк Р. Обработка концептуальной информации. - М., Энергия, 1980,-360 с.
[Шенфильд75] Шенфильд Дж. Математическая логика. - М., Наука, 1975, - 528 с.
[Шишмарев78] Шишмарев А.И., Заморин А.П. Англо - русско - немецко - французский толковый
словарь по вычислительной технике и обработке данных, 4132 термина. - М., Русский язык, 1978,
- 416 с.
[Шоу81] Шоу А. Логическое проектирование операционных систем. - М., Мир, 1981. - 360 с.
[Шураков81] Шураков В.В. Надежность программного обеспечения систем обработки данных. - М.,
Статистика, 1981, - 216 с.
[Ыйм78] Ыйм Х., Салувеэр М. Фреймы и понимание языка. //Уч. зап. Тартус. ун-та, N 472, 1978
[Ыйм80] Ыйм Х. Язык, значения, знания. //В кн.: Семантика и представление знаний. Уч.зап.
Тартусского ун-та, вып.519, - Тарту, 1980
[ЭВМ84] ЭВМ пятого поколения. Концепции, проблемы, перспективы М., Финансы и статистика,
1984, - 110 с.
[Эксперт87] Экспертные системы: принципы работы и примеры. - М., Радио и связь, 1987, - 223 с.
[Эксперт89] Экспертные системы: состояние и перспективы. //Сб. ст. - М., Наука, 1989. - 152 с.
[Эксперт90] Экспертные системы для персональных компьютеров. Методы, средства, реализации.
Справочное пособие. - Минск, Вышэйшая школа, 1990, - 198 с.
[Элти87] Элти Дж., Кумбс М. Экспертные системы: концепции и примеры. - М., Радио и связь, 1987, 191 с.
[Эшби68] Эшби У.Р. Что такое разумная машина? //В сб.: Кибернетика ожидаемая и кибернетика
неожиданная. - М., 1968
[Яблонский79] Яблонский С.В. Введение в дискретную математику. - М., Наука, 1979, -384 с.
[Яглом73] Яглом А.М., Яглом И.М. Вероятность и информация. - М., Наука, 1973
[Язык88] Язык Пролог в пятом поколении ЭВМ. //Сб. статей. - М., Мир, 1988
[Якубайтис84] Якубайтис Э.А. Информационно-вычислительные сети. - М., Финансы и статистика,
1984. - 232 с.
[Янов58] Янов Ю.И. О логических схемах алгоритмов. //Проблемы кибернетики. Вып.1, - М.,
Физматгиз, 1958
[Яхно80] Яхно Т.М. Описание системы, выполняющей аналитические преобразования
математических выражений. Новосибирск, 1980
[Gartner99] Gartner Group: Knowledge Management Scenario: Trends and Directions for 1998-2003, 1999
Download