Изобретание, проектирование, разработка и сопровождение) Том Интеллектуальные системы (Системы решения проблем)  Альберт Александрович Красилов icon

Изобретание, проектирование, разработка и сопровождение) Том Интеллектуальные системы (Системы решения проблем)  Альберт Александрович Красилов


1 чел. помогло.
Смотрите также:
Изобретание, проектирование...
Изобретание, проектирование...
Изобретание, проектирование...
Изобретание, проектирование...
Том Интеллектуальные системы (Системы решения проблем)  Альберт Александрович Красилов...
Том Интеллектуальные системы (Системы решения проблем)  Альберт Александрович Красилов...
Лекция: Этапы проектирования ис с применением uml: Основные типы uml-диаграмм...
Программа дисциплины интеллектуальные информационные системы индекс дисциплины по учебному плану...
Рабочая программа учебной дисциплины (модуля) Интеллектуальные системы принятия проектных...
Интеллект человека и искусственный интеллект...
Программа: Iдень...
Предмет и метод курса "Проектирование информационных систем"...



Загрузка...
страницы: 1   ...   4   5   6   7   8   9   10   11   ...   32
вернуться в начало
скачать


Общее число английских слов из исходного текста, включая собственные имена, составляет 2570. Они возникали в различных текстах из 1145 текстовых фалов. Заметим, что в исходный словарь добавлены стандартные слова ЯЛ и их английские переводы.


Приведенная таблица имеет значительную выборку, поэтому можно предположить, что она характерна для любого ЯПП. Исключение может составить ЯПП в юриспруденции, в работе следователя или в управлении отраслями деятельности человека. Большим числом слов отличается словарь почти каждой естественной науки (геологии, биологии, лингвистики, истории и др.).


Определим смысл текста следующим образом. Смысл понятия определен выше как совокупная запись термина понятия и его полной характеристики (определение, тип, вид, состав из слов и знаков для термина, дата введения в БЗ). Каждый абзац - осмысленное высказывание - являет собой логическое выражение, или композицию терминов. Абзац является новым (по отношению к составляющим его частям) понятием, термин которого (или наименование) умалчивается или можно сказать подразумевается. Новые подразумеваемые понятия образуют иерархию входящих в него понятий. Текст состоит из абзацев, которые представляют внутри некоторого раздела логические выражения (их композицию) из подразумеваемых понятий. Образовано новое более высокого уровня подразумеваемое понятие. Оно поименовано термином, являющимся наименование раздела. Процесс такого анализа текста завершается после рассмотрения всех разделов (или разделов более высокого ранга). В результате процесса получается понятие, поименованное названием всего текста. Имя текста задано явно (название статьи, книги или БЗ), а термин можно считать полностью определенным всей иерархией понятий или композицией понятий. Например, весь текст об информатике определяет это понятие, обозначенное словом «информатика».


Смысл текста определяется свойствами составленного таким образом понятия. Если текст состоит из одного абзаца, то он имеет смысл определения подразумеваемого понятия. То же можно сказать о разделах или обо всем тексте, состоящем из разделов. Таким образом, смысл текста - это сущность определяемого им понятия вместе со всеми его характеристиками. Иерархия понятий образует иерархию смысла текста, которая может быть полезной для подробного анализа понятия смысла текста. Заметим, что некоторые определения новых подразумеваемых понятий могут оказаться рекурсивными (как, например, построено определение смысла информатики). Здесь может быть обнаружено противоречие, которое состоит в авторекурсии, не имеющей «выхода». Лучше всего проиллюстрировать эту ситуацию на математическом примере.


