Растригин. С компьютером наедине. 1990
Страница 6 из 6
Страница 6 из 6 • 1, 2, 3, 4, 5, 6
Re: Растригин. С компьютером наедине. 1990
ДАННЫЕ И ЗНАНИЯ
Итак, всякая модель позволяет судить об объекте, который она описывает. Это знания, на основе которых мы можем эффективно использовать этот объект, например управлять им для достижения каких-либо своих целей. Теперь попробуем эти наши знания передать компьютеру, чтобы он с их помощью смог бы так же управлять объектом.
Но прежде чем модель ввести в память машины, мы должны представить ее в виде знаков, чтобы компьютер мог манипулировать этой моделью в процессе управления объектом (ведь модель является эквивалентом объекта и синтез управления осуществляется с помощью этой модели - именно для этого прежде всего и нужна модель). Итак, вводя модель в память компьютера, следует прежде всего помнить, что с ней придется работать. Поэтому модель традиционно стараются представить в виде аналитического выражения (формулы, уравнения и т.п.), так как с такими выражениями легко работать компьютеру. Пользуясь аналитической моделью, мы задачу управления сводим к чисто математической (точнее, вычислительной) задаче определения значения некоторых интересующих нас переменных, которые характеризуют будущее управление объектом. Очевидно, что для решения такой вычислительной задачи не нужно знать, какой именно смысл имеют те или иные параметры и переменные модели. Действительно, нам совершенно безразлично, какой содержательный смысл имеет переменная x в квадратном уравнении ax2+bx+c=0. И лишь получив ее мнимое значение, мы начинаем беспокоиться, да и то только в том случае, если по мысли задачи х - реальная величина.
Именно такого рода сведения, смысл которых не существен для манипуляции с ними, называют данными. Как видно, данные являются результатом "расщепления" знания на смысл (хранимый человеком) и данные - "бессмысленные" знаки. Например, любой текст, введенный в память компьютера, является только данными и лишь наличие механизма интерпретации (осмысливания), способа использования этих данных, превращает их в знания.
Традиционная схема использования компьютера связана именно с обработкой данных, а носителем и хранителем знаний является пользователь, на которого и возлагается функция "отщепления" данных от знания (это стадия формализации) и интерпретация полученных результатов, т.е. осмысливание (рис. 20). Как видно из рисунка, результатом являются тоже только данные, а не решение задачи, которое получается только после интерпретации их пользователем.
Рис.20
Описанная схема решения задачи с помощью компьютера не является чем-то необычным. Если в ней заменить слово "компьютер" на "решатель", в качестве которого может выступать человек, то получим обычную схему решения задач с привлечением формальных методов (не обязательно компьютерных). Это путь развития современной науки начиная с Галилея. Здесь формализация и интерпретация выступают в роли своеобразных антиподов: формализация как "отщепление" данных от знания и интерпретация как внесение смысла в данные, образование знания.
Можно предложить довольно грубую "формулу" знания:
Знание = данные + их смысл
Именно такое представление знания стимулировало развитие формальных методов обработки информации в общем и вычислительных методов в частности. Действительно, умение решать математические задачи позволяет решать все задачи, которые сводятся к математическим. Именно это привело к возрастанию роли и престижа формальных методов в науке, технике и народном хозяйстве. Формализация стала тем универсальным средством, с помощью которого решались все задачи, поддающиеся формализации. Хорошая постановка задачи в науке соответствует ее формализации, дальнейшее ее решение "дело техники".
Такая методология привела к очень интенсивному росту знаний, который наблюдался в науке нового времени и начало которому положил Галилей. Смысл этой методологии коротко сводится к следующему. Всякий "формализм" работает только с данными, а носителем смысла является только человек. Это положение было незыблемо более трехсот лет. Но вот настало время усомниться в нем.
Итак, всякая модель позволяет судить об объекте, который она описывает. Это знания, на основе которых мы можем эффективно использовать этот объект, например управлять им для достижения каких-либо своих целей. Теперь попробуем эти наши знания передать компьютеру, чтобы он с их помощью смог бы так же управлять объектом.
Но прежде чем модель ввести в память машины, мы должны представить ее в виде знаков, чтобы компьютер мог манипулировать этой моделью в процессе управления объектом (ведь модель является эквивалентом объекта и синтез управления осуществляется с помощью этой модели - именно для этого прежде всего и нужна модель). Итак, вводя модель в память компьютера, следует прежде всего помнить, что с ней придется работать. Поэтому модель традиционно стараются представить в виде аналитического выражения (формулы, уравнения и т.п.), так как с такими выражениями легко работать компьютеру. Пользуясь аналитической моделью, мы задачу управления сводим к чисто математической (точнее, вычислительной) задаче определения значения некоторых интересующих нас переменных, которые характеризуют будущее управление объектом. Очевидно, что для решения такой вычислительной задачи не нужно знать, какой именно смысл имеют те или иные параметры и переменные модели. Действительно, нам совершенно безразлично, какой содержательный смысл имеет переменная x в квадратном уравнении ax2+bx+c=0. И лишь получив ее мнимое значение, мы начинаем беспокоиться, да и то только в том случае, если по мысли задачи х - реальная величина.
Именно такого рода сведения, смысл которых не существен для манипуляции с ними, называют данными. Как видно, данные являются результатом "расщепления" знания на смысл (хранимый человеком) и данные - "бессмысленные" знаки. Например, любой текст, введенный в память компьютера, является только данными и лишь наличие механизма интерпретации (осмысливания), способа использования этих данных, превращает их в знания.
Традиционная схема использования компьютера связана именно с обработкой данных, а носителем и хранителем знаний является пользователь, на которого и возлагается функция "отщепления" данных от знания (это стадия формализации) и интерпретация полученных результатов, т.е. осмысливание (рис. 20). Как видно из рисунка, результатом являются тоже только данные, а не решение задачи, которое получается только после интерпретации их пользователем.
Рис.20
Описанная схема решения задачи с помощью компьютера не является чем-то необычным. Если в ней заменить слово "компьютер" на "решатель", в качестве которого может выступать человек, то получим обычную схему решения задач с привлечением формальных методов (не обязательно компьютерных). Это путь развития современной науки начиная с Галилея. Здесь формализация и интерпретация выступают в роли своеобразных антиподов: формализация как "отщепление" данных от знания и интерпретация как внесение смысла в данные, образование знания.
Можно предложить довольно грубую "формулу" знания:
Знание = данные + их смысл
Именно такое представление знания стимулировало развитие формальных методов обработки информации в общем и вычислительных методов в частности. Действительно, умение решать математические задачи позволяет решать все задачи, которые сводятся к математическим. Именно это привело к возрастанию роли и престижа формальных методов в науке, технике и народном хозяйстве. Формализация стала тем универсальным средством, с помощью которого решались все задачи, поддающиеся формализации. Хорошая постановка задачи в науке соответствует ее формализации, дальнейшее ее решение "дело техники".
Такая методология привела к очень интенсивному росту знаний, который наблюдался в науке нового времени и начало которому положил Галилей. Смысл этой методологии коротко сводится к следующему. Всякий "формализм" работает только с данными, а носителем смысла является только человек. Это положение было незыблемо более трехсот лет. Но вот настало время усомниться в нем.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Растригин. С компьютером наедине. 1990
ТРУДНОСТИ ФОРМАЛИЗАЦИИ
Они видны хотя бы из экспериментов по машинному переводу с одного языка на другой (об этой проблеме мы подробно говорили в гл.9). Результаты этих экспериментов были очень несовершенны, но тем не менее они показали, что компьютер может оперировать со смыслом предложения в процессе перевода с одного языка на другой, может понимать текст. А это означает, что компьютер может манипулировать не только данными, но и знаниями, подобно человеку.
Это обстоятельство важно не только с познавательной точки зрения (машина может работать со знаниями), но прежде всего для практических применений. Дело в том, что процесс формализации ограничен тем математическим аппаратом, который имеется в распоряжении человечества. Это мощный аппарат, но, увы, ограниченный. Далеко не всегда и не все задачи удается формализовать. Что же это за задачи? Прежде всего, это задачи организационного управления, т. е. управления системами с людьми. Говорят, что они имеют дополнительные степени свободы, связанные с поведением человека. И именно они заставили поставить задачу введения знаний (а не только данных) в компьютер. Так возникла проблема представления знаний в ЭВМ.
Рассмотрим способы решения этой проблемы. Первой и очень естественной мыслью является обращение к естественному языку. Ведь это самое совершенное средство описания любых объектов. Мы, люди, великолепно используем его для хранения и передачи знаний. Нет предмета, вещи, явления, процесса, которые нельзя было бы описать на естественном языке. Это описание предшествует всякой формализации и заканчивает ее на стадии интерпретации, которая происходит тоже на естественном языке.
Всем хорош естественный язык. Но ряд недостатков, точнее досадных свойств (о которых мы говорили в гл.9), препятствует его прямому применению для представления знаний в компьютере. Но, "если гора не идет к Магомету, Магомет идет к горе". Если естественный язык чем-то не подходит, надо построить свой искусственный, максимально похожий на естественный, но без его недостатков. И такой язык был создан, и не один. Рассмотрим, например, язык, который был сконструирован специально для решения задач управления сложными объектами. В процессе управления всякими сложными объектами необходимо строго контролировать сложившуюся ситуацию, описывать ее на удобном языке, позволяющем анализировать эту ситуацию и строить управление. Такое управление назвали ситуационным, а язык, позволяющий описывать сложные ситуации, ...
Они видны хотя бы из экспериментов по машинному переводу с одного языка на другой (об этой проблеме мы подробно говорили в гл.9). Результаты этих экспериментов были очень несовершенны, но тем не менее они показали, что компьютер может оперировать со смыслом предложения в процессе перевода с одного языка на другой, может понимать текст. А это означает, что компьютер может манипулировать не только данными, но и знаниями, подобно человеку.
Это обстоятельство важно не только с познавательной точки зрения (машина может работать со знаниями), но прежде всего для практических применений. Дело в том, что процесс формализации ограничен тем математическим аппаратом, который имеется в распоряжении человечества. Это мощный аппарат, но, увы, ограниченный. Далеко не всегда и не все задачи удается формализовать. Что же это за задачи? Прежде всего, это задачи организационного управления, т. е. управления системами с людьми. Говорят, что они имеют дополнительные степени свободы, связанные с поведением человека. И именно они заставили поставить задачу введения знаний (а не только данных) в компьютер. Так возникла проблема представления знаний в ЭВМ.
Рассмотрим способы решения этой проблемы. Первой и очень естественной мыслью является обращение к естественному языку. Ведь это самое совершенное средство описания любых объектов. Мы, люди, великолепно используем его для хранения и передачи знаний. Нет предмета, вещи, явления, процесса, которые нельзя было бы описать на естественном языке. Это описание предшествует всякой формализации и заканчивает ее на стадии интерпретации, которая происходит тоже на естественном языке.
Всем хорош естественный язык. Но ряд недостатков, точнее досадных свойств (о которых мы говорили в гл.9), препятствует его прямому применению для представления знаний в компьютере. Но, "если гора не идет к Магомету, Магомет идет к горе". Если естественный язык чем-то не подходит, надо построить свой искусственный, максимально похожий на естественный, но без его недостатков. И такой язык был создан, и не один. Рассмотрим, например, язык, который был сконструирован специально для решения задач управления сложными объектами. В процессе управления всякими сложными объектами необходимо строго контролировать сложившуюся ситуацию, описывать ее на удобном языке, позволяющем анализировать эту ситуацию и строить управление. Такое управление назвали ситуационным, а язык, позволяющий описывать сложные ситуации, ...
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Растригин. С компьютером наедине. 1990
ЯЗЫК СИТУАЦИОННОГО УПРАВЛЕНИЯ
Если несколько огрубить наши представления об окружающем мире, то их можно свести к двум основным категориям: понятиям и отношениям между этими понятиями. Действительно, все существующие предметы, вещи, явления и их свойства (все это и есть понятия) связаны между собой какими-то отношениями (находиться в, иметь цвет, передвигаться к, быть одновременно с и т.д.). Например, факт того, что чашка находится на столе, фиксирует отношение "находится на" между двумя понятиями - чашкой и столом. Это отношение или имеет место, если действительно находится на столе, или нет, если эта чашка стоит, например, на стуле, а на столе ее нет. Таким образом, для двух заданных понятий заданное отношение или имеет место, или нет. Третьего не дано, дробного отношения не существует. Именно поэтому отношения имеют бинарный характер, а язык, использующий такие отношения, называют также языком бинарных отношений. Заметим сразу, что эта бинарность также огрубляет наши представления об окружающем мире. Такова судьба всех моделей - для их простоты приходится упрощать реальное явление. Без этого познание было бы невозможно, так как всякое реальное явление бесконечно сложно, его нельзя охватить полностью в конечной модели, да и не нужно.
В чем огрубление бинарности отношений? Да в том, что некоторые отношения только с большой натяжкой можно назвать бинарными. Например, отношение "любить" наверняка имеет множество градаций, хотя некоторые и настаивают на его бинарности, задавая извечный вопрос: "Ты меня любишь?"
Исключим подобные случаи и будем рассматривать лишь бинарные отношения, которые для описания технических знаний действительно можно без натяжки считать бинарными. Теперь опишем язык ситуационного управления как язык бинарных отношений, с помощью которого очень легко описывать факты, ситуации и тому подобные категории, которые входят в то, что мы называем знанием.
Язык этот очень прост. Как всякий язык, язык бинарных отношений имеет свой словарь и свою грамматику. Рассмотрим их в отдельности.
Если несколько огрубить наши представления об окружающем мире, то их можно свести к двум основным категориям: понятиям и отношениям между этими понятиями. Действительно, все существующие предметы, вещи, явления и их свойства (все это и есть понятия) связаны между собой какими-то отношениями (находиться в, иметь цвет, передвигаться к, быть одновременно с и т.д.). Например, факт того, что чашка находится на столе, фиксирует отношение "находится на" между двумя понятиями - чашкой и столом. Это отношение или имеет место, если действительно находится на столе, или нет, если эта чашка стоит, например, на стуле, а на столе ее нет. Таким образом, для двух заданных понятий заданное отношение или имеет место, или нет. Третьего не дано, дробного отношения не существует. Именно поэтому отношения имеют бинарный характер, а язык, использующий такие отношения, называют также языком бинарных отношений. Заметим сразу, что эта бинарность также огрубляет наши представления об окружающем мире. Такова судьба всех моделей - для их простоты приходится упрощать реальное явление. Без этого познание было бы невозможно, так как всякое реальное явление бесконечно сложно, его нельзя охватить полностью в конечной модели, да и не нужно.
В чем огрубление бинарности отношений? Да в том, что некоторые отношения только с большой натяжкой можно назвать бинарными. Например, отношение "любить" наверняка имеет множество градаций, хотя некоторые и настаивают на его бинарности, задавая извечный вопрос: "Ты меня любишь?"
Исключим подобные случаи и будем рассматривать лишь бинарные отношения, которые для описания технических знаний действительно можно без натяжки считать бинарными. Теперь опишем язык ситуационного управления как язык бинарных отношений, с помощью которого очень легко описывать факты, ситуации и тому подобные категории, которые входят в то, что мы называем знанием.
Язык этот очень прост. Как всякий язык, язык бинарных отношений имеет свой словарь и свою грамматику. Рассмотрим их в отдельности.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Растригин. С компьютером наедине. 1990
СЛОВАРЬ
Состоит из трех разделов, содержащих слова трех типов.
Прежде всего это понятия; будем обозначать их ai, i=1, ... Понятия порождаются описываемым явлением. Проще говоря, это элементы, из которых состоит описываемый объект, так как нас интересуют знания об этом объекте, например a1 - деталь, a2 - конвейер, a3 - оператор и т.д.
Имена, т.е. конкретные значения имен элементов, входящих в описываемую ситуацию; будем обозначать их bj, j=1, ... . Например, b1 - #268, b2 - Иванов, b3 - Петров.
Отношения; будем обозначать их rk, k = 0, 1, ... Отношение r0 строго специализировано для введения имен: r0 - "иметь имя". Другие отношения вводятся в зависимости от специфики описываемого объекта, например r1 - "находиться на", r2 - "управлять", r3 - "быть одновременно с" и т.д.
Таков словарь. Он строится в зависимости от особенностей описываемого объекта или ситуации. В лингвистике есть понятие "подъязыков". Это языки, порожденные определенной узкой предметной областью, например физикой, химией, математикой, международными отношениями. Так вот, словарь ситуационного управления является словарем подъязыка управляемого объекта, который описывается этим языком, и предметной области, которой принадлежит этот объект. Например, словарь ситуации "Деталь #268 находится на конвейере, которым управляет оператор Иванов":
{а1, а2, а3, b1, b2, r0, г2 г3},
где (повторим сказанное выше для удобства в дальнейшем):
a1 - деталь, a2 - конвейер, a3 - оператор - понятия;
b1 - #268, b2 - Иванов - имена;
г0 - иметь имя, r1 - находиться на, r2 - управлять, r3 - быть одновременно с - отношения.
Сразу можно заметить, что в словаре нет слова "который", так как оно лишнее. Эту ситуацию можно записать более компактно (хотя и не очень стилистически грамотно): "Деталь #268 находится на конвейере, управляемом оператором Ивановым", но и это не подходит - не ясно, как Иванов управляет конвейером: сейчас или вообще умеет это делать. Здесь появился причастный оборот, свойственный естественному языку (как и придаточные предложения), от которого хотелось бы избавиться. Для этого запишем ситуацию в скобочной форме: (деталь #268 находится на конвейере) одновременно с (оператор Иванов управляет конвейером). Здесь все понятно и однозначно, хотя и очень "деревянно".
Состоит из трех разделов, содержащих слова трех типов.
Прежде всего это понятия; будем обозначать их ai, i=1, ... Понятия порождаются описываемым явлением. Проще говоря, это элементы, из которых состоит описываемый объект, так как нас интересуют знания об этом объекте, например a1 - деталь, a2 - конвейер, a3 - оператор и т.д.
Имена, т.е. конкретные значения имен элементов, входящих в описываемую ситуацию; будем обозначать их bj, j=1, ... . Например, b1 - #268, b2 - Иванов, b3 - Петров.
Отношения; будем обозначать их rk, k = 0, 1, ... Отношение r0 строго специализировано для введения имен: r0 - "иметь имя". Другие отношения вводятся в зависимости от специфики описываемого объекта, например r1 - "находиться на", r2 - "управлять", r3 - "быть одновременно с" и т.д.
Таков словарь. Он строится в зависимости от особенностей описываемого объекта или ситуации. В лингвистике есть понятие "подъязыков". Это языки, порожденные определенной узкой предметной областью, например физикой, химией, математикой, международными отношениями. Так вот, словарь ситуационного управления является словарем подъязыка управляемого объекта, который описывается этим языком, и предметной области, которой принадлежит этот объект. Например, словарь ситуации "Деталь #268 находится на конвейере, которым управляет оператор Иванов":
{а1, а2, а3, b1, b2, r0, г2 г3},
где (повторим сказанное выше для удобства в дальнейшем):
a1 - деталь, a2 - конвейер, a3 - оператор - понятия;
b1 - #268, b2 - Иванов - имена;
г0 - иметь имя, r1 - находиться на, r2 - управлять, r3 - быть одновременно с - отношения.
Сразу можно заметить, что в словаре нет слова "который", так как оно лишнее. Эту ситуацию можно записать более компактно (хотя и не очень стилистически грамотно): "Деталь #268 находится на конвейере, управляемом оператором Ивановым", но и это не подходит - не ясно, как Иванов управляет конвейером: сейчас или вообще умеет это делать. Здесь появился причастный оборот, свойственный естественному языку (как и придаточные предложения), от которого хотелось бы избавиться. Для этого запишем ситуацию в скобочной форме: (деталь #268 находится на конвейере) одновременно с (оператор Иванов управляет конвейером). Здесь все понятно и однозначно, хотя и очень "деревянно".
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Растригин. С компьютером наедине. 1990
ГРАММАТИКА
Напомним, что грамматика состоит из морфологии (науки о формах слов) и синтаксиса (науки о соединении слов в предложения). Морфологии в языке ситуационного управления нет: его слова однобуквенные. А синтаксис состоит в том, как определяется понятие "правильная фраза" на этом языке. Имеется в виду синтаксически правильная фраза, семантически (по смыслу) она может быть и ошибочной.
Итак, правильной фразой на языке ситуационного управления является любая фраза, удовлетворяющая одному из трех правил:
1. Любое понятие является правильной фразой.
2. Если A и B - правильные фразы, то (ArB) - тоже правильная фраза, где r - любое отношение, кроме r0 - "иметь имя".
3. Если A - правильная фраза, то (Ar0b) - тоже правильная фраза, где b - любое имя.
Вот и все! Проще грамматики придумать нельзя.
А теперь запишем нашу ситуацию на этом языке. Сначала выпишем простейшие правильные фразы:
A1 = (a1r0b1) - деталь #268 (точнее, "деталь имеет имя #268");
A2 = (a3r0b2) - оператор Иванов (точнее, оператор имеет имя
Иванов).
Здесь мы воспользовались 3-м и 1-м правилами грамматики языка бинарных отношений. Пойдем дальше и воспользуемся 2-м правилом:
A3 = (A1r1a2) - деталь #268 (А1) находится на (r1) конвейере (a2);
A4 = (A2r2a2) - оператор Иванов (A2) управляет (r2) конвейером (а2).
Теперь нетрудно описать всю ситуацию, введя одновременно итуации A3 и А4:
(A3r3A4) - деталь #268 находится на конвейере (A3), которым в данный момент управляет оператор Иванов (A4).
Если подставить сюда все имеющиеся выражения, то получим описание ситуации через элементы, образующие исходный словарь:
(((a1r0b1)r1a2)r3((a3r0b2)r2a2))
Вот и все! Но все ли?
Скептически настроенный читатель наверняка скажет, что это лишь замена одних обозначений другими, т.е. слов естественного языка знаками - буквами латинского алфавита с индексами. Действительно, такая замена имеет место, но она не механическая, а с учетом смысла предложения путем сведения всей сложности естественного языка лишь к простой конструкции правильной фразы, связывающей две другие фразы определенным отношением. Причем таких отношений оказывается не слишком много. Так, для русского языка их выделено около 180. И никаких падежей, склонений, спряжений и всякого рода оборотов (причастных и деепричастных) вместе со сложноподчиненными (придаточными) и сложносочиненными предложениями и т.п. сложностями грамматики естественного языка. Вместо изобилия правил и исключений естественного языка-лишь три простых правила без исключений. Безусловно, это значительное упрощение, сохраняющее смысл исходного текста на естественном языке.
Очевидно, что преобразование текста из естественного языка в язык ситуационного управления нельзя делать формально, нужно сохранить смысл, используя имеющийся словарь и наращивая его новыми словами при необходимости.
Одной из наиболее существенных черт этого языка является то, что записанная ситуация может быть преобразована формально, т.е. с помощью компьютера. Для этого достаточно знать свойства отношений. Например, отношение "быть одновременно" обладает свойством симметрии:
(A1r3A2)<->(A2r3A1),
т.е. из того, что А1 одновременно с A2, следует, что и А2 одновременно с А1. А отношение "находиться в" (r4) обладает свойством транзитивности:
если (A1r4A2) и (A2r4A3), то (A1r4A3),
т.е. если A1 находится в A2, a A2 - в A3, то A1 находится в A3. Как в известной сказке: игла в яйце, яйцо в утке, следовательно, игла в утке - это транзитивное заключение.
Свойством транзитивности обладают многие отношения, но далеко не все. Например, отношение "любить". Если A1 любит A2, a A2 любит A3, то далеко не всегда A1 любит A3. Таких свойств, определяющих возможность преобразования описания ситуации, найдено почти 400. Именно они позволяют трансформировать описание, записанное на этом языке.
Другим способом преобразования полученного описания объекта является образование новых понятий. Под понятием здесь будем подразумевать ситуацию, часто повторяющуюся в описании объекта. Так, "такси, движущееся без пассажира" - ситуация частая и волнующая таксистов. Именно поэтому возникло жаргонное понятие "холостяк", которое определяет описанную ситуацию (не путать с холостым человеком).
Обобщение может происходить по ситуациям. Естественно обобщать ситуации, которые отличаются лишь понятиями (обобщение по понятиям), отношениями (обобщение по отношениям) и именами (обобщение по именам). Например, при описании работы почты очень важно определить постоянного получателя. Им могут быть отдельные люди, учреждения, заводы, магазины и т.д.- все они потребители корреспонденции. Можно их обобщить одним понятием "абонент". Аналогично происходит обобщение по отношениям и именам.
Таким образом, язык ситуационного управления позволяет не только отобразить смысл фраз не естественном языке в памяти компьютера, но и трансформировать запись, сохраняя ее смысл, и при этом делать обобщения.
При описании технических объектов нет необходимости в особой выразительности языка и все фразы можно свести к простой конструкции (ядерной цепочке):
субъект - акция - объект
где на первой позиции всегда стоит субъект, тот, кто (или что) действует (совершает акцию), на второй - название самого действия (акции), а на третьей позиции объект акции, то, на что воздействует субъект. Например, (B1rB2), где B1 - манипулятор (это субъект); r - захватил (акция); B2 - деталь (объект акции).
Такой язык называют универсальным семантическим кодом и применяют для управления роботами, технологическими процессами и т.д. Это, как видно, частный случай языка ситуационного управления.
Напомним, что грамматика состоит из морфологии (науки о формах слов) и синтаксиса (науки о соединении слов в предложения). Морфологии в языке ситуационного управления нет: его слова однобуквенные. А синтаксис состоит в том, как определяется понятие "правильная фраза" на этом языке. Имеется в виду синтаксически правильная фраза, семантически (по смыслу) она может быть и ошибочной.
Итак, правильной фразой на языке ситуационного управления является любая фраза, удовлетворяющая одному из трех правил:
1. Любое понятие является правильной фразой.
2. Если A и B - правильные фразы, то (ArB) - тоже правильная фраза, где r - любое отношение, кроме r0 - "иметь имя".
3. Если A - правильная фраза, то (Ar0b) - тоже правильная фраза, где b - любое имя.
Вот и все! Проще грамматики придумать нельзя.
А теперь запишем нашу ситуацию на этом языке. Сначала выпишем простейшие правильные фразы:
A1 = (a1r0b1) - деталь #268 (точнее, "деталь имеет имя #268");
A2 = (a3r0b2) - оператор Иванов (точнее, оператор имеет имя
Иванов).
Здесь мы воспользовались 3-м и 1-м правилами грамматики языка бинарных отношений. Пойдем дальше и воспользуемся 2-м правилом:
A3 = (A1r1a2) - деталь #268 (А1) находится на (r1) конвейере (a2);
A4 = (A2r2a2) - оператор Иванов (A2) управляет (r2) конвейером (а2).
Теперь нетрудно описать всю ситуацию, введя одновременно итуации A3 и А4:
(A3r3A4) - деталь #268 находится на конвейере (A3), которым в данный момент управляет оператор Иванов (A4).
Если подставить сюда все имеющиеся выражения, то получим описание ситуации через элементы, образующие исходный словарь:
(((a1r0b1)r1a2)r3((a3r0b2)r2a2))
Вот и все! Но все ли?
Скептически настроенный читатель наверняка скажет, что это лишь замена одних обозначений другими, т.е. слов естественного языка знаками - буквами латинского алфавита с индексами. Действительно, такая замена имеет место, но она не механическая, а с учетом смысла предложения путем сведения всей сложности естественного языка лишь к простой конструкции правильной фразы, связывающей две другие фразы определенным отношением. Причем таких отношений оказывается не слишком много. Так, для русского языка их выделено около 180. И никаких падежей, склонений, спряжений и всякого рода оборотов (причастных и деепричастных) вместе со сложноподчиненными (придаточными) и сложносочиненными предложениями и т.п. сложностями грамматики естественного языка. Вместо изобилия правил и исключений естественного языка-лишь три простых правила без исключений. Безусловно, это значительное упрощение, сохраняющее смысл исходного текста на естественном языке.
Очевидно, что преобразование текста из естественного языка в язык ситуационного управления нельзя делать формально, нужно сохранить смысл, используя имеющийся словарь и наращивая его новыми словами при необходимости.
Одной из наиболее существенных черт этого языка является то, что записанная ситуация может быть преобразована формально, т.е. с помощью компьютера. Для этого достаточно знать свойства отношений. Например, отношение "быть одновременно" обладает свойством симметрии:
(A1r3A2)<->(A2r3A1),
т.е. из того, что А1 одновременно с A2, следует, что и А2 одновременно с А1. А отношение "находиться в" (r4) обладает свойством транзитивности:
если (A1r4A2) и (A2r4A3), то (A1r4A3),
т.е. если A1 находится в A2, a A2 - в A3, то A1 находится в A3. Как в известной сказке: игла в яйце, яйцо в утке, следовательно, игла в утке - это транзитивное заключение.
Свойством транзитивности обладают многие отношения, но далеко не все. Например, отношение "любить". Если A1 любит A2, a A2 любит A3, то далеко не всегда A1 любит A3. Таких свойств, определяющих возможность преобразования описания ситуации, найдено почти 400. Именно они позволяют трансформировать описание, записанное на этом языке.
Другим способом преобразования полученного описания объекта является образование новых понятий. Под понятием здесь будем подразумевать ситуацию, часто повторяющуюся в описании объекта. Так, "такси, движущееся без пассажира" - ситуация частая и волнующая таксистов. Именно поэтому возникло жаргонное понятие "холостяк", которое определяет описанную ситуацию (не путать с холостым человеком).
Обобщение может происходить по ситуациям. Естественно обобщать ситуации, которые отличаются лишь понятиями (обобщение по понятиям), отношениями (обобщение по отношениям) и именами (обобщение по именам). Например, при описании работы почты очень важно определить постоянного получателя. Им могут быть отдельные люди, учреждения, заводы, магазины и т.д.- все они потребители корреспонденции. Можно их обобщить одним понятием "абонент". Аналогично происходит обобщение по отношениям и именам.
Таким образом, язык ситуационного управления позволяет не только отобразить смысл фраз не естественном языке в памяти компьютера, но и трансформировать запись, сохраняя ее смысл, и при этом делать обобщения.
При описании технических объектов нет необходимости в особой выразительности языка и все фразы можно свести к простой конструкции (ядерной цепочке):
субъект - акция - объект
где на первой позиции всегда стоит субъект, тот, кто (или что) действует (совершает акцию), на второй - название самого действия (акции), а на третьей позиции объект акции, то, на что воздействует субъект. Например, (B1rB2), где B1 - манипулятор (это субъект); r - захватил (акция); B2 - деталь (объект акции).
Такой язык называют универсальным семантическим кодом и применяют для управления роботами, технологическими процессами и т.д. Это, как видно, частный случай языка ситуационного управления.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Растригин. С компьютером наедине. 1990
СЕМАНТИЧЕСКИЕ СЕТИ
Ситуацию, описанную в предыдущем разделе, можно представить в виде графа (рис.21), вершинами которого являются понятия, имена и их объединения (имен и понятий), а дугами - отношения.
Рис.21
Однако такое представление ситуации не очень удобно: заставляет повторять в графе каждое новое упоминание любого предмета. Так, на рис.21 дважды фигурирует понятие "конвейер", хотя речь идет об одном и том же предмете. Требование грамматики языка ситуационного управления не позволяет с одним и тем же понятием связать сразу несколько отношений. Это надо делать порознь и связывать их довольно надуманным симметричным отношением "быть одновременно". Более удобное графическое представление - семантические сети. Здесь вершинами графа являются не только понятия (объекты, свойства, состояния) и их имена, но и отношения, а дугами - их связи в виде типа свойств ("размер", "цвет", "время", "интенсивность" и т.д.) и так называемых падежей действий - это не что иное, как отношения, уже известные нам, но специального вида.
Не следует путать падежи действия с грамматическими падежами. Падежи действия в отличие от грамматических устанавливают отношение действия между объектами (точнее, их понятиями), указывают, что на что действует. Грамматические падежи устанавливают лишь грамматические отношения между главными и зависимыми словами. Например "прочитать книгу", здесь главным является глагол "прочитать", требующий винительного падежа зависимого слова "книга".
Как видно, вершина семантической сети образуются почти всеми теми словами естественного языка, которые описывают ситуацию, кроме предлогов.
Например, уже знакомая нам ситуация, описанная на языке ситуационного управления и представленная в виде графа на рис.21, может быть представлена в виде семантической сети (рис.22). Здесь к уже известным нам отношениям добавляются "иметь имя" и "приемник действия". Отношение "приемник действия" определяет предмет ("конвейер"), на который распространяется действие ("находиться"). Это отношение близко к отношению "объект действия", но не совпадает с ним.
Рис.22
Как видно, с помощью семантических сетей можно эффективно представлять знания об объектах, ситуациях, явлениях и процессах в памяти компьютера. Для этого достаточно запомнить перечень вершин графа сети и ребра отношений между вершинами. Например, последний пример семантической сети, описывающий ситуацию: "Деталь #286 находится на конвейере, которым управляет оператор Иванов", запишем в память компьютера в виде следующего графа. Он описывается списком вершин и ребер.
Вершины: 1 - ДЕТАЛЬ; 2 - #286; 3 - НАХОДИТЬСЯ; 4 - КОНВЕЙЕР; 5 - УПРАВЛЯТЬ; 6 - ОПЕРАТОР; 7 - ИВАНОВ.
Это перенумерованный перечень вершин графа семантической сети (дальнейшие ссылки на вершины производятся по их номерам). Ребра обозначаются двумя номерами соединяемых ими вершин:
Ребра: (1, 2), (6, 7) - ИМЯ; (3, 1) (5, 6) - АГЕНТ; (3, 4) - приемник; (5, 4) - объект.
Это перечень всех ребер графа сети с наименованиями отношений, выражаемых этими ребрами. Здесь, например, (1, 2) обозначает ребро, направленное из вершины 1 в вершину 2.
С помощью семантических сетей удобно описывать знания не только о сложившейся ситуации, но и о предметной области, в которой разворачиваются описываемые события, ситуации, явления. Знание такой предметной области очень важно компьютеру как для понимания сложившейся ситуации, так и для организации конкретных действий по принципу "Если сложилась ситуация Ai, надо воспользоваться управлением Ui", что на языке ситуационного управления записывается в виде фразы (AirUi), где r - отношение "влечет за собой".
Приведем пример предметной области, описывающей устройство автомобиля. Фрагмент семантической сети этой предметной области приведен на рис.23. Здесь стрелками обозначено одно отношение "быть частью" - нижний объект является частью верхнего. Располагая в памяти такой сетью, компьютер будет комплектовать конвейеры сборки агрегатов и узлов автомобильного завода. Наличие только одного отношения "быть частью" обедняет эту модель настолько, что часто ее относят не к знанию, а к данным. Такого рода базу данных называют иерархической.
Рис.23
Ситуацию, описанную в предыдущем разделе, можно представить в виде графа (рис.21), вершинами которого являются понятия, имена и их объединения (имен и понятий), а дугами - отношения.
Рис.21
Однако такое представление ситуации не очень удобно: заставляет повторять в графе каждое новое упоминание любого предмета. Так, на рис.21 дважды фигурирует понятие "конвейер", хотя речь идет об одном и том же предмете. Требование грамматики языка ситуационного управления не позволяет с одним и тем же понятием связать сразу несколько отношений. Это надо делать порознь и связывать их довольно надуманным симметричным отношением "быть одновременно". Более удобное графическое представление - семантические сети. Здесь вершинами графа являются не только понятия (объекты, свойства, состояния) и их имена, но и отношения, а дугами - их связи в виде типа свойств ("размер", "цвет", "время", "интенсивность" и т.д.) и так называемых падежей действий - это не что иное, как отношения, уже известные нам, но специального вида.
Не следует путать падежи действия с грамматическими падежами. Падежи действия в отличие от грамматических устанавливают отношение действия между объектами (точнее, их понятиями), указывают, что на что действует. Грамматические падежи устанавливают лишь грамматические отношения между главными и зависимыми словами. Например "прочитать книгу", здесь главным является глагол "прочитать", требующий винительного падежа зависимого слова "книга".
Как видно, вершина семантической сети образуются почти всеми теми словами естественного языка, которые описывают ситуацию, кроме предлогов.
Например, уже знакомая нам ситуация, описанная на языке ситуационного управления и представленная в виде графа на рис.21, может быть представлена в виде семантической сети (рис.22). Здесь к уже известным нам отношениям добавляются "иметь имя" и "приемник действия". Отношение "приемник действия" определяет предмет ("конвейер"), на который распространяется действие ("находиться"). Это отношение близко к отношению "объект действия", но не совпадает с ним.
Рис.22
Как видно, с помощью семантических сетей можно эффективно представлять знания об объектах, ситуациях, явлениях и процессах в памяти компьютера. Для этого достаточно запомнить перечень вершин графа сети и ребра отношений между вершинами. Например, последний пример семантической сети, описывающий ситуацию: "Деталь #286 находится на конвейере, которым управляет оператор Иванов", запишем в память компьютера в виде следующего графа. Он описывается списком вершин и ребер.
Вершины: 1 - ДЕТАЛЬ; 2 - #286; 3 - НАХОДИТЬСЯ; 4 - КОНВЕЙЕР; 5 - УПРАВЛЯТЬ; 6 - ОПЕРАТОР; 7 - ИВАНОВ.
Это перенумерованный перечень вершин графа семантической сети (дальнейшие ссылки на вершины производятся по их номерам). Ребра обозначаются двумя номерами соединяемых ими вершин:
Ребра: (1, 2), (6, 7) - ИМЯ; (3, 1) (5, 6) - АГЕНТ; (3, 4) - приемник; (5, 4) - объект.
Это перечень всех ребер графа сети с наименованиями отношений, выражаемых этими ребрами. Здесь, например, (1, 2) обозначает ребро, направленное из вершины 1 в вершину 2.
С помощью семантических сетей удобно описывать знания не только о сложившейся ситуации, но и о предметной области, в которой разворачиваются описываемые события, ситуации, явления. Знание такой предметной области очень важно компьютеру как для понимания сложившейся ситуации, так и для организации конкретных действий по принципу "Если сложилась ситуация Ai, надо воспользоваться управлением Ui", что на языке ситуационного управления записывается в виде фразы (AirUi), где r - отношение "влечет за собой".
Приведем пример предметной области, описывающей устройство автомобиля. Фрагмент семантической сети этой предметной области приведен на рис.23. Здесь стрелками обозначено одно отношение "быть частью" - нижний объект является частью верхнего. Располагая в памяти такой сетью, компьютер будет комплектовать конвейеры сборки агрегатов и узлов автомобильного завода. Наличие только одного отношения "быть частью" обедняет эту модель настолько, что часто ее относят не к знанию, а к данным. Такого рода базу данных называют иерархической.
Рис.23
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Растригин. С компьютером наедине. 1990
ФРЕЙМЫ
Различные объекты (ситуации, явления и т.п.) описываются различными семантическими сетями - иначе мы бы их не различали. И тем не менее в этих описаниях есть нечто общее, похожее, стереотипное. Например, действия "любить" и "колотить" неизбежно вызывают целую цепочку естественных вопросов: "что и кого любит (колотит)?", "за что любит (колотит)?", "чем колотит?" и т.д. Очевидно, что любая семантическая сеть, содержащая эти действия, должна иметь ответы на эти вопросы. Это значит, что некоторые части разных сетей имеют одинаковую структуру, описывающую типичную, стереотипную ситуацию (например, ситуации под условными названиями "любовь" и "драка").
Структура, предназначенная для представления стереотипной ситуации, называется ФРЕЙМОМ (в переводе с английского языка - рамка, скелет, остов, т.е. то, на чем держится более сложная конструкция). Например, фрейм "встреча" характеризуется следующими необходимыми параметрами: инициатор (т.е. тот, кто назначил эту встречу), участник (тот, кто согласился встретиться), место встречи, время, характер (деловая, дружеская, любовная и т.д.).
Когда все эти параметры определены, то фрейм называют ФРЕЙМОМ-ПРИМЕРОМ. Это одна из многих встреч, отличительной чертой которой является ее конкретность, т.е. участие в ней конкретных людей, в определенном месте, в заданное время и с известной целью. Это, безусловно, знание и знание факта.
Обобщением многих фактов является ФРЕЙМ-ПРОТОТИП. Некоторые параметры этого фрейма не определены полностью и их предстоит еще выявить. Такие неопределенные параметры фрейма называют слотами - пустые места, которые необходимо заполнять для функционирования фрейма. Например, фрейм-прототип "соединение" (рис.24) отражает стереотипную ситуацию: "Субъект X соединяет объект Y с объектом Z способом W". Здесь значения переменных X, Y, Z, W, образующих слоты, сначала не определены и фиксируются, т.е. определяются в процессе взаимодействия фрейма со средой, например ,в процессе диалога компьютера с пользователем. Таким образом, фрейм-прототип характеризует структуру не полностью определенного знания, которое еще нужно получить и только потом использовать в виде семантической сети. Наличие слотов стимулирует активность компьютера по их заполнению, которое может быть интерпретировано как "познание" компьютером окружающего мира. Действительно, если знания компьютера представляются в виде семантической сети, то заполнение и составление ее естественно назвать компьютерным познанием (без кавычек).
Рис.24
- Ну-ка представьте мне, Поль, версию "Некто отравил Мари цианистым калием" в виде семантической сети.
- Очень просто. Здесь четыре вершины сети будут соответствовать четырем понятиям: "некто", "Мари", "цианистный калий" и "отравлять". Обозначим их цифрами 1, 2, 3 и 4 соответственно. Связи между этими вершинами определяются падежами действия (отношениями): "быть объектом действия", "быть агентом действия" и "быть средством действия", т.е. посредством чего совершается действие. В результате получаем такую семантическую сеть (рис.25,а).
Рис. 25
- А как эта версия будет записана в памяти машины?
- Очень просто:
вершины: 1 - НЕКТО; 2 - МАРИ; 3 - ЦИАНИСТЫЙ КАЛИЙ; 4 - ОТРАВЛЯТЬ;
ребра: (4, 2) - ОБЪЕКТ; (4, 1) - АГЕНТ; (4, 3) - СРЕДСТВО.
Здесь словами ОБЪЕКТ, АГЕНТ и СРЕДСТВО обозначены указанные выше падежи действия.
- Да, но в каждом отравлении есть объект, агент и средство, так стоит ли об этом говорить?
- Правильно. Надо в память машины ввести фрейм "отравление" (рис.25,б), где слоты X, У, Z могут заполняться определенными значениями в каждом конкретном случае. У нас: X = некто, Y = Мари, Z = цианистый калий.
- Но "некто" - это не определенное лицо. Это скорее слот, так как X не определен?- спросил Мегрэ.
- Вы правы, шеф. Это лишь фрейм-прототип, где значение X еще не определено. А фреймом-примером он станет лишь тогда, когда мы узнаем, кто это был.
А если Мари отравилась сама?
- Тогда X = Y = Мари и наш фрейм-пример имеет смысл "Мари отравилась", то же самое можно записать в виде семантической сети (рис.25,в), где Мари является и агентом (A), и объектом (O) действия.
- Если вы, Поль, так ловко записываете ситуацию, то представьте в виде сети слова из известной русской песенки "Маруся отравилась, везут в прием-покой".
- Для представления этой грустной ситуации не хватает данных, очень важных для компьютера: кто везет Марусю?
- Ну, положим, автомашина.
- Тогда семантическая сеть будет такой (рис.25,г). Здесь к известным падежам (отношениям) действия А и О (быть агентом и объектом) добавился третий: АД - "быть агентом действия", который связывает понятия "везти" и "прием-покой", т.е. определяет, куда направлено действие. Эта сеть интерпретируется так: "Маруся отравилась, авто везет ее в прием-покой". Смысл, как видите, сохранен, а "поэзия" (увы!) потерялась. Так бывает очень часто, когда мы "поверяем алгеброй гармонию".
- Бог с ней, с гармонией,- согласился Мегрэ.- Меня она в данный момент не волнует. Но что из того, что компьютер теперь что-то знает. Ведь и мы это знаем. И ничего нового при этом не произошло! Никакой новой для нас, людей, информации. Зачем все это нужно нам, сыщикам?
- Конечно, из того факта, что информация введена в компьютер, ничего не следует. При этом мы не только не приобретаем, но и теряем информацию (известно, что при всяком формальном преобразовании, а представление ситуации в виде семантической сети является формальной процедурой, информация может только потеряться, как потерялась поэзия в нашем примере с Марусей). Эта потеря неизбежна. Но при этом открываются две возможности, которых не было ранее.
Во-первых, если описываемая ситуация очень сложная, ее семантическая сеть имеет сотни или тысячи вершин-понятий, разобраться "старым способом" в ней очень трудно. Именно здесь может помочь компьютер. Например, имеем сеть различных знакомств большого числа людей с различными отношениями: "знаком", "хорошо знаком", "близко знаком", "дружит" и т.д. Как узнать возможности общения в такой группе? Через каких лиц может один из них обратиться к другому, незнакомому ему, с деликатной просьбой, передача которой возможна только по ребрам "близко знаком" или "дружит" в графе этой группы? Если группа мала, то это легко определить и без компьютера. А если это целый город? В этом случае без компьютера не обойтись. Но предварительно в его память следует ввести граф знакомств этой группы.
Во-вторых, формальность семантической сети позволяет манипулировать с ней формальными средствами. Например, как изменится ситуация, если предпринять какое-то действие. Ведь семантическая сеть не более чем модель, описывающая сложившуюся ситуацию. А располагая моделью, мы всегда можем определить (точнее, вычислить) ее реакцию на то или иное воздействие. И, если модель адекватна объекту, так же поведет себя и реальная ситуация при этих воздействиях. Более того, желая получить какую-то конкретную ситуацию, вы можете потребовать у компьютера рекомендаций, как поступить, чтобы получить то, что вы желаете, т.е. перевести исходную ситуацию в целевую.
- Исходная ситуация вам известна не хуже меня, Поль, а целевая - знать преступника. Что предложит вам компьютер?
- Пока ничего,- засмеялся Поль,- его еще следует начинить необходимой информацией, ввести в его память семантическую сеть сложившейся ситуации.
- Вот и займитесь этим, дружище.
- Слушаю, комиссар,- ответил Поль и проворчал что-то об энтузиастах, чья инициатива всегда наказывается.
Различные объекты (ситуации, явления и т.п.) описываются различными семантическими сетями - иначе мы бы их не различали. И тем не менее в этих описаниях есть нечто общее, похожее, стереотипное. Например, действия "любить" и "колотить" неизбежно вызывают целую цепочку естественных вопросов: "что и кого любит (колотит)?", "за что любит (колотит)?", "чем колотит?" и т.д. Очевидно, что любая семантическая сеть, содержащая эти действия, должна иметь ответы на эти вопросы. Это значит, что некоторые части разных сетей имеют одинаковую структуру, описывающую типичную, стереотипную ситуацию (например, ситуации под условными названиями "любовь" и "драка").
Структура, предназначенная для представления стереотипной ситуации, называется ФРЕЙМОМ (в переводе с английского языка - рамка, скелет, остов, т.е. то, на чем держится более сложная конструкция). Например, фрейм "встреча" характеризуется следующими необходимыми параметрами: инициатор (т.е. тот, кто назначил эту встречу), участник (тот, кто согласился встретиться), место встречи, время, характер (деловая, дружеская, любовная и т.д.).
Когда все эти параметры определены, то фрейм называют ФРЕЙМОМ-ПРИМЕРОМ. Это одна из многих встреч, отличительной чертой которой является ее конкретность, т.е. участие в ней конкретных людей, в определенном месте, в заданное время и с известной целью. Это, безусловно, знание и знание факта.
Обобщением многих фактов является ФРЕЙМ-ПРОТОТИП. Некоторые параметры этого фрейма не определены полностью и их предстоит еще выявить. Такие неопределенные параметры фрейма называют слотами - пустые места, которые необходимо заполнять для функционирования фрейма. Например, фрейм-прототип "соединение" (рис.24) отражает стереотипную ситуацию: "Субъект X соединяет объект Y с объектом Z способом W". Здесь значения переменных X, Y, Z, W, образующих слоты, сначала не определены и фиксируются, т.е. определяются в процессе взаимодействия фрейма со средой, например ,в процессе диалога компьютера с пользователем. Таким образом, фрейм-прототип характеризует структуру не полностью определенного знания, которое еще нужно получить и только потом использовать в виде семантической сети. Наличие слотов стимулирует активность компьютера по их заполнению, которое может быть интерпретировано как "познание" компьютером окружающего мира. Действительно, если знания компьютера представляются в виде семантической сети, то заполнение и составление ее естественно назвать компьютерным познанием (без кавычек).
Рис.24
- Ну-ка представьте мне, Поль, версию "Некто отравил Мари цианистым калием" в виде семантической сети.
- Очень просто. Здесь четыре вершины сети будут соответствовать четырем понятиям: "некто", "Мари", "цианистный калий" и "отравлять". Обозначим их цифрами 1, 2, 3 и 4 соответственно. Связи между этими вершинами определяются падежами действия (отношениями): "быть объектом действия", "быть агентом действия" и "быть средством действия", т.е. посредством чего совершается действие. В результате получаем такую семантическую сеть (рис.25,а).
Рис. 25
- А как эта версия будет записана в памяти машины?
- Очень просто:
вершины: 1 - НЕКТО; 2 - МАРИ; 3 - ЦИАНИСТЫЙ КАЛИЙ; 4 - ОТРАВЛЯТЬ;
ребра: (4, 2) - ОБЪЕКТ; (4, 1) - АГЕНТ; (4, 3) - СРЕДСТВО.
Здесь словами ОБЪЕКТ, АГЕНТ и СРЕДСТВО обозначены указанные выше падежи действия.
- Да, но в каждом отравлении есть объект, агент и средство, так стоит ли об этом говорить?
- Правильно. Надо в память машины ввести фрейм "отравление" (рис.25,б), где слоты X, У, Z могут заполняться определенными значениями в каждом конкретном случае. У нас: X = некто, Y = Мари, Z = цианистый калий.
- Но "некто" - это не определенное лицо. Это скорее слот, так как X не определен?- спросил Мегрэ.
- Вы правы, шеф. Это лишь фрейм-прототип, где значение X еще не определено. А фреймом-примером он станет лишь тогда, когда мы узнаем, кто это был.
А если Мари отравилась сама?
- Тогда X = Y = Мари и наш фрейм-пример имеет смысл "Мари отравилась", то же самое можно записать в виде семантической сети (рис.25,в), где Мари является и агентом (A), и объектом (O) действия.
- Если вы, Поль, так ловко записываете ситуацию, то представьте в виде сети слова из известной русской песенки "Маруся отравилась, везут в прием-покой".
- Для представления этой грустной ситуации не хватает данных, очень важных для компьютера: кто везет Марусю?
- Ну, положим, автомашина.
- Тогда семантическая сеть будет такой (рис.25,г). Здесь к известным падежам (отношениям) действия А и О (быть агентом и объектом) добавился третий: АД - "быть агентом действия", который связывает понятия "везти" и "прием-покой", т.е. определяет, куда направлено действие. Эта сеть интерпретируется так: "Маруся отравилась, авто везет ее в прием-покой". Смысл, как видите, сохранен, а "поэзия" (увы!) потерялась. Так бывает очень часто, когда мы "поверяем алгеброй гармонию".
- Бог с ней, с гармонией,- согласился Мегрэ.- Меня она в данный момент не волнует. Но что из того, что компьютер теперь что-то знает. Ведь и мы это знаем. И ничего нового при этом не произошло! Никакой новой для нас, людей, информации. Зачем все это нужно нам, сыщикам?
- Конечно, из того факта, что информация введена в компьютер, ничего не следует. При этом мы не только не приобретаем, но и теряем информацию (известно, что при всяком формальном преобразовании, а представление ситуации в виде семантической сети является формальной процедурой, информация может только потеряться, как потерялась поэзия в нашем примере с Марусей). Эта потеря неизбежна. Но при этом открываются две возможности, которых не было ранее.
Во-первых, если описываемая ситуация очень сложная, ее семантическая сеть имеет сотни или тысячи вершин-понятий, разобраться "старым способом" в ней очень трудно. Именно здесь может помочь компьютер. Например, имеем сеть различных знакомств большого числа людей с различными отношениями: "знаком", "хорошо знаком", "близко знаком", "дружит" и т.д. Как узнать возможности общения в такой группе? Через каких лиц может один из них обратиться к другому, незнакомому ему, с деликатной просьбой, передача которой возможна только по ребрам "близко знаком" или "дружит" в графе этой группы? Если группа мала, то это легко определить и без компьютера. А если это целый город? В этом случае без компьютера не обойтись. Но предварительно в его память следует ввести граф знакомств этой группы.
Во-вторых, формальность семантической сети позволяет манипулировать с ней формальными средствами. Например, как изменится ситуация, если предпринять какое-то действие. Ведь семантическая сеть не более чем модель, описывающая сложившуюся ситуацию. А располагая моделью, мы всегда можем определить (точнее, вычислить) ее реакцию на то или иное воздействие. И, если модель адекватна объекту, так же поведет себя и реальная ситуация при этих воздействиях. Более того, желая получить какую-то конкретную ситуацию, вы можете потребовать у компьютера рекомендаций, как поступить, чтобы получить то, что вы желаете, т.е. перевести исходную ситуацию в целевую.
- Исходная ситуация вам известна не хуже меня, Поль, а целевая - знать преступника. Что предложит вам компьютер?
- Пока ничего,- засмеялся Поль,- его еще следует начинить необходимой информацией, ввести в его память семантическую сеть сложившейся ситуации.
- Вот и займитесь этим, дружище.
- Слушаю, комиссар,- ответил Поль и проворчал что-то об энтузиастах, чья инициатива всегда наказывается.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Растригин. С компьютером наедине. 1990
13. ИНТЕЛЛЕКТУАЛЬНЫЙ ЯЗЫК
(ЯЗЫКИ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА)
ПРОЦЕДУРНЫЕ И ДЕКЛАРАТИВНЫЕ ЗНАНИЯ
Процедурное знание - это знание о том, как достичь каких-то целей, знание процедур, позволяющих добиваться заданных целей, а декларативное - это знание о том, что есть что, т.е. декларация, указывающая "что это такое?". Например, умение изготовить салат или сложить два числа является процедурным знанием, а сведения о том, что такое "салат" или что такое "сложение", являются декларативными. В алгоритмических языках всегда необходимо прибегать к декларации при определении переменных, например Х = integer означает, что X - целое число, а Y = геаl, что Y - действительное.
Для описания знаний, необходимых для "интеллектуальной" работы компьютера, разработаны специальные языки, позволяющие представлять различные аспекты знания - факты, отношения, процедуры и т.д. Эти языки отличаются от алгоритмических (они рассмотрены в гл.5) тем, что имеют средства для декларативного описания объектов. Если процедурные языки (Фортран, Алгол, Паскаль и т.д.) позволяют описывать преимущественно процедуры, то декларативные языки - объекты. Рассмотрим наиболее типичный декларативный язык.
(ЯЗЫКИ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА)
ПРОЦЕДУРНЫЕ И ДЕКЛАРАТИВНЫЕ ЗНАНИЯ
Процедурное знание - это знание о том, как достичь каких-то целей, знание процедур, позволяющих добиваться заданных целей, а декларативное - это знание о том, что есть что, т.е. декларация, указывающая "что это такое?". Например, умение изготовить салат или сложить два числа является процедурным знанием, а сведения о том, что такое "салат" или что такое "сложение", являются декларативными. В алгоритмических языках всегда необходимо прибегать к декларации при определении переменных, например Х = integer означает, что X - целое число, а Y = геаl, что Y - действительное.
Для описания знаний, необходимых для "интеллектуальной" работы компьютера, разработаны специальные языки, позволяющие представлять различные аспекты знания - факты, отношения, процедуры и т.д. Эти языки отличаются от алгоритмических (они рассмотрены в гл.5) тем, что имеют средства для декларативного описания объектов. Если процедурные языки (Фортран, Алгол, Паскаль и т.д.) позволяют описывать преимущественно процедуры, то декларативные языки - объекты. Рассмотрим наиболее типичный декларативный язык.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Растригин. С компьютером наедине. 1990
ПРОЛОГ
Этот язык был реализован в 1971г. в Марсельском университете (Франция) для логического программирования (PROLOG = PROgramming LOCig). Теоретическую основу этого языка разработал Р.Ковальский. Программирование на языке Пролог состоит из трех действий:
- задание фактов, относящихся к объектам, и отношений между объектами (это по сути дела база данных, с помощью которой описываются объекты и их отношения);
- задание правил манипулирования объектами и отношениями;
- постановка вопроса относительно объектов и их отношений.
Начнем с одночленного отношения "объект a имеет свойство b". Оно записывается на Прологе в виде b(a). Например, факт "Пушкин - русский" записывается в виде русский (пушкин), т.е. объект "Пушкин" (это объект a) имеет свойство "быть русским" (это свойство b). Отметим, что прописные буквы в Прологе используются только для переменных, а конкретные имена, даже собственные, пишутся строчными буквами, что непривычно.
Двучленное отношение "объект a имеет свойство b по отношению к объекту c", определяющее отношение между двумя объектами, записывается в виде b(a, c). Факт "Пушкин - автор "Евгения Онегина"", являющийся отношением авторства между Пушкиным и его произведением, записывается так: автор (пушкин, евгений Онегин), т.е. объект "Пушкин" по отношению к объекту "Евгений Онегин" имеет свойство "быть автором".
Теперь можно записать следующую программу на Прологе:
русский (пушкин)
англичанин (шекспир)
автор (пушкин, евгений Онегин)
автор (шекспир, отелло)
В этой программе декларируются следующие известные факты: Пушкин - русский, а Шекспир - англичанин, Пушкин - автор "Евгения Онегина", а Шекспир написал "Отелло". Эта программа является базой данных, а не знаний, как это может показаться с первого взгляда. Действительно, для нас, людей, это база знаний, так как нам известно, кто такой был Пушкин, что такое иметь национальность и что значит быть автором какого-то произведения. Для компьютера же это не более чем какие-то слова, расположенные в определенном порядке, т.е. данные, смысл которых неизвестен компьютеру.
Итак, имеем базу данных. Чтобы воспользоваться этими данными, необходимо иметь возможность получать ответы на вопросы, возникающие по поводу информации, записанной в базе данных. В Прологе такая возможность есть.
Вопрос в Прологе начинается со знака вопроса. Например, вопрос "Какой объект имеет по отношению к объекту c свойство b?" (здесь c и b - конкретные имена объекта и свойства) записывается в виде
?- b{X, с)
где X обозначает искомое неизвестное переменное. Например, вопрос "Кто автор "Отелло"?" (или, точнее, кто имеет свойство "быть автором" по отношению к объекту "Отелло"?) программируется на Прологе так:
?- автор (X, отелло)
Ответ компьютера на этот вопрос:
X = шекспир
А в ответ на вопрос "является ли Шекспир автором "Евгения Онегина"? или на Прологе:
?- автор (шекспир, евгений Онегин)
получим ответ "нет".
Если хотим узнать, что написал Пушкин, следует задать вопрос в виде
?- автор (пушкин, X)
На что получим ответ:
X = евгений онегин
Не следует удивляться такой односложности ответа - в базу данных, к которой мы обращались, было заложено лишь название этого романа. Если бы базу данных расширить сведениями о других произведениях Пушкина, то компьютер выдал бы все, чем располагает.
Вопросы в Прологе можно задавать только относительно объектов, а не отношений. Так, интересуясь национальностью автора "Отелло", нельзя задать вопрос
?- X(Y), автор (Y, отелло)
здесь переменной X является отношение, что запрещено в Прологе. Чтобы все-таки получать ответы на такие вопросы, нужно искомое отношение сделать объектом - вместо отношения "иметь национальность" ввести объект "национальность". Для этого удобно ввести отношение "явл" (является):
явл (a, b)
которое выражает факт, что "a является b". Например, факт "Тургенев - русский" (точнее, "Тургенев является русским") можно записать в виде
явл (Тургенев, русский)
Теперь можно записать следующие факты на Прологе:
явл (пушкин, русский)
явл (шекспир, англичанин)
явл (тургенев, русский)
явл (диккенс, англичанин)
автор (пушкин, евгений Онегин)
автор (Тургенев, отцы и дети)
автор (шекспир, отелло)
Можно задать вопрос о национальности автора "Евгения Онегина":
?- автор (X, евгений Онегин), явл (X, Y)
Здесь пришлось ввести дополнительную неизвестную X (фамилия автора), которая нас не интересует, но нужна для формулировки вопроса. В результате получим избыточный ответ:
X = пушкин
Y = русский
Если хотим задать вопросы о соотечественниках, следует ввести отношение "соот" (соотечественник):
соот (a, b)
которое означает, что a является соотечественником b, и дополнить базу данных очевидными фактами:
соот (пушкин, Тургенев)
соот (шекспир, диккенс)
Но можно поступить по-другому. Определить отношение соот (X, Y) через уже заданные. Действительно, если два человека имеют одну национальность, то они соотечественники и поэтому из того, что
явл (X, Z), явл (Y, Z)
т.е. X и Y имеют одну национальность Z, следует, что X и Y - соотечественники;
соот (X, Y)
Следовательно, это отношение связано с отношением "явл". Эта связь в Прологе записывается следующим образом:
соот (X, Y) :- явл (X, Z), явл (Y, Z)
(Пусть читатель не придирается к этому не вполне строгому определению, которое, вообще говоря, расходится с понятием соотечественника как лица, имеющего с кем-то одно отечество, а не национальность).
Теперь к базе данных, дополненной этим отношением, можно обратиться с вопросами, требующими логического вывода:
?- соот (пушкин, шекспир)
?- соот (пушкин, тургенев)
Являются ли Пушкин и Шекспир соотечественниками? А Пушкин и Тургенев? Ответы на эти вопросы выводятся путем соответствующих логических преобразований. На первый будет получен ответ "нет", а на второй "да".
Как видно, на Прологе легко создать базу данных в виде отношений между объектами, вводить новые отношения и задавать любые вопросы, ответы на которые могут содержаться в базе данных. При этом не нужно программировать сам процесс вывода ответа - он уже заложен в языке Пролог.
А вот вычислять на Прологе очень сложно: он для этого не предназначен. Например, чтобы сложить два целых числа, x и y, и получить их сумму z = x+y, надо ввести трехчленное отношение "сум" - суммирование в виде
сум (X, Y, Z)
и записать в базу данных все возможные варианты суммы, которые могут встретиться в работе:
сум (1, 1, 2)
сум (1, 2, 3)
сум (2, 2, 4)
...
Теперь к компьютеру можно обращаться с вопросами о сумме двух чисел:
?- сум (a, b, X)
и получать ответ Х = 3, если a=1 и b = 2. Но, например, на вопрос:
?- сум (2, 1, X)
будет ответ "нет", если отношение сум (2, 1, 3) не заложено в базу. Если же правило коммутативности сложения x+y=y+х заложить в базу в виде определения
сум (X, Y, Z) :- сум (Y, X, Z)
то компьютер справится с этой задачей.
Конечно же, это очень неудобно, и при большом количестве вычислений Пролог расширяют специальными вычислительными процедурами типа тех, которые используются в процедурных языках, например в Фортране.
Рассмотрим примеры правил преобразования данных. Пусть объектами являются аналитические выражения, например полиномы. Тогда можно ввести отношение упр (X, Y), которое означает, что выражение Y является упрощением выражения X, что и позволяет упрощать аналитические выражения. Но для этого нужно определить дополнительные правила манипулирования. Например, так:
упр (X*1, X)
упр (1*X, X)
упр (X*0, 0)
упр (0*X, 0)
что выражает очевидные соотношения: X*1=1*X=X и X*0=0*X=0. Теперь, если в процессе вывода встретится выражение X*1, оно будет немедленно заменено на X, т.е. упрощено.
Этот язык был реализован в 1971г. в Марсельском университете (Франция) для логического программирования (PROLOG = PROgramming LOCig). Теоретическую основу этого языка разработал Р.Ковальский. Программирование на языке Пролог состоит из трех действий:
- задание фактов, относящихся к объектам, и отношений между объектами (это по сути дела база данных, с помощью которой описываются объекты и их отношения);
- задание правил манипулирования объектами и отношениями;
- постановка вопроса относительно объектов и их отношений.
Начнем с одночленного отношения "объект a имеет свойство b". Оно записывается на Прологе в виде b(a). Например, факт "Пушкин - русский" записывается в виде русский (пушкин), т.е. объект "Пушкин" (это объект a) имеет свойство "быть русским" (это свойство b). Отметим, что прописные буквы в Прологе используются только для переменных, а конкретные имена, даже собственные, пишутся строчными буквами, что непривычно.
Двучленное отношение "объект a имеет свойство b по отношению к объекту c", определяющее отношение между двумя объектами, записывается в виде b(a, c). Факт "Пушкин - автор "Евгения Онегина"", являющийся отношением авторства между Пушкиным и его произведением, записывается так: автор (пушкин, евгений Онегин), т.е. объект "Пушкин" по отношению к объекту "Евгений Онегин" имеет свойство "быть автором".
Теперь можно записать следующую программу на Прологе:
русский (пушкин)
англичанин (шекспир)
автор (пушкин, евгений Онегин)
автор (шекспир, отелло)
В этой программе декларируются следующие известные факты: Пушкин - русский, а Шекспир - англичанин, Пушкин - автор "Евгения Онегина", а Шекспир написал "Отелло". Эта программа является базой данных, а не знаний, как это может показаться с первого взгляда. Действительно, для нас, людей, это база знаний, так как нам известно, кто такой был Пушкин, что такое иметь национальность и что значит быть автором какого-то произведения. Для компьютера же это не более чем какие-то слова, расположенные в определенном порядке, т.е. данные, смысл которых неизвестен компьютеру.
Итак, имеем базу данных. Чтобы воспользоваться этими данными, необходимо иметь возможность получать ответы на вопросы, возникающие по поводу информации, записанной в базе данных. В Прологе такая возможность есть.
Вопрос в Прологе начинается со знака вопроса. Например, вопрос "Какой объект имеет по отношению к объекту c свойство b?" (здесь c и b - конкретные имена объекта и свойства) записывается в виде
?- b{X, с)
где X обозначает искомое неизвестное переменное. Например, вопрос "Кто автор "Отелло"?" (или, точнее, кто имеет свойство "быть автором" по отношению к объекту "Отелло"?) программируется на Прологе так:
?- автор (X, отелло)
Ответ компьютера на этот вопрос:
X = шекспир
А в ответ на вопрос "является ли Шекспир автором "Евгения Онегина"? или на Прологе:
?- автор (шекспир, евгений Онегин)
получим ответ "нет".
Если хотим узнать, что написал Пушкин, следует задать вопрос в виде
?- автор (пушкин, X)
На что получим ответ:
X = евгений онегин
Не следует удивляться такой односложности ответа - в базу данных, к которой мы обращались, было заложено лишь название этого романа. Если бы базу данных расширить сведениями о других произведениях Пушкина, то компьютер выдал бы все, чем располагает.
Вопросы в Прологе можно задавать только относительно объектов, а не отношений. Так, интересуясь национальностью автора "Отелло", нельзя задать вопрос
?- X(Y), автор (Y, отелло)
здесь переменной X является отношение, что запрещено в Прологе. Чтобы все-таки получать ответы на такие вопросы, нужно искомое отношение сделать объектом - вместо отношения "иметь национальность" ввести объект "национальность". Для этого удобно ввести отношение "явл" (является):
явл (a, b)
которое выражает факт, что "a является b". Например, факт "Тургенев - русский" (точнее, "Тургенев является русским") можно записать в виде
явл (Тургенев, русский)
Теперь можно записать следующие факты на Прологе:
явл (пушкин, русский)
явл (шекспир, англичанин)
явл (тургенев, русский)
явл (диккенс, англичанин)
автор (пушкин, евгений Онегин)
автор (Тургенев, отцы и дети)
автор (шекспир, отелло)
Можно задать вопрос о национальности автора "Евгения Онегина":
?- автор (X, евгений Онегин), явл (X, Y)
Здесь пришлось ввести дополнительную неизвестную X (фамилия автора), которая нас не интересует, но нужна для формулировки вопроса. В результате получим избыточный ответ:
X = пушкин
Y = русский
Если хотим задать вопросы о соотечественниках, следует ввести отношение "соот" (соотечественник):
соот (a, b)
которое означает, что a является соотечественником b, и дополнить базу данных очевидными фактами:
соот (пушкин, Тургенев)
соот (шекспир, диккенс)
Но можно поступить по-другому. Определить отношение соот (X, Y) через уже заданные. Действительно, если два человека имеют одну национальность, то они соотечественники и поэтому из того, что
явл (X, Z), явл (Y, Z)
т.е. X и Y имеют одну национальность Z, следует, что X и Y - соотечественники;
соот (X, Y)
Следовательно, это отношение связано с отношением "явл". Эта связь в Прологе записывается следующим образом:
соот (X, Y) :- явл (X, Z), явл (Y, Z)
(Пусть читатель не придирается к этому не вполне строгому определению, которое, вообще говоря, расходится с понятием соотечественника как лица, имеющего с кем-то одно отечество, а не национальность).
Теперь к базе данных, дополненной этим отношением, можно обратиться с вопросами, требующими логического вывода:
?- соот (пушкин, шекспир)
?- соот (пушкин, тургенев)
Являются ли Пушкин и Шекспир соотечественниками? А Пушкин и Тургенев? Ответы на эти вопросы выводятся путем соответствующих логических преобразований. На первый будет получен ответ "нет", а на второй "да".
Как видно, на Прологе легко создать базу данных в виде отношений между объектами, вводить новые отношения и задавать любые вопросы, ответы на которые могут содержаться в базе данных. При этом не нужно программировать сам процесс вывода ответа - он уже заложен в языке Пролог.
А вот вычислять на Прологе очень сложно: он для этого не предназначен. Например, чтобы сложить два целых числа, x и y, и получить их сумму z = x+y, надо ввести трехчленное отношение "сум" - суммирование в виде
сум (X, Y, Z)
и записать в базу данных все возможные варианты суммы, которые могут встретиться в работе:
сум (1, 1, 2)
сум (1, 2, 3)
сум (2, 2, 4)
...
Теперь к компьютеру можно обращаться с вопросами о сумме двух чисел:
?- сум (a, b, X)
и получать ответ Х = 3, если a=1 и b = 2. Но, например, на вопрос:
?- сум (2, 1, X)
будет ответ "нет", если отношение сум (2, 1, 3) не заложено в базу. Если же правило коммутативности сложения x+y=y+х заложить в базу в виде определения
сум (X, Y, Z) :- сум (Y, X, Z)
то компьютер справится с этой задачей.
Конечно же, это очень неудобно, и при большом количестве вычислений Пролог расширяют специальными вычислительными процедурами типа тех, которые используются в процедурных языках, например в Фортране.
Рассмотрим примеры правил преобразования данных. Пусть объектами являются аналитические выражения, например полиномы. Тогда можно ввести отношение упр (X, Y), которое означает, что выражение Y является упрощением выражения X, что и позволяет упрощать аналитические выражения. Но для этого нужно определить дополнительные правила манипулирования. Например, так:
упр (X*1, X)
упр (1*X, X)
упр (X*0, 0)
упр (0*X, 0)
что выражает очевидные соотношения: X*1=1*X=X и X*0=0*X=0. Теперь, если в процессе вывода встретится выражение X*1, оно будет немедленно заменено на X, т.е. упрощено.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Растригин. С компьютером наедине. 1990
ЛИСП
Этот язык в начале 60-х годов был разработан в США под руководством известного ученого Дж.Маккарти специально для обработки символьной информации, в частности текстов на естественном языке. Например, для управления сложной системой, где информация задается фразами на английском языке. Лисп нашел свое применение для решения логических задач и в настоящее время широко используется для решения задач искусственного интеллекта.
Лисп является языком обработки списков. Под СПИСКОМ понимается любой текст (в широком смысле), состоящий из атомов и подсписков. Например, АТОМАМИ являются выражения ALMA, 523, СТОЛ, D35TZ и т.д., которые не могут быть разделены на свои части - на то они и атомы. ПОДСПИСКОМ является любая часть списка, состоящая из атомов или более мелких подсписков. Все списки и подсписки в отличие от атомов заключаются в круглые скобки. Например:
(КОМПЬЮТЕР РЕШАЕТ ЗАДАЧУ Д36)
(THIS IS (A LIST)))
(ПОЛОЖИ (КАРАНДАШ) (НА СТОЛ))
Первый список состоит из одного подсписка - самого себя или из четырех атомов, второй - из двух атомов и подсписка, а третий - из двух подсписков (карандаш) и (на стол) и одного атома (положи); второй подсписок состоит из двух атомов (на) и (стол).
В языке Лисп роль операторов выполняют функции, с помощью которых и происходит обработка символьной информации. Приведем примеры наиболее распространенных функций Лиспа.
Функция CAR(X) выделяет первый элемент списка (X), к которому она применяется, например если (X) = (ДЕТАЛИ ПОДАЮТСЯ НА КОНВЕЙЕР), то
(CAR Х) = (ДЕТАЛИ)
- это и есть значение, которое принимает функция CAR на списке X.
Функция CDR(X) выделяет остаток списка (X), которое получается при вычеркивании первого элемента списка (X). Продолжая пример того же списка (X), получаем:
(CDR X) = (ПОДАЮТСЯ НА КОНВЕЙЕР),
Как видно, обе эти функции дополняют друг друга.
Функция CONS объединяет списки (X) и (Y) в один. Например, если (X) = (ДЕТАЛИ), (Y) = (В СБОРКЕ), то
(CONS X Y) = (ДЕТАЛИ В СБОРКЕ)
Частным случаем символа является число. Для обработки числовой информации в Лиспе есть специальные функции. Так, операции сложения и умножения реализуются функциями PLUS и TIMES. Например, выражение (PLUS X Y) дает сумму X+Y, а (TIMES X Y) -произведение X*Y.
Переменные и константы в Лиспе являются атомами. Роль оператора присваивания здесь играет функция SETQ. Например, выражение
(SETQ X 8 )
присваивает переменной X значение 8, т.е. получаем X=8. Программа на Лиспе выполняется последовательно, в порядке следования записей, который может нарушаться оператором безусловного перехода по метке (GO M), где М - метка функции, к которой следует перейти (как в Фортране к оператору), и функцией условного перехода (COND X Y). Эта функция имеет в качестве аргументов два списка. В первом (X) формулируются условия, которые необходимо проверить. А во втором (Y) описывается то, что следует сделать, если эти условия выполнены (при их невыполнении следует обращаться к следующей в программе функции).
Проиллюстрируем, как на языке Лисп может быть определена сумма заданных чисел. Эти числа в памяти хранятся в виде списка, например
X = (56 83 0.37 17)
Этот язык в начале 60-х годов был разработан в США под руководством известного ученого Дж.Маккарти специально для обработки символьной информации, в частности текстов на естественном языке. Например, для управления сложной системой, где информация задается фразами на английском языке. Лисп нашел свое применение для решения логических задач и в настоящее время широко используется для решения задач искусственного интеллекта.
Лисп является языком обработки списков. Под СПИСКОМ понимается любой текст (в широком смысле), состоящий из атомов и подсписков. Например, АТОМАМИ являются выражения ALMA, 523, СТОЛ, D35TZ и т.д., которые не могут быть разделены на свои части - на то они и атомы. ПОДСПИСКОМ является любая часть списка, состоящая из атомов или более мелких подсписков. Все списки и подсписки в отличие от атомов заключаются в круглые скобки. Например:
(КОМПЬЮТЕР РЕШАЕТ ЗАДАЧУ Д36)
(THIS IS (A LIST)))
(ПОЛОЖИ (КАРАНДАШ) (НА СТОЛ))
Первый список состоит из одного подсписка - самого себя или из четырех атомов, второй - из двух атомов и подсписка, а третий - из двух подсписков (карандаш) и (на стол) и одного атома (положи); второй подсписок состоит из двух атомов (на) и (стол).
В языке Лисп роль операторов выполняют функции, с помощью которых и происходит обработка символьной информации. Приведем примеры наиболее распространенных функций Лиспа.
Функция CAR(X) выделяет первый элемент списка (X), к которому она применяется, например если (X) = (ДЕТАЛИ ПОДАЮТСЯ НА КОНВЕЙЕР), то
(CAR Х) = (ДЕТАЛИ)
- это и есть значение, которое принимает функция CAR на списке X.
Функция CDR(X) выделяет остаток списка (X), которое получается при вычеркивании первого элемента списка (X). Продолжая пример того же списка (X), получаем:
(CDR X) = (ПОДАЮТСЯ НА КОНВЕЙЕР),
Как видно, обе эти функции дополняют друг друга.
Функция CONS объединяет списки (X) и (Y) в один. Например, если (X) = (ДЕТАЛИ), (Y) = (В СБОРКЕ), то
(CONS X Y) = (ДЕТАЛИ В СБОРКЕ)
Частным случаем символа является число. Для обработки числовой информации в Лиспе есть специальные функции. Так, операции сложения и умножения реализуются функциями PLUS и TIMES. Например, выражение (PLUS X Y) дает сумму X+Y, а (TIMES X Y) -произведение X*Y.
Переменные и константы в Лиспе являются атомами. Роль оператора присваивания здесь играет функция SETQ. Например, выражение
(SETQ X 8 )
присваивает переменной X значение 8, т.е. получаем X=8. Программа на Лиспе выполняется последовательно, в порядке следования записей, который может нарушаться оператором безусловного перехода по метке (GO M), где М - метка функции, к которой следует перейти (как в Фортране к оператору), и функцией условного перехода (COND X Y). Эта функция имеет в качестве аргументов два списка. В первом (X) формулируются условия, которые необходимо проверить. А во втором (Y) описывается то, что следует сделать, если эти условия выполнены (при их невыполнении следует обращаться к следующей в программе функции).
Проиллюстрируем, как на языке Лисп может быть определена сумма заданных чисел. Эти числа в памяти хранятся в виде списка, например
X = (56 83 0.37 17)
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Растригин. С компьютером наедине. 1990
НАПИШЕМ ЛИСП-ПРОГРАММУ СУММИРОВАНИЯ И ПРОКОММЕНТИРУЕМ ЕЕ:
(SETQ S0) 'S:=0
A (SETQ S (PLUS S (CAR X))) 'S:=S+(CAR X) - прибавление к S
первого элемента (атома) списка X. А - метка
(SETQ X (CDR X)) 'Список (X) превращается в список, укороченный на первый атом
(COND (NULL X) (GO B)) 'Если список (X) пустой, т.е. X = NULL, то перейти по метке B, в противном случае - к следующему оператору
(GO A) B 'Перейти по метке A
B (PRINT S) 'Печатать значение S. В - метка
Здесь NULL означает пустое множество; если (NULL X) = T (истина), то (X) - пустой список.
Приведем примеры других арифметических функций Лиспа (их обычно называют примитивами):
ABSVAL - вычисление абсолютного значения;
ENTIER - вычисление целой части выражения;
ЕХРТ - вычисление значения одного аргумента, возведенного в степень другого аргумента;
RECIP - вычисление числа, обратного аргументу;
REMAINDER - вычисление остатка от деления двух аргументов (первый на второй);
МАХ - вычисление наибольшего из группы (списка) аргументов.
В Лиспе имеются операции над множествами. Так, оператор INTERSECTION выдает список всех элементов, общих для двух множеств, т.е. реализует операцию пересечения этих множеств (списков), a UNION - список элементов, каждый из которых принадлежит хотя бы одному из двух множеств (списков), т.е. реализует операцию объединения. Первый элемент списка в Лиспе интерпретируется как имя функции, а остальная его часть - как множество аргументов этой функции. Например, список (ЕХРТ X Y) вырабатывает число, равное X**Y, a (MAX 5 8 13 7)- число 13. Поэтому Лисп часто называют языком функций. Это означает, что каждая конструкция в Лиспе записывается и выполняется как функция, аргументами которой могут быть любые списки.
Лисп-программа представляет собой описание функций, определяемых пользователем через стандартные функции Лиспа (примитивы). Выполнение программы заключается в определении
значений введенных функций, результатом чего может быть тоже список.
В заключение отметим, что и Пролог, и Лисп являются признанными языками искусственного интеллекта, позволяющими решать невычислительные задачи, свойственные искусственному интеллекту. Трудно сказать, какой из них лучше для этих целей. Скорее всего для одних задач лучше - один, а для других - другой. Но так как Лисп родился в США, а Пролог - в Европе, то это и определило их преимущественное применение: Пролог в Европе (и Японии), а Лисп в США для любых задач искусственного интеллекта.
***
- Откровенно говоря,- задумчиво сказал Мегрэ,- мне кажется, что эти языки искусственного интеллекта не очень-то интеллектуальные. Они лишь позволяют обрабатывать информацию, представленную в виде фраз естественного языка, т.е. преобразовывать их из одной формы в другую. От интеллектуального языка я ждал большего. Ну, например, возможности выявлять новые связи, факты, обстоятельства - все то, что было неизвестно. Не так ли, Поль?
- Вы требуете невозможного, шеф,- улыбнулся Поль. - Ведь любой алгоритмический язык - это не более чем формальная система, способная лишь преобразовать информацию из одной формы в другую. И если в исходном тексте не было нужной вам новой информации, то никаким преобразованием этого текста ее получить нельзя. Совсем другое дело, если ситуация, описываемая этим текстом, очень сложна и при беглом знакомстве не позволяет получить то, что нужно и содержится в тексте. Именно для решения такого рода задач и придуманы языки искусственного интеллекта.
- Ну, что ж!- согласился Мегрэ,- именно это мне и нужно. Вот вам исходные тексты,- и он указал на кипы сообщений, полученных со всего света.- Покажите мне, как можно использовать язык искусственного интеллекта, чтобы получить (точнее, выявить) нужную мне информацию. Она там содержится, уверяю вас.
- Все не так просто,- грустно заметил Поль.- Ваши тексты записаны на естественном языке со всеми вытекающими отсюда неприятными последствиями [Они описаны выше, в гл.10].
- Но ведь языки искусственного интеллекта обрабатывают именно тексты, записанные на естественном языке,- удивился Мегрэ,- какие же "неприятные последствия" могут возникнуть?
- Здесь перед нами довольно неприятная дилемма. Если мы хотим формально работать с текстом на естественном языке, обрабатывать его с помощью языков искусственного интеллекта, то, чтобы преодолеть все трудности, связанные с его естественностью, нужно исходный текст преобразовать к формальному виду, с которым и будет работать программа. Так это делается при работе с Прологом. Например, чтобы факт "Мари отравилась" занести в базу данных (а это и есть формальная запись) необходимо ввести двухместное отношение "быть отравленным":
быть отравленным (a, b)
что означает "а отравил b". Тогда факт самоотравления Мари можно записать в виде "быть отравленным (мари, мари)". К сожалению, с помощью компьютера этого преобразования сделать нельзя. Здесь нужен человек, понимающий текст и владеющий приемами представления фактов в виде так называемых предикатов - это и есть те самые отношения, с которыми работает Пролог.
- А нельзя ли все-таки обойтись без предварительного неформального преобразования текста?- спросил Мегрэ и уныло взглянул на громадные кипы сообщений.
- Можно, это допускает Лисп. Но результат будет не очень интересен для того, кто хочет извлечь новую информацию. Например, с помощью Лиспа можно легко построить словарь текста, т.е. расположить все его слова в алфавитном порядке с указанием, сколько раз каждое слово встречалось в данном тексте. Эту задачу приходится часто решать при идентификации текста, т.е. отыскании его автора.
- Мне в данном случае интереснее Пролог. Выходит, что для работы с этим языком я должен сам ввести все отношения, которые есть в моем тексте, и переписать его в виде набора таких отношений?
- Да, хотя нельзя строго сказать, что в тексте априори есть определенные отношения. Это вы сами их вводите в зависимости от того, как понимаете текст.
- Выходит, что один и тот же текст я могу записать в предикатах по-разному?- изумился Мегрэ.
- Конечно! Например, если у вас нет сомнений, что Мари отравилась (сама), то естественно ввести отношение "отравиться". Это одноместный предикат вида
отравиться (a)
где a - имя того, кто отравился. Если же сомнения есть, то нужно использовать двухместный предикат "быть отравленным", который допускает возможность не только самоотравления.
- Ну, хорошо,- согласился Мегрэ.- А какие еще предикаты следует ввести для расследования нашего убийства или самоубийства?
- Их много. Например, можем всех персонажей нашего дела описать четырехместным отношением "персона" вида
персона (имя, возраст, пол, специальность)
Например, несчастную Мари в виде персона (мари, 18, женск., продавщица). Важен мотив убийства, если оно было. Тогда нужно ввести одноместный предикат "мотив" в виде
мотив (a),
где a может принимать значения: а = ревность, деньги, страх и т.д. Для описания любовной интриги естественно ввести отношение "иметь любовную связь". Очевидно, что оно двухместное:
иметь любовную связь (a, b)
где a и b - имена любовников. Чтобы описать орудие убийства и его владельца, если он не определен точно, нужно ввести двухместное отношение "вероятно владеет" в виде
вероятно владеет (a, b)
где a - имя того, кто владеет, a b - название орудия убийства (в нашем случае это цианистый калий)
Если есть сомнения относительно различных вариантов орудия убийства, то нужно вводить предикат идентичности их действия:
идентично действует (a, b)
где a и b - названия орудий, действие которых одинаково, например пистолет и автомат, которые имеют одинаковые пули.
- Хватит, достаточно,- улыбнулся Мегрэ,- мне все ясно. Нужно подробнейшим образом описать все взаимодействия всех возможных участников изучаемого преступления и все предметы, зафиксированные при этом и имеющие отношение к преступлению. Далее ввести предикат "быть убийцей" в виде
убийца (X)
где X - неизвестное имя убийцы из числа фигурирующих в деле "персон" и задать вопрос:
?- убийца (X)
- Не торопитесь, шеф. Если это отношение (быть убийцей) не связано с описанием ситуации, то ответа вы не получите. Нужно связать его с уликами, оставленными на месте преступления. Например, у убийцы 43-й размер обуви и он курит сигареты Кемел, что должно быть отражено введением отношений "курит" и "имеет размер обуви", а также расширить отношение "персона" данными о марке любимых сигарет и размере обуви:
персона (имя, возраст, пол, специальность, курит сигареты, размер обуви)
Именно эти отношения свяжут имя неизвестного убийцы с известными обстоятельствами, например, так:
персона (X, Y, мужск., Z, кемел, 43)
Только после этого можно будет задать ваш вопрос.
- И что, всегда будет получен ответ?- скептически спросил Мегрэ.
- Да, но он может быть различным. "Нет" - будет означать, что имя убийцы не выводится из исходных данных. Несколько имен в ответе означает, что исходных данных мало...
- А если имя одно, то это и есть наверняка имя убийцы?
- Не всегда. Ведь все зависит от истинности исходной информации. Здесь Пролог может ошибиться так же, как ошибается опытный следователь, если исходит из неправильных предпосылок. Это ведь, по сути дела, не ошибка, а неверная интерпретация исходных данных. Разные решения могут быть приняты Прологом и следователем при одинаковых исходных данных лишь в том случае, если следователь делает ошибочные заключения. Пролог же никогда не ошибается, если, разумеется, не ошибается компьютер, на котором реализуется программа Пролога.
- Неужели Вы, Поль, серьезно считаете, что Пролог действительно может заменить сыщика? - изумился Мегрэ.
- Ну, наверное, пока нет. И все потому, что сыщик располагает некоторой дополнительной информацией, которая пока недоступна машине. Это интуиция, предыдущий опыт, подозрения всякого рода и другая человеческая "дребедень", которую пока неизвестно, как вводить в память компьютера.
- Ага,- засмеялся Мегрэ,- вот вы и дали трещину, несчастный масленщик. Вы уже признаете, что сейчас пока не все человеческие функции можно передать компьютеру. А я уверен, что и всегда в мышлении человека найдется место, некомпьютеризуемое (простите за это ужасное слово). Здесь я опираюсь не на свою уверенность, в которую вы не поверите, а на известную теорему Геделя. Вы ведь наверняка знаете: в любой формальной системе можно сформулировать утверждение, которое нельзя ни подтвердить, ни опровергнуть, не выходя за рамки этой формальной системы. Так что компьютерное "мышление" всегда ограничено этой теоремой. Именно этим, например, отличается человек, будучи неформальной системой. И его решения, хотя и могут быть ошибочными в силу несовершества процесса мышления, но оно не ограничено по своим возможностям.
- Ну, что вы, шеф,- обиделся Поль,- речь ведь идет не о применении Пролога в следственной практике. Этого никто и не пытается делать. А сказанное лишь иллюстрация к языку, который нашел широкое применение для решения задач искусственного интеллекта.
- Для чего же в действительности применяется Пролог?- спросил Мегрэ.
- Ну, например, для создания интеллектуального интерфейса для прикладных программ.
- Что это такое?
- Прикладная программа, как известно, решает конкретную (прикладную) задачу пользователя. Например, имеются две пули, выпущенные из одного и того же пистолета. Нужно выяснить, которая из них была первой. Это, как известно, очень важно для выяснения, соблюдал ли полицейский инструкцию: стрелять сначала в воздух и только потом, если нападающий не остановился, в него. Вот именно эта, вынутая из тела пуля, должна быть второй, а не первой, как это бывает часто с перепуганными полицейскими.
- А как можно различить эти пули?- спросил Мегрэ.
- Вы знаете, что ствол пистолета смазан, и на первой пуле всегда нагар от масла чуть больше, чем на второй. Но эта разница столь назначительна, что уловить ее может лишь тщательный анализ на компьютере. Программа этого анализа и есть та самая прикладная программа, с которой вам придется иметь дело, решая эту задачу. Но чтобы она заработала, нужно ввести исходные данные о пулях. Для этого следует выполнить ряд довольно сложных и нудных операций с компьютером. Именно эту неприятную функцию выполняет программа интеллектуального интерфейса. Она находится как бы между вами и прикладной программой, именно поэтому ее и называют интерфейсом. Интеллектуальность ее в том, что она понимает вас - непрограммирующего пользователя, который общается с ней на языке, очень близком к естественному. Но для того, чтобы понимать, она должна иметь модель той предметной области, в которой решается задача. Ведь именно на языке этой предметной области и происходит общение пользователя с компьютером. В примере с пулями эта предметная область определяется понятиями: пуля, первая, нагар и многими другими, а также отношениями между ними. Именно это и записывается в виде предикатов на языке Пролог. Так что программа интерфейса становится интеллектуальной, только если есть модель предметной области, для описания которой и используется язык Пролог.
- Что ж, это понятно. И в подтверждение того, что я действительно понял, позвольте высказаться на Прологе:
быть благодарным (мегрэ, поль)
где я ввел очевидный двухместный предикат благодарности.
(SETQ S0) 'S:=0
A (SETQ S (PLUS S (CAR X))) 'S:=S+(CAR X) - прибавление к S
первого элемента (атома) списка X. А - метка
(SETQ X (CDR X)) 'Список (X) превращается в список, укороченный на первый атом
(COND (NULL X) (GO B)) 'Если список (X) пустой, т.е. X = NULL, то перейти по метке B, в противном случае - к следующему оператору
(GO A) B 'Перейти по метке A
B (PRINT S) 'Печатать значение S. В - метка
Здесь NULL означает пустое множество; если (NULL X) = T (истина), то (X) - пустой список.
Приведем примеры других арифметических функций Лиспа (их обычно называют примитивами):
ABSVAL - вычисление абсолютного значения;
ENTIER - вычисление целой части выражения;
ЕХРТ - вычисление значения одного аргумента, возведенного в степень другого аргумента;
RECIP - вычисление числа, обратного аргументу;
REMAINDER - вычисление остатка от деления двух аргументов (первый на второй);
МАХ - вычисление наибольшего из группы (списка) аргументов.
В Лиспе имеются операции над множествами. Так, оператор INTERSECTION выдает список всех элементов, общих для двух множеств, т.е. реализует операцию пересечения этих множеств (списков), a UNION - список элементов, каждый из которых принадлежит хотя бы одному из двух множеств (списков), т.е. реализует операцию объединения. Первый элемент списка в Лиспе интерпретируется как имя функции, а остальная его часть - как множество аргументов этой функции. Например, список (ЕХРТ X Y) вырабатывает число, равное X**Y, a (MAX 5 8 13 7)- число 13. Поэтому Лисп часто называют языком функций. Это означает, что каждая конструкция в Лиспе записывается и выполняется как функция, аргументами которой могут быть любые списки.
Лисп-программа представляет собой описание функций, определяемых пользователем через стандартные функции Лиспа (примитивы). Выполнение программы заключается в определении
значений введенных функций, результатом чего может быть тоже список.
В заключение отметим, что и Пролог, и Лисп являются признанными языками искусственного интеллекта, позволяющими решать невычислительные задачи, свойственные искусственному интеллекту. Трудно сказать, какой из них лучше для этих целей. Скорее всего для одних задач лучше - один, а для других - другой. Но так как Лисп родился в США, а Пролог - в Европе, то это и определило их преимущественное применение: Пролог в Европе (и Японии), а Лисп в США для любых задач искусственного интеллекта.
***
- Откровенно говоря,- задумчиво сказал Мегрэ,- мне кажется, что эти языки искусственного интеллекта не очень-то интеллектуальные. Они лишь позволяют обрабатывать информацию, представленную в виде фраз естественного языка, т.е. преобразовывать их из одной формы в другую. От интеллектуального языка я ждал большего. Ну, например, возможности выявлять новые связи, факты, обстоятельства - все то, что было неизвестно. Не так ли, Поль?
- Вы требуете невозможного, шеф,- улыбнулся Поль. - Ведь любой алгоритмический язык - это не более чем формальная система, способная лишь преобразовать информацию из одной формы в другую. И если в исходном тексте не было нужной вам новой информации, то никаким преобразованием этого текста ее получить нельзя. Совсем другое дело, если ситуация, описываемая этим текстом, очень сложна и при беглом знакомстве не позволяет получить то, что нужно и содержится в тексте. Именно для решения такого рода задач и придуманы языки искусственного интеллекта.
- Ну, что ж!- согласился Мегрэ,- именно это мне и нужно. Вот вам исходные тексты,- и он указал на кипы сообщений, полученных со всего света.- Покажите мне, как можно использовать язык искусственного интеллекта, чтобы получить (точнее, выявить) нужную мне информацию. Она там содержится, уверяю вас.
- Все не так просто,- грустно заметил Поль.- Ваши тексты записаны на естественном языке со всеми вытекающими отсюда неприятными последствиями [Они описаны выше, в гл.10].
- Но ведь языки искусственного интеллекта обрабатывают именно тексты, записанные на естественном языке,- удивился Мегрэ,- какие же "неприятные последствия" могут возникнуть?
- Здесь перед нами довольно неприятная дилемма. Если мы хотим формально работать с текстом на естественном языке, обрабатывать его с помощью языков искусственного интеллекта, то, чтобы преодолеть все трудности, связанные с его естественностью, нужно исходный текст преобразовать к формальному виду, с которым и будет работать программа. Так это делается при работе с Прологом. Например, чтобы факт "Мари отравилась" занести в базу данных (а это и есть формальная запись) необходимо ввести двухместное отношение "быть отравленным":
быть отравленным (a, b)
что означает "а отравил b". Тогда факт самоотравления Мари можно записать в виде "быть отравленным (мари, мари)". К сожалению, с помощью компьютера этого преобразования сделать нельзя. Здесь нужен человек, понимающий текст и владеющий приемами представления фактов в виде так называемых предикатов - это и есть те самые отношения, с которыми работает Пролог.
- А нельзя ли все-таки обойтись без предварительного неформального преобразования текста?- спросил Мегрэ и уныло взглянул на громадные кипы сообщений.
- Можно, это допускает Лисп. Но результат будет не очень интересен для того, кто хочет извлечь новую информацию. Например, с помощью Лиспа можно легко построить словарь текста, т.е. расположить все его слова в алфавитном порядке с указанием, сколько раз каждое слово встречалось в данном тексте. Эту задачу приходится часто решать при идентификации текста, т.е. отыскании его автора.
- Мне в данном случае интереснее Пролог. Выходит, что для работы с этим языком я должен сам ввести все отношения, которые есть в моем тексте, и переписать его в виде набора таких отношений?
- Да, хотя нельзя строго сказать, что в тексте априори есть определенные отношения. Это вы сами их вводите в зависимости от того, как понимаете текст.
- Выходит, что один и тот же текст я могу записать в предикатах по-разному?- изумился Мегрэ.
- Конечно! Например, если у вас нет сомнений, что Мари отравилась (сама), то естественно ввести отношение "отравиться". Это одноместный предикат вида
отравиться (a)
где a - имя того, кто отравился. Если же сомнения есть, то нужно использовать двухместный предикат "быть отравленным", который допускает возможность не только самоотравления.
- Ну, хорошо,- согласился Мегрэ.- А какие еще предикаты следует ввести для расследования нашего убийства или самоубийства?
- Их много. Например, можем всех персонажей нашего дела описать четырехместным отношением "персона" вида
персона (имя, возраст, пол, специальность)
Например, несчастную Мари в виде персона (мари, 18, женск., продавщица). Важен мотив убийства, если оно было. Тогда нужно ввести одноместный предикат "мотив" в виде
мотив (a),
где a может принимать значения: а = ревность, деньги, страх и т.д. Для описания любовной интриги естественно ввести отношение "иметь любовную связь". Очевидно, что оно двухместное:
иметь любовную связь (a, b)
где a и b - имена любовников. Чтобы описать орудие убийства и его владельца, если он не определен точно, нужно ввести двухместное отношение "вероятно владеет" в виде
вероятно владеет (a, b)
где a - имя того, кто владеет, a b - название орудия убийства (в нашем случае это цианистый калий)
Если есть сомнения относительно различных вариантов орудия убийства, то нужно вводить предикат идентичности их действия:
идентично действует (a, b)
где a и b - названия орудий, действие которых одинаково, например пистолет и автомат, которые имеют одинаковые пули.
- Хватит, достаточно,- улыбнулся Мегрэ,- мне все ясно. Нужно подробнейшим образом описать все взаимодействия всех возможных участников изучаемого преступления и все предметы, зафиксированные при этом и имеющие отношение к преступлению. Далее ввести предикат "быть убийцей" в виде
убийца (X)
где X - неизвестное имя убийцы из числа фигурирующих в деле "персон" и задать вопрос:
?- убийца (X)
- Не торопитесь, шеф. Если это отношение (быть убийцей) не связано с описанием ситуации, то ответа вы не получите. Нужно связать его с уликами, оставленными на месте преступления. Например, у убийцы 43-й размер обуви и он курит сигареты Кемел, что должно быть отражено введением отношений "курит" и "имеет размер обуви", а также расширить отношение "персона" данными о марке любимых сигарет и размере обуви:
персона (имя, возраст, пол, специальность, курит сигареты, размер обуви)
Именно эти отношения свяжут имя неизвестного убийцы с известными обстоятельствами, например, так:
персона (X, Y, мужск., Z, кемел, 43)
Только после этого можно будет задать ваш вопрос.
- И что, всегда будет получен ответ?- скептически спросил Мегрэ.
- Да, но он может быть различным. "Нет" - будет означать, что имя убийцы не выводится из исходных данных. Несколько имен в ответе означает, что исходных данных мало...
- А если имя одно, то это и есть наверняка имя убийцы?
- Не всегда. Ведь все зависит от истинности исходной информации. Здесь Пролог может ошибиться так же, как ошибается опытный следователь, если исходит из неправильных предпосылок. Это ведь, по сути дела, не ошибка, а неверная интерпретация исходных данных. Разные решения могут быть приняты Прологом и следователем при одинаковых исходных данных лишь в том случае, если следователь делает ошибочные заключения. Пролог же никогда не ошибается, если, разумеется, не ошибается компьютер, на котором реализуется программа Пролога.
- Неужели Вы, Поль, серьезно считаете, что Пролог действительно может заменить сыщика? - изумился Мегрэ.
- Ну, наверное, пока нет. И все потому, что сыщик располагает некоторой дополнительной информацией, которая пока недоступна машине. Это интуиция, предыдущий опыт, подозрения всякого рода и другая человеческая "дребедень", которую пока неизвестно, как вводить в память компьютера.
- Ага,- засмеялся Мегрэ,- вот вы и дали трещину, несчастный масленщик. Вы уже признаете, что сейчас пока не все человеческие функции можно передать компьютеру. А я уверен, что и всегда в мышлении человека найдется место, некомпьютеризуемое (простите за это ужасное слово). Здесь я опираюсь не на свою уверенность, в которую вы не поверите, а на известную теорему Геделя. Вы ведь наверняка знаете: в любой формальной системе можно сформулировать утверждение, которое нельзя ни подтвердить, ни опровергнуть, не выходя за рамки этой формальной системы. Так что компьютерное "мышление" всегда ограничено этой теоремой. Именно этим, например, отличается человек, будучи неформальной системой. И его решения, хотя и могут быть ошибочными в силу несовершества процесса мышления, но оно не ограничено по своим возможностям.
- Ну, что вы, шеф,- обиделся Поль,- речь ведь идет не о применении Пролога в следственной практике. Этого никто и не пытается делать. А сказанное лишь иллюстрация к языку, который нашел широкое применение для решения задач искусственного интеллекта.
- Для чего же в действительности применяется Пролог?- спросил Мегрэ.
- Ну, например, для создания интеллектуального интерфейса для прикладных программ.
- Что это такое?
- Прикладная программа, как известно, решает конкретную (прикладную) задачу пользователя. Например, имеются две пули, выпущенные из одного и того же пистолета. Нужно выяснить, которая из них была первой. Это, как известно, очень важно для выяснения, соблюдал ли полицейский инструкцию: стрелять сначала в воздух и только потом, если нападающий не остановился, в него. Вот именно эта, вынутая из тела пуля, должна быть второй, а не первой, как это бывает часто с перепуганными полицейскими.
- А как можно различить эти пули?- спросил Мегрэ.
- Вы знаете, что ствол пистолета смазан, и на первой пуле всегда нагар от масла чуть больше, чем на второй. Но эта разница столь назначительна, что уловить ее может лишь тщательный анализ на компьютере. Программа этого анализа и есть та самая прикладная программа, с которой вам придется иметь дело, решая эту задачу. Но чтобы она заработала, нужно ввести исходные данные о пулях. Для этого следует выполнить ряд довольно сложных и нудных операций с компьютером. Именно эту неприятную функцию выполняет программа интеллектуального интерфейса. Она находится как бы между вами и прикладной программой, именно поэтому ее и называют интерфейсом. Интеллектуальность ее в том, что она понимает вас - непрограммирующего пользователя, который общается с ней на языке, очень близком к естественному. Но для того, чтобы понимать, она должна иметь модель той предметной области, в которой решается задача. Ведь именно на языке этой предметной области и происходит общение пользователя с компьютером. В примере с пулями эта предметная область определяется понятиями: пуля, первая, нагар и многими другими, а также отношениями между ними. Именно это и записывается в виде предикатов на языке Пролог. Так что программа интерфейса становится интеллектуальной, только если есть модель предметной области, для описания которой и используется язык Пролог.
- Что ж, это понятно. И в подтверждение того, что я действительно понял, позвольте высказаться на Прологе:
быть благодарным (мегрэ, поль)
где я ввел очевидный двухместный предикат благодарности.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Растригин. С компьютером наедине. 1990
14. К КОМПЬЮТЕРУ ЗА КОНСУЛЬТАЦИЕЙ (ЭКСПЕРТНЫЕ СИСТЕМЫ)
ЗАЧЕМ НУЖНЫ ЭКСПЕРТЫ
Древние не без основания считали, что есть только три источника знания: опыт, интуиция и мнение умных людей (сейчас их называют экспертами). В наше время нового источника знаний так и не появилось. Все тот же опыт - его стали чаще называть экспериментом. Все та же интуиция (ее раньше называли божьим промыслом, а на деле это тот же опыт, но отраженный в нашем подсознании). И все то же мнение экспертов, но оно стало более многогранным: появились средства хранения экспертной мудрости - книги. До книг, т.е. до изобретения письменности, знания экспертов передавались устно - в виде притч, легенд, мифов... Теперь, чтобы узнать мнение эксперта по тому или иному вопросу, редко обращаются к реальным людям - экспертам: найти его обычно труднее, чем нужную книгу.
Но знания эксперта далеко не всегда можно отразить на бумаге. Особенно это касается так называемых плохо структурированных знаний. К такого рода знаниям относятся, например, специальные знания в узкой области, где очень важна интуиция специалиста. Интуитивные знания нужны в любой профессиональной области. И носители таких знаний являются обычно только эксперты - специалисты в данной конкретной профессиональной области. Именно такого рода знания необходимы для эффективной работы.
Все специалисты хорошо знают это и никогда не упустят возможности поговорить с коллегой, которого считают экспертом в своей области. Такой разговор дает больше, чем прочтение многих монографий. Именно поэтому специалисты так стремятся к личному общению на всякого рода конференциях, совещаниях, симпозиумах, семинарах. Только при таком общении может быть получена та самая "экспертная" информация, которая нужна специалисту для решения конкретных профессиональных задач и которой нет (возможно, пока) в учебниках, справочниках, статьях и т. д. И именно такой информацией следует "начинить" память компьютера, чтобы получить экспертную систему - так называют систему, к которой можно обращаться для получения экспертной информации.
Конкретные экспертные системы появились в результате развития систем искусственного интеллекта и под давлением острой необходимости, связанной с нехваткой специалистов-экспертов, которые смогли бы в любой момент квалифицированно ответить на многочисленные вопросы из своей области. Хороший эксперт всегда малодоступен, а очень хороший тем более. Поэтому так важно и нужно иметь интеллектуальную компьютерную систему, обладающую знаниями эксперта, к которой можно обратиться в любой момент с профессиональным вопросом на естественном языке.
Чтобы понять, почему современному компьютеру просто необходимо стать интеллектуальным, рассмотрим взаимодействие человека с ЭВМ в процессе решения какой-то его конкретной задачи. Напомним, что в таком качестве этого человека называют конечным пользователем.
ЗАЧЕМ НУЖНЫ ЭКСПЕРТЫ
Древние не без основания считали, что есть только три источника знания: опыт, интуиция и мнение умных людей (сейчас их называют экспертами). В наше время нового источника знаний так и не появилось. Все тот же опыт - его стали чаще называть экспериментом. Все та же интуиция (ее раньше называли божьим промыслом, а на деле это тот же опыт, но отраженный в нашем подсознании). И все то же мнение экспертов, но оно стало более многогранным: появились средства хранения экспертной мудрости - книги. До книг, т.е. до изобретения письменности, знания экспертов передавались устно - в виде притч, легенд, мифов... Теперь, чтобы узнать мнение эксперта по тому или иному вопросу, редко обращаются к реальным людям - экспертам: найти его обычно труднее, чем нужную книгу.
Но знания эксперта далеко не всегда можно отразить на бумаге. Особенно это касается так называемых плохо структурированных знаний. К такого рода знаниям относятся, например, специальные знания в узкой области, где очень важна интуиция специалиста. Интуитивные знания нужны в любой профессиональной области. И носители таких знаний являются обычно только эксперты - специалисты в данной конкретной профессиональной области. Именно такого рода знания необходимы для эффективной работы.
Все специалисты хорошо знают это и никогда не упустят возможности поговорить с коллегой, которого считают экспертом в своей области. Такой разговор дает больше, чем прочтение многих монографий. Именно поэтому специалисты так стремятся к личному общению на всякого рода конференциях, совещаниях, симпозиумах, семинарах. Только при таком общении может быть получена та самая "экспертная" информация, которая нужна специалисту для решения конкретных профессиональных задач и которой нет (возможно, пока) в учебниках, справочниках, статьях и т. д. И именно такой информацией следует "начинить" память компьютера, чтобы получить экспертную систему - так называют систему, к которой можно обращаться для получения экспертной информации.
Конкретные экспертные системы появились в результате развития систем искусственного интеллекта и под давлением острой необходимости, связанной с нехваткой специалистов-экспертов, которые смогли бы в любой момент квалифицированно ответить на многочисленные вопросы из своей области. Хороший эксперт всегда малодоступен, а очень хороший тем более. Поэтому так важно и нужно иметь интеллектуальную компьютерную систему, обладающую знаниями эксперта, к которой можно обратиться в любой момент с профессиональным вопросом на естественном языке.
Чтобы понять, почему современному компьютеру просто необходимо стать интеллектуальным, рассмотрим взаимодействие человека с ЭВМ в процессе решения какой-то его конкретной задачи. Напомним, что в таком качестве этого человека называют конечным пользователем.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Растригин. С компьютером наедине. 1990
ПОРТРЕТ КОНЕЧНОГО ПОЛЬЗОВАТЕЛЯ
Легко представить, что собой представляет конечный пользователь. Вот портрет его знаний (точнее, незнаний):
Он НЕ ЗНАЕТ, как устроен компьютер.
Он НЕ ЗНАЕТ, как писать программы для работы с компьютером.
Он НЕ ЗНАЕТ формальных (математических) методов решения задач в его области, что необходимо для использования компьютера. Более того, всего этого он и НЕ ХОЧЕТ УЗНАВАТЬ!
Чтобы читатель не подумал, что конечный пользователь лентяй и лоботряс, напомним, что он специалист в своей области и решает свою конкретную задачу: проектирует, лечит, ищет неисправность в схеме, синтезирует нужные вещества, создает новую технологию, ищет месторождения и т.д. А ЭВМ ему нужна лишь для повышения эффективности его труда. Конечный пользователь и без нее может решить свою задачу, ведь справлялся же он с ней без компьютера! К компьютеру он обращается, чтобы решить свою задачу быстрее и лучше, чем прежде. Для него это лишь инструмент, позволяющий повысить свою производительность при решении конкретной задачи - решить ее или быстрее, или лучше, или и то и другое.
Как же быть? Многолетний опыт использования ЭВМ выработал схему, показанную на рис.26,а. Здесь между пользователем и компьютером имеется по крайней мере два (а может быть, и больше) промежуточных звена.
Рис.26
Легко представить, что собой представляет конечный пользователь. Вот портрет его знаний (точнее, незнаний):
Он НЕ ЗНАЕТ, как устроен компьютер.
Он НЕ ЗНАЕТ, как писать программы для работы с компьютером.
Он НЕ ЗНАЕТ формальных (математических) методов решения задач в его области, что необходимо для использования компьютера. Более того, всего этого он и НЕ ХОЧЕТ УЗНАВАТЬ!
Чтобы читатель не подумал, что конечный пользователь лентяй и лоботряс, напомним, что он специалист в своей области и решает свою конкретную задачу: проектирует, лечит, ищет неисправность в схеме, синтезирует нужные вещества, создает новую технологию, ищет месторождения и т.д. А ЭВМ ему нужна лишь для повышения эффективности его труда. Конечный пользователь и без нее может решить свою задачу, ведь справлялся же он с ней без компьютера! К компьютеру он обращается, чтобы решить свою задачу быстрее и лучше, чем прежде. Для него это лишь инструмент, позволяющий повысить свою производительность при решении конкретной задачи - решить ее или быстрее, или лучше, или и то и другое.
Как же быть? Многолетний опыт использования ЭВМ выработал схему, показанную на рис.26,а. Здесь между пользователем и компьютером имеется по крайней мере два (а может быть, и больше) промежуточных звена.
Рис.26
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Растригин. С компьютером наедине. 1990
ЗВЕНЬЯ ИСПОРЧЕННОГО ТЕЛЕФОНА
Первое звено - АНАЛИТИК - это специалист по формальным методам решения задачи, т.е. чаще всего прикладной математик, знакомый с предметной областью пользователя. Это последнее свойство аналитика очень важно, иначе он просто не понимал бы конечного пользователя. Задачу пользователя, сформулированную ему на естественном языке, аналитик представляет в математической форме и разрабатывает (или заимствует из справочника) алгоритм ее решения. Например, радиолюбителю аналитик может составить уравнения, описывающие работу его схемы, и выбрать способ (алгоритм) их решения, чтобы определить характеристики этой схемы. Технологу аналитик составит модель, описывающую его технологический процесс, например, в виде системы массового обслуживания, которую можно моделировать с помощью ЭВМ, и т.д. Формализованную задачу и алгоритм ее решения аналитик передает программисту.
Второе звено - ПРОГРАММИСТ - составляет программу решения на машинном языке, вводит ее в ЭВМ и отлаживает ее. ЭВМ решает задачу и сообщает результат программисту, он расшифровывает его и передает аналитику, который переводит решение на язык пользователя.
Это простейшая схема решения задачи конечного пользователя на компьютере. Здесь между конечным пользователем и ЭВМ стоят два человека: аналитик и программист. Естественно желание устранить эти инстанции. Во-первых, эта схема очень похожа на игру в испорченный телефон, а во-вторых, аналитик и программист в ней участвуют почти всегда очень неохотно. Для них это, скорее, общественная нагрузка. Действительно, аналитик предпочитает разрабатывать методы решения задач, а не искать готовые рецепты. Программист также хочет заниматься своим делом - системным программированием (разработкой и эксплуатацией трансляторов, операционных систем и т.д.), а не программированием чужих задач.
Первое звено - АНАЛИТИК - это специалист по формальным методам решения задачи, т.е. чаще всего прикладной математик, знакомый с предметной областью пользователя. Это последнее свойство аналитика очень важно, иначе он просто не понимал бы конечного пользователя. Задачу пользователя, сформулированную ему на естественном языке, аналитик представляет в математической форме и разрабатывает (или заимствует из справочника) алгоритм ее решения. Например, радиолюбителю аналитик может составить уравнения, описывающие работу его схемы, и выбрать способ (алгоритм) их решения, чтобы определить характеристики этой схемы. Технологу аналитик составит модель, описывающую его технологический процесс, например, в виде системы массового обслуживания, которую можно моделировать с помощью ЭВМ, и т.д. Формализованную задачу и алгоритм ее решения аналитик передает программисту.
Второе звено - ПРОГРАММИСТ - составляет программу решения на машинном языке, вводит ее в ЭВМ и отлаживает ее. ЭВМ решает задачу и сообщает результат программисту, он расшифровывает его и передает аналитику, который переводит решение на язык пользователя.
Это простейшая схема решения задачи конечного пользователя на компьютере. Здесь между конечным пользователем и ЭВМ стоят два человека: аналитик и программист. Естественно желание устранить эти инстанции. Во-первых, эта схема очень похожа на игру в испорченный телефон, а во-вторых, аналитик и программист в ней участвуют почти всегда очень неохотно. Для них это, скорее, общественная нагрузка. Действительно, аналитик предпочитает разрабатывать методы решения задач, а не искать готовые рецепты. Программист также хочет заниматься своим делом - системным программированием (разработкой и эксплуатацией трансляторов, операционных систем и т.д.), а не программированием чужих задач.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Растригин. С компьютером наедине. 1990
СОКРАЩЕНИЕ ШТАТОВ
Первым шагом к решению этой проблемы было изобретение языков высокого уровня (Бейсик, Фортран, Алгол, GPSS и др., о них мы говорили в гл.5), которые позволяют упростить процесс программирования. Например, для расчетов характеристик электронных схем обычно пользуются Фортраном, а для моделирования поведения систем массового обслуживания - одним из языков моделирования, например GPSS. Аналитик, владеющий одним из этих языков, уже не нуждается в программисте и может сам составить программу для решения задачи пользователя. Схема упрощается (рис.26,б). Теперь самым "узким местом" в ней стал только аналитик, выполняющий очень важную функцию формализации задачи пользователя. Чтобы убрать и эту инстанцию, можно пойти одним из двух путей:
- передать функции аналитика конечному пользователю, чтобы он сам формализовал и программировал свою задачу.
- передать эти функции ЭВМ, т.е. автоматизировать процесс формализации решения задачи пользователя и ее программирования.
Первый путь значительно проще: он не требует никаких дополнительных затрат, кроме... обучения пользователя. Он должен научиться формализации (взять на себя функции аналитика) и научиться программировать (программиста). Необходима его двойная переквалификация - на прикладного математика в своей области и прикладного программиста, которых он должен подменить. Именно так приходится поступать сейчас каждому конечному пользователю, если он хочет решать свою задачу на ЭВМ. Почти все специалисты, использующие компьютер в своей области, проходят этот тернистый путь, требующий много времени, усидчивости, и становятся... программирующими пользователями (рис.26,в).
Поэтому так трудно внедрять компьютер в новые области. Чтобы использовать ЭВМ, кроме желания, надо еще очень много знать о методах формализации и решения формальных задач, а также о программировании, что, естественно, никак не может вдохновить. Действительно, эффективность специалиста при этом не повышается, а вполне реально снижается: ему приходится тратить много дополнительного времени на формализацию своей задачи и программирование, не говоря уж об отладке программы и других неизбежных программистских заботах. Именно поэтому многие специалисты отказываются применять компьютер в своей области, считая, что на их век хватит старых способов исследования, выработанных в докомпьютерную эпоху. Со многими из них можно согласиться.
Остается один путь - научить компьютер делать все самому: и понимать пользователя, и формализовать его задачу и программировать ее, и представлять результат ее решения в виде, доступном пониманию пользователя. Здесь компьютер должен выступать в очень сложной роли: "и швец, и жнец, и на дуде игрец". Таким умельцем (а точнее, интеллектуалом) должен быть компьютер, только так он даст возможность пользователю повысить эффективность его работы над своей профессиональной задачей, не отрывая его от этой задачи. Создание таких интеллектуальных экспертных систем в любой предметной области - дело чрезвычайно сложное.
Естественно возникает вопрос: а не слишком ли дорого мы платим за нежелание конечного пользователя самому разобраться в своей задаче, формализовать ее, запрограммировать и т.д.? Если бы таких пользователей было бы немного, то, разумеется, "овчинка не стоила бы выделки". Создание таких интеллектуальных систем, точнее такой интеллектуальной программы, чрезвычайно трудоемкое дело. Но конечных пользователей, нуждающихся в интеллектуальных компьютерных системах, "тьмы и тьмы". Без большого преувеличения можно утверждать, что это все профессионалы, за исключением профессиональных программистов, а их не так уж много.
Не поможет ли компьютерная грамотность в решении этой проблемы? Хотя компьютерная грамотность и подразумевает знакомство с компьютером и одним из алгоритмических языков, но от знакомства до профессионального использования языка программирования - дистанция огромного размера. Знакомство, как известно, подразумевает лишь представление о возможностях компьютера. Но чтобы использовать все его возможности, надо создавать сложные программы, решающие поставленные задачи. И чем сложнее задача, тем труднее программировать ее решение - здесь надо профессионально знать все тонкости программирования.
Именно эти соображения привели к очень грустной мысли: в недалеком будущем всем нам, независимо от специальности, придется быть программистами и в кадровой анкете к графе о знании иностранных языков добавится еще одна - знание языка программирования. Но, к счастью, появление экспертных систем гарантирует нам возможность воспользоваться всей мощью современного компьютера без необходимости изучать его устройство и программирование.
Первым шагом к решению этой проблемы было изобретение языков высокого уровня (Бейсик, Фортран, Алгол, GPSS и др., о них мы говорили в гл.5), которые позволяют упростить процесс программирования. Например, для расчетов характеристик электронных схем обычно пользуются Фортраном, а для моделирования поведения систем массового обслуживания - одним из языков моделирования, например GPSS. Аналитик, владеющий одним из этих языков, уже не нуждается в программисте и может сам составить программу для решения задачи пользователя. Схема упрощается (рис.26,б). Теперь самым "узким местом" в ней стал только аналитик, выполняющий очень важную функцию формализации задачи пользователя. Чтобы убрать и эту инстанцию, можно пойти одним из двух путей:
- передать функции аналитика конечному пользователю, чтобы он сам формализовал и программировал свою задачу.
- передать эти функции ЭВМ, т.е. автоматизировать процесс формализации решения задачи пользователя и ее программирования.
Первый путь значительно проще: он не требует никаких дополнительных затрат, кроме... обучения пользователя. Он должен научиться формализации (взять на себя функции аналитика) и научиться программировать (программиста). Необходима его двойная переквалификация - на прикладного математика в своей области и прикладного программиста, которых он должен подменить. Именно так приходится поступать сейчас каждому конечному пользователю, если он хочет решать свою задачу на ЭВМ. Почти все специалисты, использующие компьютер в своей области, проходят этот тернистый путь, требующий много времени, усидчивости, и становятся... программирующими пользователями (рис.26,в).
Поэтому так трудно внедрять компьютер в новые области. Чтобы использовать ЭВМ, кроме желания, надо еще очень много знать о методах формализации и решения формальных задач, а также о программировании, что, естественно, никак не может вдохновить. Действительно, эффективность специалиста при этом не повышается, а вполне реально снижается: ему приходится тратить много дополнительного времени на формализацию своей задачи и программирование, не говоря уж об отладке программы и других неизбежных программистских заботах. Именно поэтому многие специалисты отказываются применять компьютер в своей области, считая, что на их век хватит старых способов исследования, выработанных в докомпьютерную эпоху. Со многими из них можно согласиться.
Остается один путь - научить компьютер делать все самому: и понимать пользователя, и формализовать его задачу и программировать ее, и представлять результат ее решения в виде, доступном пониманию пользователя. Здесь компьютер должен выступать в очень сложной роли: "и швец, и жнец, и на дуде игрец". Таким умельцем (а точнее, интеллектуалом) должен быть компьютер, только так он даст возможность пользователю повысить эффективность его работы над своей профессиональной задачей, не отрывая его от этой задачи. Создание таких интеллектуальных экспертных систем в любой предметной области - дело чрезвычайно сложное.
Естественно возникает вопрос: а не слишком ли дорого мы платим за нежелание конечного пользователя самому разобраться в своей задаче, формализовать ее, запрограммировать и т.д.? Если бы таких пользователей было бы немного, то, разумеется, "овчинка не стоила бы выделки". Создание таких интеллектуальных систем, точнее такой интеллектуальной программы, чрезвычайно трудоемкое дело. Но конечных пользователей, нуждающихся в интеллектуальных компьютерных системах, "тьмы и тьмы". Без большого преувеличения можно утверждать, что это все профессионалы, за исключением профессиональных программистов, а их не так уж много.
Не поможет ли компьютерная грамотность в решении этой проблемы? Хотя компьютерная грамотность и подразумевает знакомство с компьютером и одним из алгоритмических языков, но от знакомства до профессионального использования языка программирования - дистанция огромного размера. Знакомство, как известно, подразумевает лишь представление о возможностях компьютера. Но чтобы использовать все его возможности, надо создавать сложные программы, решающие поставленные задачи. И чем сложнее задача, тем труднее программировать ее решение - здесь надо профессионально знать все тонкости программирования.
Именно эти соображения привели к очень грустной мысли: в недалеком будущем всем нам, независимо от специальности, придется быть программистами и в кадровой анкете к графе о знании иностранных языков добавится еще одна - знание языка программирования. Но, к счастью, появление экспертных систем гарантирует нам возможность воспользоваться всей мощью современного компьютера без необходимости изучать его устройство и программирование.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Растригин. С компьютером наедине. 1990
ЧТО ДОЛЖНА УМЕТЬ ЭКСПЕРТНАЯ СИСТЕМА
Что же такое экспертная система (далее ЭС)? Внешне это компьютерная система, предназначенная для диалогового общения с непрограммирующим конечным пользователем. Этот пользователь ведет диалог с ЭС только на естественном языке. В процессе такого диалога ЭС "понимает" задачу пользователя, формализует ее, составляет программу решения, решает и выдает результат пользователю, причем полученные решения, как показывает опыт, бывают не только не хуже, а очень часто и лучше решений, принимаемых отдельными экспертами в этой области. Именно поэтому такие компьютерные системы назвали экспертными. ЭС - это первые компьютерные системы, которые доказали, что могут быть умнее человека в его области. Как же устроены ЭС?
Для своего нормального функционирования ЭС должна взять на себя функции аналитика в "старой" схеме (рис. 26,б), т.е. она должна:
1. Понимать естественный язык, на котором пользователь излагает свою задачу.
2. Уметь построить формальную модель этой задачи, чтобы применить формальные методы решения (ведь сила компьютера - в использовании формальных методов решения задач пользователя).
3. Составить программу решения задачи (или в простейшем случае найти эту программу в своем архиве - банке данных).
4. Запустить программу и получить результат.
5. Интерпретировать результат - представить его в форме, доступной и понятной пользователю.
6. Объяснить (при необходимости), как был получен этот результат.
Из этих шести пунктов только четвертый (прогон программы) традиционный, остальные же имеют прямое отношение к искусственному интеллекту. Рассмотрим основные из них.
Что же такое экспертная система (далее ЭС)? Внешне это компьютерная система, предназначенная для диалогового общения с непрограммирующим конечным пользователем. Этот пользователь ведет диалог с ЭС только на естественном языке. В процессе такого диалога ЭС "понимает" задачу пользователя, формализует ее, составляет программу решения, решает и выдает результат пользователю, причем полученные решения, как показывает опыт, бывают не только не хуже, а очень часто и лучше решений, принимаемых отдельными экспертами в этой области. Именно поэтому такие компьютерные системы назвали экспертными. ЭС - это первые компьютерные системы, которые доказали, что могут быть умнее человека в его области. Как же устроены ЭС?
Для своего нормального функционирования ЭС должна взять на себя функции аналитика в "старой" схеме (рис. 26,б), т.е. она должна:
1. Понимать естественный язык, на котором пользователь излагает свою задачу.
2. Уметь построить формальную модель этой задачи, чтобы применить формальные методы решения (ведь сила компьютера - в использовании формальных методов решения задач пользователя).
3. Составить программу решения задачи (или в простейшем случае найти эту программу в своем архиве - банке данных).
4. Запустить программу и получить результат.
5. Интерпретировать результат - представить его в форме, доступной и понятной пользователю.
6. Объяснить (при необходимости), как был получен этот результат.
Из этих шести пунктов только четвертый (прогон программы) традиционный, остальные же имеют прямое отношение к искусственному интеллекту. Рассмотрим основные из них.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Растригин. С компьютером наедине. 1990
ДИАЛОГ НА ЕСТЕСТВЕННОМ ЯЗЫКЕ
Понимание естественного языка является обязательной чертой всякой ЭС. При этом текст в компьютер может вводиться по-разному: с пульта дисплея или голосом через микрофон. Сам компьютер также может общаться с пользователем, выводя текст на экран дисплея или через синтезатор речи, который будет аккуратно произносить текст, синтезированный соответствующей программой. При таком общении пользователя с компьютером неизбежны моменты непонимания (как и между людьми). Например, в известной фразе "Я встретил ее на поле с цветами" совершенно непонятно, где цветы - на поле, у нее или у меня. Для выяснения такого рода недоразумений, чтобы правильно понимать пользователя, собеседник (в данном случае компьютер), должен уметь задавать вопросы. Таким образом, в процессе формулирования задачи между пользователем и ЭС должен происходить оживленный диалог, во время которого содержание задачи пользователя сообщается компьютеру. Программу, осуществляющую эту сложную операцию, называют лингвистическим процессором или (чаще) диалоговым процессором, подчеркивая важность диалогового характера процесса взаимодействия с пользователем.
Понимание естественного языка является обязательной чертой всякой ЭС. При этом текст в компьютер может вводиться по-разному: с пульта дисплея или голосом через микрофон. Сам компьютер также может общаться с пользователем, выводя текст на экран дисплея или через синтезатор речи, который будет аккуратно произносить текст, синтезированный соответствующей программой. При таком общении пользователя с компьютером неизбежны моменты непонимания (как и между людьми). Например, в известной фразе "Я встретил ее на поле с цветами" совершенно непонятно, где цветы - на поле, у нее или у меня. Для выяснения такого рода недоразумений, чтобы правильно понимать пользователя, собеседник (в данном случае компьютер), должен уметь задавать вопросы. Таким образом, в процессе формулирования задачи между пользователем и ЭС должен происходить оживленный диалог, во время которого содержание задачи пользователя сообщается компьютеру. Программу, осуществляющую эту сложную операцию, называют лингвистическим процессором или (чаще) диалоговым процессором, подчеркивая важность диалогового характера процесса взаимодействия с пользователем.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Растригин. С компьютером наедине. 1990
БАЗА ЗНАНИЙ
В своей работе диалоговый процессор активно взаимодействует с базой знаний, где хранятся знания из той предметной области, по которой специализирована данная ЭС. Сразу отметим, что нет ЭС на все случаи жизни, каждая ЭС довольно узко специализирована на определенную предметную область, например диагностика определенного вида заболеваний, проектирование систем заданного класса, поиск месторождений определенного минерала и т.д. Узость предметной области ЭС позволяет создавать весьма полную базу знаний в этой области, что обеспечивает компьютеру возможность понимать пользователя "с полуслова". Но база знаний позволяет не только понимать пользователя, но и отвечать на его вопросы. Для этого она содержит сведения о том, как поступали раньше специалисты в той или иной ситуации и что из этого вышло. Эти знания представлены в виде так называемых продукций - конструкций вида "если..., то ...". Например, в медицинской ЭС содержатся продукции вида "если больной имеет повышенную температуру и насморк, то это, возможно, грипп"; в геологоразведочной ЭС "если тип породы неизвестен, то надо проверить, какой из трех случаев имеет место: 1 - порода рыхлая, сыпучая; 2 - прочно связанная; 3 - легко ломается руками" и т.д. Особенно много ЭС специализируется по выяснению неисправностей в действующих системах. Их база знаний состоит из продукций вида "если характеристика А не в норме, то следует осмотреть блоки Б, В и Г" и т.д. С помощью таких экспертных знаний можно быстро найти неисправности в сложной технической системе. Опыт экспертов, отраженный в виде соответствующих продукций базы знаний, помогает отыскать неисправность, если с похожей неисправностью сталкивались эксперты, чьи знания содержатся в базе знаний.
Именно такого рода знания в базе дают возможность формализовать задачу пользователя, т.е. составить причинно-следственную цепочку, звеньями которой являются продукции из базы знаний, что в ее конце или будет дан ответ на заданный пользователем вопрос, или поставлен другой вопрос, на который нужно ответить пользователю.
В своей работе диалоговый процессор активно взаимодействует с базой знаний, где хранятся знания из той предметной области, по которой специализирована данная ЭС. Сразу отметим, что нет ЭС на все случаи жизни, каждая ЭС довольно узко специализирована на определенную предметную область, например диагностика определенного вида заболеваний, проектирование систем заданного класса, поиск месторождений определенного минерала и т.д. Узость предметной области ЭС позволяет создавать весьма полную базу знаний в этой области, что обеспечивает компьютеру возможность понимать пользователя "с полуслова". Но база знаний позволяет не только понимать пользователя, но и отвечать на его вопросы. Для этого она содержит сведения о том, как поступали раньше специалисты в той или иной ситуации и что из этого вышло. Эти знания представлены в виде так называемых продукций - конструкций вида "если..., то ...". Например, в медицинской ЭС содержатся продукции вида "если больной имеет повышенную температуру и насморк, то это, возможно, грипп"; в геологоразведочной ЭС "если тип породы неизвестен, то надо проверить, какой из трех случаев имеет место: 1 - порода рыхлая, сыпучая; 2 - прочно связанная; 3 - легко ломается руками" и т.д. Особенно много ЭС специализируется по выяснению неисправностей в действующих системах. Их база знаний состоит из продукций вида "если характеристика А не в норме, то следует осмотреть блоки Б, В и Г" и т.д. С помощью таких экспертных знаний можно быстро найти неисправности в сложной технической системе. Опыт экспертов, отраженный в виде соответствующих продукций базы знаний, помогает отыскать неисправность, если с похожей неисправностью сталкивались эксперты, чьи знания содержатся в базе знаний.
Именно такого рода знания в базе дают возможность формализовать задачу пользователя, т.е. составить причинно-следственную цепочку, звеньями которой являются продукции из базы знаний, что в ее конце или будет дан ответ на заданный пользователем вопрос, или поставлен другой вопрос, на который нужно ответить пользователю.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Растригин. С компьютером наедине. 1990
ПЛАНИРОВАНИЕ
И, наконец, для эффективной работы ЭС необходимо превращать описание исходной задачи в рабочую программу, которая ее решает. Эту функцию выполняет планировщик - программная система, планирующая и организующая процесс решения поставленной задачи на ЭВМ. Планировщик постоянно контактирует с базой знаний, откуда черпает информацию и о способах решения той или иной задачи, и о том, как составляются рабочие программы для ЭВМ.
Как видно, основу ЭС составляют диалоговый процессор, база знаний и планировщик, которые и образуют интеллектуальный интерфейс между пользователями и компьютером (рис.27). Его интеллектуальность определяется тем, что он понимает пользователя, формализует его задачу, составляет программу ее решения для компьютера и интерпретирует полученный результат (как говорится, "яичко испечет, да сам и облупит"). Едва ли у кого возникнут сомнения в интеллектуальности системы, совершающей такие действия.
Рис.27
И, наконец, для эффективной работы ЭС необходимо превращать описание исходной задачи в рабочую программу, которая ее решает. Эту функцию выполняет планировщик - программная система, планирующая и организующая процесс решения поставленной задачи на ЭВМ. Планировщик постоянно контактирует с базой знаний, откуда черпает информацию и о способах решения той или иной задачи, и о том, как составляются рабочие программы для ЭВМ.
Как видно, основу ЭС составляют диалоговый процессор, база знаний и планировщик, которые и образуют интеллектуальный интерфейс между пользователями и компьютером (рис.27). Его интеллектуальность определяется тем, что он понимает пользователя, формализует его задачу, составляет программу ее решения для компьютера и интерпретирует полученный результат (как говорится, "яичко испечет, да сам и облупит"). Едва ли у кого возникнут сомнения в интеллектуальности системы, совершающей такие действия.
Рис.27
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Растригин. С компьютером наедине. 1990
ПОДСИСТЕМА ОБЪЯСНЕНИЯ
И, наконец, последняя отличительная черта ЭС. Каждая ЭС имеет подсистему объяснения, которая позволяет, если необходимо, разъяснить пользователю, как ЭС получила то или иное решение. При этом широко используются сведения из базы знаний, с которыми согласен пользователь. Именно они являются аргументами, которые приводит ЭС, объясняя свое решение. Наличие такого объяснения делает полученное решение понятным и "прозрачным" пользователю. (Известно, что человек плохо воспринимает, а иногда и просто отвергает необоснованные советы. В этом проявляется критицизм - важная черта, защищающая его от слепого подчинения, свойственного, например, роботам, да и то не всем).
Сейчас в мире уже существуют тысячи ЭС в самых разнообразных областях: медицине, технике, технологии, проектировании, геологоразведке, химии, экономике, юриспруденции и т.д. Эти области отличаются либо малой формализованностью, либо большой важностью экспертных, решений, как, например, в технике, проектировании, экономике, и поэтому ценностью экспертных знаний, которые закладываются в базу знаний. Именно это обстоятельство позволяет специалисту средней квалификации с помощью ЭС решать задачи, требующие высокой квалификации.
***
- Действительно, экспертные системы - очень удобная штука. А есть ли экспертная система по розыску преступников? Я бы с удовольствием пообщался с ней.
- Нет, и не может быть в принципе,- ответил Поль.- Ведь поимка преступников - это не узкая, а очень широкая область. А экспертные системы можно создавать лишь в крайне узких областях знаний и умений. Чтобы создать розыскную экспертную систему, прежде всего, надо выявить узкие классы преступления и наличие экспертов по этим преступлениям.
- Ну, что ж, такие эксперты существуют. Я знаю немало отменных специалистов-сыщиков, профилирующихся по отдельным видам преступлений: шантажам, мошенничествам, наркобизнесу, домашним кражам, угону автомобилей и т.д. Все они имеют огромный опыт раскрытия преступлений в своей области и могут выступить в роли экспертов. Но вопрос не в этом. Можно ли создать такую базу знаний? Ведь существование экспертов еще не гарантирует возможность построения экспертной системы. Не так ли, Поль?
- Вы правы, шеф. Кроме экспертов, нужно, чтобы область была очень узкой, только тогда база знаний будет обозримой. А это очень важно.
- Вот тебе и на!- удивился Мегрэ.- Неужели от компьютерной памяти зависит создание баз знаний?!
- Вовсе нет,- заторопился Поль,- на это память не экономят, хотя она и дорого стоит. Создание больших баз знаний требует больших и длительных усилий специалистов высокого класса - экспертов и инженеров по знаниям. Говоря проще, большие базы знаний стоят очень дорого.
- Ну и что? Это, так сказать, капитальные затраты на создание системы, которые быстро окупаются, если система интенсивно эксплуатируется. А недостатка в интересе к экспертным системам такого рода ощущаться не будет. Так что ваш аргумент против баз знаний в широкой области не очень убедителен.
- Есть и еще несколько неприятных обстоятельств,- уныло продолжал Поль.- Экспертная система для раскрытия преступлений должна обладать, кроме всего прочего, эрудицией, здравым смыслом и юридическими знаниями. Ведь именно эти качества должен иметь хороший следователь.
- Ну и давайте введем их в базу знаний,- бодро сказал Мегрэ.- Я даже слышал, что законы уже ввели в память компьютера и широко пользуются этой юридической базой знаний.
- Не знаний, а данных,- поправил Поль.- Ведь введение текста в память компьютера еще не создает базу знаний, это лишь данные. А знания образуются при введении смысла, т.е. при определении связей между понятиями, наполняющими базу данных. Базу знаний нельзя создать формально. Для этого всегда нужен высококвалифицированный специалист-эксперт, обладающий нужным знанием.
- Ну, а эрудиция и здравый смысл?- уже без энтузиазма спросил Мегрэ.- Их-то почему нельзя ввести в базу знаний?
- И то, и другое не является узкой областью знаний. Здравый смысл еще и не понятен сам по себе, а эрудиция требует огромных знаний, а не данных (которые легко ввести в память компьютера, например, записав в его память текст многотомной энциклопедии).
- Ну, Поль,- обиженно сказал Мегрэ,- вот и вы заговорили о том, что недоступно компьютеру. А я-то уж было поверил в его неограниченные возможности и чуть было не стал крайне левым в вашей компьютерной братии.
- И очень жаль, шеф,- улыбнулся Поль.- Только компьютер - не прибор "для всего, чего изволите". Об этом уже много думали, а еще больше говорили. Ключевым словом здесь по-прежнему является "информация". Компьютер - это лишь машина для переработки информации, т.е. данных. С появлением необходимости компьютерного оперирования знаниями сразу появилось много ограничений на применение компьютера (о них уже говорилось выше). Этих ограничений будет еще больше, когда мы начнем оперировать компьютером в области искусства, этики, морали и т.д. И уж совсем трудно работать компьютеру с категориями сознания, сверхсознания, веры, совести и т.п.- очень человеческими категориями.
- Так что, так никогда они не будут доступны компьютеру? А может быть, это и хорошо, что у человека останется что-то его, чисто человеческое и недоступное машине?- с надеждой спросил Мегрэ.
- К сожалению, сказать это наверняка очень трудно. За непродолжительную, но бурную историю компьютера (ведь ему немногим более 40 лет) было немало прогнозов. Но все (почти все) они оказались несостоятельными. Вполне возможно, что в недалеком будущем будут найдены пути решения и тех задач, которые мы сейчас не знаем, как решить с помощью компьютера.
У физиков есть великолепное наблюдение: за каждой новой цифрой точности измерения скрывается открытие. С компьютером примерно то же. Каждый новый шаг повышения его производительности и емкости оперативной памяти открывает новые, ранее недоступные возможности его применения. Так, экспертные системы появились тогда, когда доступными стали компьютеры с миллионной оперативной памятью и соответствующей производительностью.
- Что ж, будем надеяться, что когда-нибудь компьютер будет консультировать и сыщика по самым сложным поворотам его дела, а не будет лишь компьютерным справочником или средством коммутации с банками данных.
И, наконец, последняя отличительная черта ЭС. Каждая ЭС имеет подсистему объяснения, которая позволяет, если необходимо, разъяснить пользователю, как ЭС получила то или иное решение. При этом широко используются сведения из базы знаний, с которыми согласен пользователь. Именно они являются аргументами, которые приводит ЭС, объясняя свое решение. Наличие такого объяснения делает полученное решение понятным и "прозрачным" пользователю. (Известно, что человек плохо воспринимает, а иногда и просто отвергает необоснованные советы. В этом проявляется критицизм - важная черта, защищающая его от слепого подчинения, свойственного, например, роботам, да и то не всем).
Сейчас в мире уже существуют тысячи ЭС в самых разнообразных областях: медицине, технике, технологии, проектировании, геологоразведке, химии, экономике, юриспруденции и т.д. Эти области отличаются либо малой формализованностью, либо большой важностью экспертных, решений, как, например, в технике, проектировании, экономике, и поэтому ценностью экспертных знаний, которые закладываются в базу знаний. Именно это обстоятельство позволяет специалисту средней квалификации с помощью ЭС решать задачи, требующие высокой квалификации.
***
- Действительно, экспертные системы - очень удобная штука. А есть ли экспертная система по розыску преступников? Я бы с удовольствием пообщался с ней.
- Нет, и не может быть в принципе,- ответил Поль.- Ведь поимка преступников - это не узкая, а очень широкая область. А экспертные системы можно создавать лишь в крайне узких областях знаний и умений. Чтобы создать розыскную экспертную систему, прежде всего, надо выявить узкие классы преступления и наличие экспертов по этим преступлениям.
- Ну, что ж, такие эксперты существуют. Я знаю немало отменных специалистов-сыщиков, профилирующихся по отдельным видам преступлений: шантажам, мошенничествам, наркобизнесу, домашним кражам, угону автомобилей и т.д. Все они имеют огромный опыт раскрытия преступлений в своей области и могут выступить в роли экспертов. Но вопрос не в этом. Можно ли создать такую базу знаний? Ведь существование экспертов еще не гарантирует возможность построения экспертной системы. Не так ли, Поль?
- Вы правы, шеф. Кроме экспертов, нужно, чтобы область была очень узкой, только тогда база знаний будет обозримой. А это очень важно.
- Вот тебе и на!- удивился Мегрэ.- Неужели от компьютерной памяти зависит создание баз знаний?!
- Вовсе нет,- заторопился Поль,- на это память не экономят, хотя она и дорого стоит. Создание больших баз знаний требует больших и длительных усилий специалистов высокого класса - экспертов и инженеров по знаниям. Говоря проще, большие базы знаний стоят очень дорого.
- Ну и что? Это, так сказать, капитальные затраты на создание системы, которые быстро окупаются, если система интенсивно эксплуатируется. А недостатка в интересе к экспертным системам такого рода ощущаться не будет. Так что ваш аргумент против баз знаний в широкой области не очень убедителен.
- Есть и еще несколько неприятных обстоятельств,- уныло продолжал Поль.- Экспертная система для раскрытия преступлений должна обладать, кроме всего прочего, эрудицией, здравым смыслом и юридическими знаниями. Ведь именно эти качества должен иметь хороший следователь.
- Ну и давайте введем их в базу знаний,- бодро сказал Мегрэ.- Я даже слышал, что законы уже ввели в память компьютера и широко пользуются этой юридической базой знаний.
- Не знаний, а данных,- поправил Поль.- Ведь введение текста в память компьютера еще не создает базу знаний, это лишь данные. А знания образуются при введении смысла, т.е. при определении связей между понятиями, наполняющими базу данных. Базу знаний нельзя создать формально. Для этого всегда нужен высококвалифицированный специалист-эксперт, обладающий нужным знанием.
- Ну, а эрудиция и здравый смысл?- уже без энтузиазма спросил Мегрэ.- Их-то почему нельзя ввести в базу знаний?
- И то, и другое не является узкой областью знаний. Здравый смысл еще и не понятен сам по себе, а эрудиция требует огромных знаний, а не данных (которые легко ввести в память компьютера, например, записав в его память текст многотомной энциклопедии).
- Ну, Поль,- обиженно сказал Мегрэ,- вот и вы заговорили о том, что недоступно компьютеру. А я-то уж было поверил в его неограниченные возможности и чуть было не стал крайне левым в вашей компьютерной братии.
- И очень жаль, шеф,- улыбнулся Поль.- Только компьютер - не прибор "для всего, чего изволите". Об этом уже много думали, а еще больше говорили. Ключевым словом здесь по-прежнему является "информация". Компьютер - это лишь машина для переработки информации, т.е. данных. С появлением необходимости компьютерного оперирования знаниями сразу появилось много ограничений на применение компьютера (о них уже говорилось выше). Этих ограничений будет еще больше, когда мы начнем оперировать компьютером в области искусства, этики, морали и т.д. И уж совсем трудно работать компьютеру с категориями сознания, сверхсознания, веры, совести и т.п.- очень человеческими категориями.
- Так что, так никогда они не будут доступны компьютеру? А может быть, это и хорошо, что у человека останется что-то его, чисто человеческое и недоступное машине?- с надеждой спросил Мегрэ.
- К сожалению, сказать это наверняка очень трудно. За непродолжительную, но бурную историю компьютера (ведь ему немногим более 40 лет) было немало прогнозов. Но все (почти все) они оказались несостоятельными. Вполне возможно, что в недалеком будущем будут найдены пути решения и тех задач, которые мы сейчас не знаем, как решить с помощью компьютера.
У физиков есть великолепное наблюдение: за каждой новой цифрой точности измерения скрывается открытие. С компьютером примерно то же. Каждый новый шаг повышения его производительности и емкости оперативной памяти открывает новые, ранее недоступные возможности его применения. Так, экспертные системы появились тогда, когда доступными стали компьютеры с миллионной оперативной памятью и соответствующей производительностью.
- Что ж, будем надеяться, что когда-нибудь компьютер будет консультировать и сыщика по самым сложным поворотам его дела, а не будет лишь компьютерным справочником или средством коммутации с банками данных.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Растригин. С компьютером наедине. 1990
БЕЗНАДЕЖНОЕ ДЕЛО ПРОГНОЗОВ
Так уж сложилось, что в заключение автор обязан дать прогноз в своей области, хотя бы на ближайшее будущее. Всякий прогноз рискован (вспомним печальную славу всех предсказателей), и тем более рискован, если относится к области, которая так бурно развивается, как вычислительная техника. Но тем не менее не будем нарушать традицию и попробуем заглянуть хотя бы в ближайшее будущее (о далеком прогнозе здесь и мечтать нельзя).
Начнем с персональной вычислительной техники - персональных компьютеров. Микроэлектронная технология развивается так интенсивно, что стоимость персональных компьютеров уменьшается, а объем производства увеличивается чрезвычайно быстро.
На Западе профессиональный персональный компьютер стоит уже приблизительно столько, сколько цветной телевизор, а бытовой - уже значительно ниже. Автор почти не рискует, утверждая, что в ближайшие пять лет персональные компьютеры у нас будут доступны всем нуждающимся.
Несколько хуже обстоит дело с подключением персонального компьютера к вычислительным сетям, обладающим большой вычислительной мощностью и информационными ресурсами. Здесь быстрый темп развития вычислительной техники сдерживается достаточно скромным ростом средств связи, необходимых для вычислительных сетей. Но к началу нового тысячелетия компьютеры пятого поколения должны стать основным средством переработки информации человечества. И именно это стимулирует развитие средств связи компьютеров. Только наличие каналов связи может обеспечить оперативное наращивание вычислительной мощности и информационных ресурсов, без чего невозможен дальнейший прогресс вычислительной техники.
А теперь о самом главном - о диалоге с компьютером. Эффективность его прямо зависит от возможностей компьютера, а они еще не столь велики, чтобы, например, вести диалог голосом. Свободный диалог, по-видимому, можно будет вести только с компьютерами пятого поколения, не раньше, чем лет через 10. Так что пока придется запастись терпением и овладевать техникой общения с компьютером через клавишный пульт. Это, разумеется, не исключает диалог голосом, но на усеченном языке и на узкую профессиональную тему. Причем "усеченность" и "узость" диалога будут постепенно сниматься.
И последнее. Не следует надеяться, что развитие вычислительной техники как-то кардинально изменит наше существование. Компьютер не более (но и не менее) чем один из мощных двигателей прогресса (как энергетика, металлургия, химия, машиностроение и т.д.), который берет на свои "железные плечи" такую важную функцию, как рутину обработки информации. Эта рутина всегда и везде сопровождает самые высокие полеты человеческой мысли. Именно в этой рутине очень часто тонут дерзкие решения, недоступные компьютеру. Поэтому так важно "свалить" на компьютер рутинные операции, чтобы освободить человека для его истинного предназначения - творчества.
Вспомним знаменитые слова М.Горького "Все - в человеке, все для человека! Существует только человек, все же остальное - дело его рук и его мозга". Компьютер - тоже дело рук и мозга человека.
Этим гимном человеку и его необыкновенной способности творить мы и закончим книгу о взаимоотношении человека-творца и компьютера, пожалуй, самого активного помощника человека в его творчестве.
Так уж сложилось, что в заключение автор обязан дать прогноз в своей области, хотя бы на ближайшее будущее. Всякий прогноз рискован (вспомним печальную славу всех предсказателей), и тем более рискован, если относится к области, которая так бурно развивается, как вычислительная техника. Но тем не менее не будем нарушать традицию и попробуем заглянуть хотя бы в ближайшее будущее (о далеком прогнозе здесь и мечтать нельзя).
Начнем с персональной вычислительной техники - персональных компьютеров. Микроэлектронная технология развивается так интенсивно, что стоимость персональных компьютеров уменьшается, а объем производства увеличивается чрезвычайно быстро.
На Западе профессиональный персональный компьютер стоит уже приблизительно столько, сколько цветной телевизор, а бытовой - уже значительно ниже. Автор почти не рискует, утверждая, что в ближайшие пять лет персональные компьютеры у нас будут доступны всем нуждающимся.
Несколько хуже обстоит дело с подключением персонального компьютера к вычислительным сетям, обладающим большой вычислительной мощностью и информационными ресурсами. Здесь быстрый темп развития вычислительной техники сдерживается достаточно скромным ростом средств связи, необходимых для вычислительных сетей. Но к началу нового тысячелетия компьютеры пятого поколения должны стать основным средством переработки информации человечества. И именно это стимулирует развитие средств связи компьютеров. Только наличие каналов связи может обеспечить оперативное наращивание вычислительной мощности и информационных ресурсов, без чего невозможен дальнейший прогресс вычислительной техники.
А теперь о самом главном - о диалоге с компьютером. Эффективность его прямо зависит от возможностей компьютера, а они еще не столь велики, чтобы, например, вести диалог голосом. Свободный диалог, по-видимому, можно будет вести только с компьютерами пятого поколения, не раньше, чем лет через 10. Так что пока придется запастись терпением и овладевать техникой общения с компьютером через клавишный пульт. Это, разумеется, не исключает диалог голосом, но на усеченном языке и на узкую профессиональную тему. Причем "усеченность" и "узость" диалога будут постепенно сниматься.
И последнее. Не следует надеяться, что развитие вычислительной техники как-то кардинально изменит наше существование. Компьютер не более (но и не менее) чем один из мощных двигателей прогресса (как энергетика, металлургия, химия, машиностроение и т.д.), который берет на свои "железные плечи" такую важную функцию, как рутину обработки информации. Эта рутина всегда и везде сопровождает самые высокие полеты человеческой мысли. Именно в этой рутине очень часто тонут дерзкие решения, недоступные компьютеру. Поэтому так важно "свалить" на компьютер рутинные операции, чтобы освободить человека для его истинного предназначения - творчества.
Вспомним знаменитые слова М.Горького "Все - в человеке, все для человека! Существует только человек, все же остальное - дело его рук и его мозга". Компьютер - тоже дело рук и мозга человека.
Этим гимном человеку и его необыкновенной способности творить мы и закончим книгу о взаимоотношении человека-творца и компьютера, пожалуй, самого активного помощника человека в его творчестве.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Растригин. С компьютером наедине. 1990
ДЕТЕКТИВ ВМЕСТО ПОСЛЕСЛОВИЯ
- Комиссар,- воскликнул Поль,- что вы нашли в комнате погибшей? Какое такое ЭТО; Дело прошлое, и пора вам раскрыть свои карты!
- Да, признаюсь, я сам не ожидал напасть на такой след,- довольно улыбнулся Мегрэ,- и, хотя мне так и не удалось его довести до конца, кое-что все-таки получилось.
- Да не темните, шеф!- нетерпеливо прервал его Поль.- Что такое ЭТО! Или вы решили унести эту тайну с собой?
- Зачем же!- и Мегрэ стал раскуривать свою трубку.- Думаю, что вам будет полезно узнать, что такое ЭТО.
- Не торопитесь, дружище. Согласно всем правилам детективного жанра я должен издалека и очень обстоятельно подвести вас к отгадке, которую вы так хотите узнать,- и Мегрэ лукаво взглянул на Поля.
- Я подозреваю, шеф,- обиженно произнес Поль,- что и вы не знаете, что такое ЭТО. Я с самого начала догадывался, что это дешевый трюк автора, на который должен клюнуть неискушенный читатель и начать читать эту книгу. А ЭТО - пирожок ни с чем! Я угадал? Держу какое угодно пари, что вы сами не знаете, что такое ЭТО!
- Вы уже проиграли его! У ЭТОГО есть название, и оно известно тем, кто читал польского фантаста Станислава Лема.
- Ну, я читал!- сказал Поль.- У меня к Лему отношение двойственное: наполовину он великолепный фантаст, а вот другой половиной он просто насмешник. Его путешествия Ийона Тихого - это издевательство над фантастикой!
- Вы просто зануда, Поль,- захохотал Мегрэ.- Ведь эти путешествия - великолепная пародия на современную фанстастику. Причем пародия многослойная, и очень острая.
- Не отвлекайтесь, шеф. Вы обещали назвать ЭТО!
- Это - СЕПУЛЬКА [Здесь и ниже выделены фантастические термины и понятия, введенные С.Лемом],- спокойно сказал Мегрэ и пустил кольцо дыма в потолок.
- Что, что!!!-остолбенел Поль.
- Да, да; Обыкновенная СЕПУЛЬКА. Та самая, о которой писал Лем в одном из путешествий Ийона Тихого, кажется в четырнадцатом.
- Ну, и какая же она?- пришел в себя Поль.
- Именно такая, как описал ее Лем. Вы что, не помните?
- Я все хорошо помню. Даже помню его издевательское описание: "СЕПУЛЬКА - элемент цивилизации АРДРИТОВ, См. СЕПУЛЬКАРИИ" "СЕПУЛЬКАРИИ - устройства, служащие для СЕПУЛЕНИЯ (см)", "СЕПУЛЕНИЕ - занятие АРДРИТОВ, См. СЕПУЛЬКА". Что вы еще можете добавить к этому?
- Все правильно,- спокойно улыбнулся Мегрэ.- Добавлю лишь то, что СЕПУЛЬКА сейчас стала объектом подпольного бизнеса у нас на Земле. И международная мафия начинает переходить с наркобизнеса к сепбизнесу - бизнесу на СЕПУЛЬКАХ. Именно ее я увидел в комнате погибшей.
- На что же она похожа, эта СЕПУЛЬКА?- тихо спросил Поль.
- Ну, это была не обычная СЕПУЛЬКА, а с ПРИСВИСТОМ, которую используют для торжественных СЕПУЛЕНИЙ. К сожалению, у меня не было ЩЕРСИ, чтобы ЗАКРУСИТЬСЯ. Но зато был РЕЗЕРВ, который начал БОБЧИТЬ, и мне ничего не оставалось, как обратиться к АРДРИТУ.
- Но ведь это житель планеты ИНТЕРОПИИ!- заикаясь произнес Поль и начал СВЕТИТЬСЯ.
- Конечно; Как же без него я смог бы сделать РОЗМАЗЬ КАЙМИСТОСТИ, которая обязательна.- Мегрэ задумался и добавил,- А вы думаете, что можно было бы обойтись без нее? Я об этом не подумал! Что с вами, Поль? Уж если вы начали СВЕТИТЬСЯ, то наденьте абажур, как это принято у АРДРИТОВ!
- Нет!- слабо простонал Поль,- я жду ХЕМПА, чтобы воспользоваться своим РЕЗЕРВОМ. Или КУРДЛЯ. И вообще, я хочу в ИНТЕРОПИЮ.- Он ЗАСВЕТИЛСЯ еще ярче, ПРЕВРАТИЛСЯ В ШАР И ПОКАТИЛСЯ ПО ПОТОЛКУ.
- Ох уж, эта молодежь!- проворчал Мегрэ, провожая шар взглядом.- Вечно все принимают слишком близко к сердцу. И никак не поймут, что далеко не все следует понимать. Даже в вычислительной технике, будучи "наедине с компьютером",- он усмехнулся и захлопнул книгу.
- Комиссар,- воскликнул Поль,- что вы нашли в комнате погибшей? Какое такое ЭТО; Дело прошлое, и пора вам раскрыть свои карты!
- Да, признаюсь, я сам не ожидал напасть на такой след,- довольно улыбнулся Мегрэ,- и, хотя мне так и не удалось его довести до конца, кое-что все-таки получилось.
- Да не темните, шеф!- нетерпеливо прервал его Поль.- Что такое ЭТО! Или вы решили унести эту тайну с собой?
- Зачем же!- и Мегрэ стал раскуривать свою трубку.- Думаю, что вам будет полезно узнать, что такое ЭТО.
- Не торопитесь, дружище. Согласно всем правилам детективного жанра я должен издалека и очень обстоятельно подвести вас к отгадке, которую вы так хотите узнать,- и Мегрэ лукаво взглянул на Поля.
- Я подозреваю, шеф,- обиженно произнес Поль,- что и вы не знаете, что такое ЭТО. Я с самого начала догадывался, что это дешевый трюк автора, на который должен клюнуть неискушенный читатель и начать читать эту книгу. А ЭТО - пирожок ни с чем! Я угадал? Держу какое угодно пари, что вы сами не знаете, что такое ЭТО!
- Вы уже проиграли его! У ЭТОГО есть название, и оно известно тем, кто читал польского фантаста Станислава Лема.
- Ну, я читал!- сказал Поль.- У меня к Лему отношение двойственное: наполовину он великолепный фантаст, а вот другой половиной он просто насмешник. Его путешествия Ийона Тихого - это издевательство над фантастикой!
- Вы просто зануда, Поль,- захохотал Мегрэ.- Ведь эти путешествия - великолепная пародия на современную фанстастику. Причем пародия многослойная, и очень острая.
- Не отвлекайтесь, шеф. Вы обещали назвать ЭТО!
- Это - СЕПУЛЬКА [Здесь и ниже выделены фантастические термины и понятия, введенные С.Лемом],- спокойно сказал Мегрэ и пустил кольцо дыма в потолок.
- Что, что!!!-остолбенел Поль.
- Да, да; Обыкновенная СЕПУЛЬКА. Та самая, о которой писал Лем в одном из путешествий Ийона Тихого, кажется в четырнадцатом.
- Ну, и какая же она?- пришел в себя Поль.
- Именно такая, как описал ее Лем. Вы что, не помните?
- Я все хорошо помню. Даже помню его издевательское описание: "СЕПУЛЬКА - элемент цивилизации АРДРИТОВ, См. СЕПУЛЬКАРИИ" "СЕПУЛЬКАРИИ - устройства, служащие для СЕПУЛЕНИЯ (см)", "СЕПУЛЕНИЕ - занятие АРДРИТОВ, См. СЕПУЛЬКА". Что вы еще можете добавить к этому?
- Все правильно,- спокойно улыбнулся Мегрэ.- Добавлю лишь то, что СЕПУЛЬКА сейчас стала объектом подпольного бизнеса у нас на Земле. И международная мафия начинает переходить с наркобизнеса к сепбизнесу - бизнесу на СЕПУЛЬКАХ. Именно ее я увидел в комнате погибшей.
- На что же она похожа, эта СЕПУЛЬКА?- тихо спросил Поль.
- Ну, это была не обычная СЕПУЛЬКА, а с ПРИСВИСТОМ, которую используют для торжественных СЕПУЛЕНИЙ. К сожалению, у меня не было ЩЕРСИ, чтобы ЗАКРУСИТЬСЯ. Но зато был РЕЗЕРВ, который начал БОБЧИТЬ, и мне ничего не оставалось, как обратиться к АРДРИТУ.
- Но ведь это житель планеты ИНТЕРОПИИ!- заикаясь произнес Поль и начал СВЕТИТЬСЯ.
- Конечно; Как же без него я смог бы сделать РОЗМАЗЬ КАЙМИСТОСТИ, которая обязательна.- Мегрэ задумался и добавил,- А вы думаете, что можно было бы обойтись без нее? Я об этом не подумал! Что с вами, Поль? Уж если вы начали СВЕТИТЬСЯ, то наденьте абажур, как это принято у АРДРИТОВ!
- Нет!- слабо простонал Поль,- я жду ХЕМПА, чтобы воспользоваться своим РЕЗЕРВОМ. Или КУРДЛЯ. И вообще, я хочу в ИНТЕРОПИЮ.- Он ЗАСВЕТИЛСЯ еще ярче, ПРЕВРАТИЛСЯ В ШАР И ПОКАТИЛСЯ ПО ПОТОЛКУ.
- Ох уж, эта молодежь!- проворчал Мегрэ, провожая шар взглядом.- Вечно все принимают слишком близко к сердцу. И никак не поймут, что далеко не все следует понимать. Даже в вычислительной технике, будучи "наедине с компьютером",- он усмехнулся и захлопнул книгу.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Re: Растригин. С компьютером наедине. 1990
ЛЮБОЗНАТЕЛЬНОМУ ЧИТАТЕЛЮ
Автор ориентировался на некоего "среднего" по его мнению читателя, которого, как известно, не существует, а "нормально" любознательному читателю хотел бы посоветовать следующие книги.
Батурин Ю.М. Право и политика в компьютерном круге.- М.: Наука, 1987.- 110с.
Войскунский С. Я говорю...- М.: Знание, 1984.
Геловани В.А., Ковригин О.В. Экспертные системы в медицине.- М.: Знание, 1987.- 32с.- (Новое в жизни, науке, технике. Сер. Математика, кибернетика, #3).
Горелов И.Н. Разговор с компьютером: Психолингвистический аспект проблемы.- М.: Наука, 1987.- 256 с.
Горстко А.Б., Кочковая С.В. Азбука программирования.- М.: Знание, 1988.- 144с.
Громов Г.Р. Национальные информационные ресурсы: Проблемы промышленной эксплуатации.- М.: Наука, 1984.
Евреинов Э.В. Распределенная обработка информации и распределенные вычислительные системы.- М.: Знание, 1983.- 57с.- (Новое в жизни, науке, технике. Сер. Радиоэлектроника и связь, #3).
Журавлев А. Диалог с компьютером.- М.: Молодая гвардия.- 1988.
Иоффе А.Ф. Персональные ЭВМ в организационном управлении.- М.: Наука, 1988.- 208с.
Кондратов А. Электронный разум: Очерк исследований по проблеме искусственного интеллекта.- М.: Знание, 1987.- 176с.
Микроэлектронная технология и ее влияние на общество: Пер. с англ.- М.: Знание, 1987.- 160с.
Мичи Д., Джонстон Р. Компьютер - творец: Пер. с англ.- М.: Мир, 1987.
Перегудов М.А., Халмейзер А.Я. Бок о бок с компьютером.- М.: Высшая школа, 1987.- 192с.
Персональные компьютеры.- М.: Наука, 1987.- 149с.- (Информатика для всех).
Персональный компьютер в играх и задачах.- М.: Наука, 1988.- 192с.- (Сер. Кибернетика - неограниченные возможности и возможные ограничения).
Печерский Ю.Н. На пути к искусственному интеллекту.- Кишинев: Штиница, 1981.- 182с.
Попов Э.В. Экспертные системы. Решение неформализованных задач в диалоге с ЭВМ.- М.: Наука, 1987.- 288с.
Поспелов Г.С., Поспелов Д.А. Искусственный интеллект - прикладные системы.- М.: Знание, 1985.- 48с.
Поспелов Д.А. Большие системы (ситуационное управление).- М., 1975.- 62с.
Поспелов Д.А. Фантазия и наука. На пути к искусственному интеллекту.- М.: Наука, 1982.- 217с.
Построение экспертных систем: Пер. с англ.- М.: Мир, 1987.- 441с.
Растригин Л.А. Вычислительные машины, системы, сети...- М.: Наука, 1982.- 224с.
Реальность и прогнозы искусственного интеллекта: Пер. с англ. М.: Мир, 1987.- (В мире науки и техники).
Современный компьютер: Пер. с англ. под ред.В.М.Курочкина.- М.: Мир, 1986.- 210с.
Уинстон П. Искусственный интеллект: Пер. с англ.- М.: Мир, 1980.- 520с.
Фурунджиев Р.И., Бабушкин Ф.М., Варавко В.В. Диалог с ЭВМ.- Минск: Высшая школа. 1986.- 160с.- (Мир занимательной науки).
Хелмс Г.Л. Языки программирования. Краткое руководство: Пер. с англ.- М.: Радио и связь, 1985.
ЭВМ пятого поколения. Концепции, проблемы, перспективы.- М.: Финансы и статистика, 1984.- 110с.
Экспертные системы. Принципы работы и примеры: Пер. с англ. М.: Радио и связь, 1987.- 224с.
Элти Д., Кумбс М. Экспертные системы. Концепции и примеры: Пер. с англ.- М.: Финансы и статистика, 1987.- 191с.
Автор ориентировался на некоего "среднего" по его мнению читателя, которого, как известно, не существует, а "нормально" любознательному читателю хотел бы посоветовать следующие книги.
Батурин Ю.М. Право и политика в компьютерном круге.- М.: Наука, 1987.- 110с.
Войскунский С. Я говорю...- М.: Знание, 1984.
Геловани В.А., Ковригин О.В. Экспертные системы в медицине.- М.: Знание, 1987.- 32с.- (Новое в жизни, науке, технике. Сер. Математика, кибернетика, #3).
Горелов И.Н. Разговор с компьютером: Психолингвистический аспект проблемы.- М.: Наука, 1987.- 256 с.
Горстко А.Б., Кочковая С.В. Азбука программирования.- М.: Знание, 1988.- 144с.
Громов Г.Р. Национальные информационные ресурсы: Проблемы промышленной эксплуатации.- М.: Наука, 1984.
Евреинов Э.В. Распределенная обработка информации и распределенные вычислительные системы.- М.: Знание, 1983.- 57с.- (Новое в жизни, науке, технике. Сер. Радиоэлектроника и связь, #3).
Журавлев А. Диалог с компьютером.- М.: Молодая гвардия.- 1988.
Иоффе А.Ф. Персональные ЭВМ в организационном управлении.- М.: Наука, 1988.- 208с.
Кондратов А. Электронный разум: Очерк исследований по проблеме искусственного интеллекта.- М.: Знание, 1987.- 176с.
Микроэлектронная технология и ее влияние на общество: Пер. с англ.- М.: Знание, 1987.- 160с.
Мичи Д., Джонстон Р. Компьютер - творец: Пер. с англ.- М.: Мир, 1987.
Перегудов М.А., Халмейзер А.Я. Бок о бок с компьютером.- М.: Высшая школа, 1987.- 192с.
Персональные компьютеры.- М.: Наука, 1987.- 149с.- (Информатика для всех).
Персональный компьютер в играх и задачах.- М.: Наука, 1988.- 192с.- (Сер. Кибернетика - неограниченные возможности и возможные ограничения).
Печерский Ю.Н. На пути к искусственному интеллекту.- Кишинев: Штиница, 1981.- 182с.
Попов Э.В. Экспертные системы. Решение неформализованных задач в диалоге с ЭВМ.- М.: Наука, 1987.- 288с.
Поспелов Г.С., Поспелов Д.А. Искусственный интеллект - прикладные системы.- М.: Знание, 1985.- 48с.
Поспелов Д.А. Большие системы (ситуационное управление).- М., 1975.- 62с.
Поспелов Д.А. Фантазия и наука. На пути к искусственному интеллекту.- М.: Наука, 1982.- 217с.
Построение экспертных систем: Пер. с англ.- М.: Мир, 1987.- 441с.
Растригин Л.А. Вычислительные машины, системы, сети...- М.: Наука, 1982.- 224с.
Реальность и прогнозы искусственного интеллекта: Пер. с англ. М.: Мир, 1987.- (В мире науки и техники).
Современный компьютер: Пер. с англ. под ред.В.М.Курочкина.- М.: Мир, 1986.- 210с.
Уинстон П. Искусственный интеллект: Пер. с англ.- М.: Мир, 1980.- 520с.
Фурунджиев Р.И., Бабушкин Ф.М., Варавко В.В. Диалог с ЭВМ.- Минск: Высшая школа. 1986.- 160с.- (Мир занимательной науки).
Хелмс Г.Л. Языки программирования. Краткое руководство: Пер. с англ.- М.: Радио и связь, 1985.
ЭВМ пятого поколения. Концепции, проблемы, перспективы.- М.: Финансы и статистика, 1984.- 110с.
Экспертные системы. Принципы работы и примеры: Пер. с англ. М.: Радио и связь, 1987.- 224с.
Элти Д., Кумбс М. Экспертные системы. Концепции и примеры: Пер. с англ.- М.: Финансы и статистика, 1987.- 191с.
Gudleifr- Admin
- Сообщения : 3403
Дата регистрации : 2017-03-29
Страница 6 из 6 • 1, 2, 3, 4, 5, 6
Похожие темы
» Растригин. Вычислительные машины, системы, сети... 1982
» Брябрин. Программное обеспечение персональных ЭВМ. 1990
» Броуди. Начальный курс программирования на языке ФОРТ. 1990
» Приложение. В мире науки. Занимательный компьютер. 1983-1990
» Брябрин. Программное обеспечение персональных ЭВМ. 1990
» Броуди. Начальный курс программирования на языке ФОРТ. 1990
» Приложение. В мире науки. Занимательный компьютер. 1983-1990
Страница 6 из 6
Права доступа к этому форуму:
Вы не можете отвечать на сообщения