Пусть Х определяется рекурсивно как Х = Р(Х), т.е. понятие с термином Х определяется через себя (в частности). Конечно, если это равенство разрешимо, тогда Х вполне определяется. Чаще всего имеют дело с неразрешимыми равенствами. Необходимо определение начального значения Хо. Тогда имеется шанс получения значения Х в итерационном процессе: Х1 = Р(Хо), Х2 = Р(Х1),... Хi должно сходиться к Х. Опять может возникнуть коллизия при расходимости процесса итерации. Нужно быть уверенным, что итерационный процесс сходится. Возникает интересная проблема корректности знания (смысла) данного понятия. С нескольких точек зрения можно рассматривать корректность: имеется ли решение для определения Х, имеется ли исходное значение Хо, сходится ли итерационный процесс, какова область применения понятия и какова область его значений. И еще один подводный камень состоит в том, что определения понятий могут быть связаны самым причудливым образом. Например, Х=Р1(Х, У), У=Р2(Х, У) или цепью взаимных ссылок одного определения на другой, а оно по цепочке связано с исходным определением понятия Х. Число проблем корректности увеличивается во много раз.


Все высказанные соображения практически не порождаются в ЯПП, чаще всего такие образцы определений встречаются в математике, которые находятся под полным контролем математиков. В практических (но только не в философских) ЯПП исследование корректности не необходимо. К этому надо добавить, что принятая в ИИС автоматическая отладка знаний разрешает большую часть перечисленных проблем.


^ 6.5. Приемы построения определений в ИП


Под приемами построения определений понимается указание на то, как оно должно строится во избежание неточностей или ошибок самого определения. Под приемами построения понимается конкретное предписание для формирования определения. В целом, правила и приемы формируют метод построения определения некоторого понятия. Приемы описаны формально в языке Лейбниц, именно они будут предметами рассмотрения в этой главе. Практика не придерживается данных ниже правил и приемов, определения понятий вытекают естественным образом из знаний, которые вводятся в БЗ или находятся в текстах. Тем не менее, правила и приемы построения важны для ввода более точных знаний, обеспечивающих получение новых фактов и полного ответа на всю совокупность запросов пользователя.


^ Перечисления и метапонятия. Наиболее простым формализмом является перечисление. Определение некоторого понятия (например, конкретного множества предметов) составляется из указания наименований конкретных значений определяемого понятия. Так определяются в языках программирования перечислимые типы данных. Например, понятие типа «движение» определяется так:


раздел типа движение = (влево, неподвижно, вправо).


Если ясна закономерность получения каждого значения определяемого понятия, тогда отпадает необходимость фактического перечисления всех значений. В определении тогда помещаются только представительные значения. Например, определение натурального ряда чисел обычно строится так:


раздел типа натуральное число = (1, 2, 3,...).

В языке Лейбниц такая конструкция отсутствует.


В других случаях можно указать только начальные и конечные значения данного понятия. Может указываться и шаг - расстояние между двумя соседними значениями. Когда определяется отрезок натурального ряда, то записывают начальное значение, шаг и конечное значение:


индекс = 1 (1) 10,

буква = «а»..«я».


Многие определения строятся аналогично приведенным примерам. Конечно, это относится к определениям ФЯ записи программ, данных и различных структур знаний.


^ 6.5.1. Языки определений понятий. Определения понятные человеку, если используется ЕЯ или ЯПП. Такие определения годятся для ввода знаний о понятиях в Интеллсист. Однако в Интеллсист имеются средства для более детального описания определений своими специальными средствами. ФЯ Лейбниц точно определяет приемы и средства определения понятий. Они могут оказаться недоступными для пользователя (из-за оправданного нежелания изучать ФЯ). Поэтому определение каждого понятия для Интеллсист строится с помощью меню или оконной техники интерфейса инструментария Интеллсист. Следовательно, языком ввода понятий является язык Лейбниц, который работает неформально через меню.


Определение понятий через меню инструментария составляет первый шаг ввода знаний о понятии. Вторым шагом является ввод текстов, которые содержат взаимосвязи понятий, которые (взаимосвязи) передают содержательную часть определений. В ИЛ принято, что определение каждого понятия дается аксиоматически. Аксиомами являются фразы и абзацы ЯПП, имеющие истинные значения. Именно аксиомы в ИЛ являются средством ввода знаний о понятиях, а языком определений является ЯПП.


Каждое понятие определяется для Интеллсист многими атрибутами, о чем будет говориться еще раз в следующем разделе. Здесь же упомянем еще об одном частном языке, который используется для доопределения или достроения определений. Имеется в виду язык лексем, которые передают конкретный смысл понятий. Некоторые понятия в своих определениях должны содержать текущий смысл или иметь конкретное предписание понятию только того смысла, который передается лексемой (если отбросить витиеватость фразы, то надо сказать об определении понятий, которые именуются константами).


Наконец, для пользователя может оказаться необходимым содержательное определение понятий для справки о понятии. Язык Лейбниц предусматривает использование комментариев для передачи в память Интеллсист содержательного определения. Здесь в качестве языка определений используется ЕЯ так, чтобы текст был понятен пользователю. При этом текст определения на ЕЯ не перерабатывается системой в знания, но использоваться только для справки.


Из указанного перечня языков записи определений понятия видно, что все доступные формы или типы языков могут использоваться при конструировании самих определений. В перечне не указаны частные языки, либо являющихся частью ЕЯ или ЯПП, либо конструируются самим пользователем для решения своих задач (см. порождающие и распознающие грамматики, которые строятся через меню инструментария), либо формируются при создании лексикона конкретных предметной и проблемной областей.


^ 6.5.2. Некоторая языковая атрибутика определений. Каждое определение содержит операцию сопоставления термина понятия и его определения. В различных языках операция сопоставления обозначается различным образом. Некоторые изображения операций сопоставления рассматриваются здесь. При этом будут продемонстрированы большинство языков определений понятий.


Некоторые сорта определений обозначают операцию сопоставления терминами «- это» или «- это есть» (они являются синонимами равенства). По тексту применена операция «- это» неоднократно. К месту будет привести пример перечислительного определения. Операция сопоставления понятия и его определения - это слово «это», последовательности символов и знаки «::=», «:», «=», «:=» и др. Знаки «::=» используются в нотации Бэкуса-Наура, «:» - в определении термина, «=» - в определении нового типа данных, «:=» - в определении конкретного значения величины, отмеченного термином слава от знака присваивания. Для формулировки определения используется также слово «есть». Трудно указать области применения слов «есть» или «это». Первое применяется для указания «одно и то же», а второе - для указания чаще всего перечисления. Вообще-то они применяются примерно в одинаковых условиях.


В свое время в нотации Бэкуса-Наура использовалось обозначение операции сопоставления знаками «::=», которые интерпретируются как «равно по определению». Эта операция используется при построении формальных порождающих грамматик, при определении метапеременной [Хомский68]. Пожалуй, впервые нотация была использована для формального описания языка программирования Алгол-60. Например, определение понятия «идентификатор» в порождающей грамматике задается формально в нотации Бэкуса-Наура следующим образом:


<идентификатор> ::= <буква> | <идентификатор> <буква> |

<идентификатор> <цифра>


Только что рассмотрен фрагмент ФЯ определения контекстно-свободной грамматики, который использует символы двух двоеточий и равенства в качестве операции сопоставления. Символ «:» являет еще примером представления операции сопоставления термина понятия и его определения. Этот же фрагмент на ФЯ Марков имеет вид:


идентификатор: буква ; идентификатор , буква ; идентификатор , цифра.


Символ «=» (равенство) используется при формульных определениях фактов. В качестве примера можно указать на записи типа Х = 0, аксиоматические определения, на определения по аналогии в синонимии Х = А (равенство говорит о том, что его левая и правая части обозначают одно и то же, несмотря на различия в их представлениях).


И последний пример обозначения операции сопоставления. Знаками «:=» обозначается алгоритмическая операция присваивания, которая по своему существу определяет способ получения значения для переменной, помещаемой в левой части присваивания. В языках программирования иногда вводится аналогичная операция с символьным обозначением «=:» (обратное присваивание). В языках программирования отсутствует операция обоюдного сопоставления, которую можно обозначить знаками «=:=» или «:=:». Рассмотрим пример. Пусть по содержанию алгоритма требуется поменять местами значения двух переменных Х и У. В известных обозначениях обмен значениями записывается последовательностью операций присваивания: Р := Х; Х := У; У := Р; Сокращенной будет запись: Х :=: У, которая отражает такие же, как только что приведенные, действия.


Так представляются некоторые простые операции сопоставления термина понятия и его определения. Среди операций соединения суждений, из которых состоит определение понятия, обычно используются логические операции, их эквиваленты, обозначенные словами ЕЯ и специальными знаками, также являющиеся эквивалентами логических операций. Например, выше был приведен образец, в котором использовался знак «|» для обозначения операции «или», знак «;» для обозначения операции «и». Аксиоматические определения чаще не используют операции сопоставления в явном виде, хотя сама операция сопоставления является уже логической операцией. Следовательно, определение с операцией сопоставления является аксиоматическим определением, если его рассматривать как формальное определение.


Ясно, что здесь приведены только примеры обозначений операций для формирования определений. Исследователю предстоит тщательная сборка всех имеющихся обозначений, их классификация и интерпретация для формализации определений при машинном анализе и применении самих определений. Можно сказать, что необходимо сформировать ЯПП с именем «язык определений», с помощью которого может изучаться теория определений на ВМ. Автоматизация процессов анализа определений и формирования новых определений составляет одну из сущностей концептуальной информатики.


^ 6.5.3. Предикатные определения. Интенсиональные определения формализуются следующим образом. Прежде заметим, что определение описывает свойства объекта, которые могут квалифицироваться количественно или качественно. Если определяемая вещь квалифицируется количественно, то в таком случае можно построить некоторое отношение для представления вопроса: «обладает или нет данная вещь требуемым количеством?». Вопрос необходим для распознавания или квалификации вещи. Если определяемая вещь квалифицируется качественно, то в таком случае можно построить вопрос: «имеется ли в данной вещи требуемое качество?». Так или иначе, сформулирован аппарат для разделения вещей на два сорта: вещи, относящиеся и не относящиеся к определяемому понятию. Та или иная формулировка может быть представлена формально предикатом. Так можно построить классификатор вещей на базе предиката. Пусть классификатор вещей представлен предикатом Р, тогда вещь с именем Х классифицируется ответами на вопрос Р(Х) = истина? Вместо такой формы вопроса можно писать эквивалентную форму Р(Х). Теперь можно построить формальное определение понятия следующим образом:


имя = {Х: Тип; Р(Х)},


где имя - термин определяемого понятия (множества), Х - имя конкретной вещи (элемента множества), Тип - полный набор значений объекта, Р - предикат-классификатор. Тип - это также некоторое понятие общего вида (в соответствии с классическим подходом к понятию определения). Эта конструкция задает только общую форму определения. Вообще же большинство определений имеет более сложную форму. Усложнение формы наступает при использовании логических операций. Допустим, что объект обладает многими свойствами Р1, Р2,..., Рк одновременно. Тогда определение таких объектов формально будет представлено так:


имя множества = {Х: Тип; Р1(Х) & Р2(Х) & ... & Рк(Х)}.


Допустим, что объекты обладают этими же свойствами, но альтернативно. Тогда определение формально представляется в виде:


имя множества = {Х: Тип; Р1(Х) \/ Р2(Х) \/...\/ Рк(Х)}.


Более сложные определения имеют логические комбинации заданных свойств, тогда логическое выражение из предикатов будет иметь и более сложную структуру. Система операций & и \/ не полна. Ее необходимо дополнить операцией отрицания not. Действительно, некоторые определения могут быть сформулированы «от противного». Именно, некоторая вещь относится к понятию, если она не обладает свойством Р. Это можно выразить в виде:


имя = {Х: Тип; not Р(Х)}.


Теперь система операций &, \/ и not будет полной, можно строить любые определения. Заметим, что сам предикат может выражаться некоторой логической формулой с кванторами. Это обстоятельство надо учитывать при формальном определении некоторого понятия.


Изложенный формальный аппарат введения нового понятия с помощью предикатов имеет несколько полезных интерпретаций. Первая, указывается путь для формализации текстов ЯПП средствами ФЯ Лейбниц. Вторая, возможность определять любые понятия средствами, для которых имеется ФЯ. В таких определениях имеется достаточно неопределенная вещь - это Тип. Тип может представлять некоторое вполне определенное понятие, например, целые числа или строки текстов. Тип может иметь и неопределенные значения, которые позволяют вводить абстрактные понятия, например, континуальные множества чисел. Можно представить и совсем неопределенный Тип, представители (значения) которого определяться в процессе некоторого вычислительного процесса. Этот пример вызывает надежду на возможность решения ранее не решаемые на ВМ заданий.


Таким образом, предикатный сорт определений универсален, соответствует языку Лейбниц и охватывает широкий класс данных (включая, между прочим, процедурные данные). И главное, этот способ формализует определения, исходно представленные на ЯПП.


^ 6.5.4. Определение логическими уравнениями. Как и всякое уравнение логическое определяет некоторое неизвестное значение, которое может определять и определяет значение понятия. Множество значений, даже если множество не содержит ни одного значения или содержит только одно значение, определяет понятие из конкретных представителей (остенсиональное определение). По формальному существу такие определения являются обобщениями предикатных определений. Пусть задано логическое уравнение вида: F(X) = 0. Его решение Х = Хо, вообще говоря, определяет некоторое понятие в форме факта. Данное определение соответствует предикатному определению: {Хо} = (Х: Тип, F(X) = 0). Имеется одна оговорка, которая не должна повлиять на смысл предикатного определения, данного выше. Необходимо учитывать все множество корней уравнения.


Всегда имеется сомнение в том, что определяется ли таким образом некоторое понятие или не определяется. Сомнение можно устранить, если вспомнить всю совокупность суждений, задающих определение данного понятия. Определение логическими уравнениями является самым главным обобщением всех сортов определений, наивысшей абстракцией в теории определений. Это положение важно для реализации существа концептуальной информатики. Некоторые логические уравнения не имеют количественных решений. Тогда можно получать формульные определения с использованием машинных аналитических выкладок. Конечно, под формульными определениями следует понимать и некоторые тексты, генерируемые формальными представлениями суждений, представленных на некотором ФЯ.


Можно было бы ограничиться тем обстоятельством, что каждое определение есть логическое выражение, которое по сути своей уже является логическим уравнением типа В = истина в соответствии с ИЛ, где В - логическое выражение. Его решение относительно неопределенного термина составит окончательное определение понятия, обозначенного этим термином. Уравнения в самом общем его понимании доставляет большие трудности при получении окончательного решения. Имеются уравнения, которые не имеют решений из-за недостаточности знаний или из-за отсутствия аксиом, определяющих связи некоторых операций. Великая теорема Ферма является наглядным примером трудно и сложно решаемым уравнением. Известны ли аксиомы связи операций сложения и возведения в степень? Если теорема Ферма доказана, то такие аксиомы существуют, и они становятся известными.


Еще более сложной задачей является задача решения логических уравнений относительно неизвестных операций (термаций). Такими уравнениями математика занималась чрезвычайно мало. Интеллсист продвигает такие задачи, но не имеет еще формулировок окончательных решений. Согласитесь, что такие задачи составляют перспективную проблему.


^ 6.5.5. Определения алгоритмами. Решение логических уравнений может быть статическим (решение получено прямыми выкладками) и динамическим (решение получено в результате выполнения алгоритма и соответствующей ему программы, построенных в процессе решения логического уравнения). В предыдущем пункте был рассмотрен статический вариант получения значения некоторого определяемого уравнением понятия. Динамический вариант получения значения некоторого понятия приводит к построению алгоритма. Будем считать, что любой алгоритм определяет значение понятия. Например, алгоритм вычисления значения квадратного корня определяет понятие квадратного корня числа.


Подобные рассуждения могут показаться надуманными. Необходимо при этом вспоминать, что знания одного вида могут быть представлены знаниями другого вида. В данном случае концептуальные знания представляются и исследуются алгоритмическими знаниями. Необходимо учитывать факт представления знаний одного вида знаниями другого вида. Эта возможность может помочь в информатике поиска решения многих проблем. Например, если некоторая проблема решается алгоритмически, то следует поискать концептуальный путь ее решения. Он может оказаться эффективнее и точнее.


Решение логического уравнения и выполнение алгоритма - это два метода конструирования понятия. Такие пути конструирования понятия могут оказаться малоэффективными, так как они только в конечном счете определяют понятие. Каждое решение или каждое выполнение определяют только одно значение понятия. Его может быть и достаточно для конструирования понятия. Может оказаться, что одно значение понятия не определяет понятия. Тогда необходим поиск всех решений логического уравнения и прогон всех вариантов алгоритма для окончательного конструирования понятия. Этими рассуждениями ограничимся при описании еще одного формального метода построения понятий, алгоритмического метода.


^ 6.5.6. Определения в языке Лейбниц. Язык Лейбниц дает формальный метод конструирования определений некоторого понятия и соотношений понятий. Синтаксически структура определения формируется по схеме: термин, возможное его определение для человека, формальное определение множества значений понятия, признак переменности или константности и возможное заданное исходное значение. Соотношения понятий определяется логическим выражением, состоящим из терминов величин и операций.


Рассмотрим несколько примеров формального определения понятий. Примеры взяты из статьи С.С. Гончарова и Д.И. Свириденко. Первый пример относится к функции «факториал», она определяется двумя способами:

определение fact(х, у): существует z ((x = 0 => y = 1) \/

(not (x = 0) => ((y = x * z) & fact(x - 1, z)));

определение целое у = х!: ((х = 0 => у = 1) \/ ( not (х = 0) => у = х * (х - 1)!));

Второй пример задает константу ИСТИНА:

определение логическая ИСТИНА: 0 = 0;

Третий пример определяет операцию «больше»:

определение х > у: у <= х & not (х = у);

Четвертый пример определяет функцию min двумя способами:

определение z = min(x, y): если x <= y, то z=x, иначе z=y;

определение z = min(x, y): ((x <= y => z = x) \/ (y <= x => z = y));


Данные выше примеры достаточно полно характеризуют формализм конструирования определений понятий. Записи последовательностей определений подобного сорта составляют предмет концептуального программирования. Записи последовательностей также могут служить основой для объектно-ориентированного программирования.


^ Глава 7. Трансляция на формальный язык


В основе перехода с ЯПП на ФЯ используется транслятор, анализирующий исходный текст и строящий выходной текст с полным сохранением смысла текста. Имеется большое разнообразие схем трансляции текстов (например, программ) с одного языка на другой [Дейкало84, Ингерман69, Касьянов86, Красилов68а, 706, 70в, 71а, 72, 74г, 78а, 83б, 86б]. Большинство транслирующих систем ориентировано на такое разделение блоков транслятора: лексический анализ, синтаксический и семантический анализы, генерация объектного кода. Такому делению имеются многие резоны. В главе рассматриваются некоторые вопросы построения транслирующих систем ФЯ на ФЯ и ЯПП на ФЯ.





оставить комментарий
страница8/32
Дата23.09.2011
Размер6.34 Mb.
ТипДокументы, Образовательные материалы
Добавить документ в свой блог или на сайт

страницы: 1   ...   4   5   6   7   8   9   10   11   ...   32
отлично
  1
Ваша оценка:
Разместите кнопку на своём сайте или блоге:
rudocs.exdat.com

Загрузка...
База данных защищена авторским правом ©exdat 2000-2017
При копировании материала укажите ссылку
обратиться к администрации
Анализ
Справочники
Сценарии
Рефераты
Курсовые работы
Авторефераты
Программы
Методички
Документы
Понятия

опубликовать
Загрузка...
Документы

Рейтинг@Mail.ru
наверх