Читаем Фреймы для представления знаний полностью

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

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

Теория представления знаний с помощью фреймов, развиваемая М.Минским, претендует на объяснение ряда характерных особенностей человеческого мышления. По мнению автора, она позволяет охватить единой концепцией такие, казалось бы, разные теории, как понимание естественного языка, машинного "восприятия" зрительных образов, поиска решений, планирования, в том числе применительно к задачам управления роботами. Она объединяет многие классические и современные идеи психологии, лингвистики, а также искусственного интеллекта. В частности, эта теория обобщает идеи, высказанные в ряде известных работ по искусственному интеллекту, например в работах А.Ньюэлла, Г.Саймона(1972), в которых знания о мире представляются с помощью пространств подзадач, в работах Р.Шенка(1973), Р.Абельсона(1973), где модель мира представляется пространством "сценариев", наконец, в работах С.Пейперта(1972) и самого М.Минского(1972), в которых предлагается подразделить знания на "микромиры".

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

2.1. Фрейм - визуальный образ

В качестве простейшего примера, иллюстрирующего представление знаний с помощью фреймов, рассмотрим приведенную в работе М.Минского возможную систему фреймов для элементарного зрительного образа - куба. В соответствии с использованным в работе А.Гузмана(1967) символическим представлением тел правильной формы с помощью "областей" и "связей" между ними можно допустить, что результатом разглядывания куба является структура, подобная показанной на рис.П1а. Эту структуру можно идентифицировать с фреймом куба при разглядывании его с соответствующей позиции. Области A, E и B являются терминалами фрейма, задания для которых соответствуют возможным деталям или обозначениям на видимых с данной позиции гранях куба. Если позиция наблюдения куба перемещается вправо, то грань А исчезает из поля зрения и становится видимой грань С.

Если бы потребовалось провести полный анализ этого нового визуального образа, необходимо было бы:

1) утратить знания о грани А,

2) повторно воспринять (с помощью соответствующих "вычислений") образ грани В,

3) воспринять образ новой грани С.

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

При возвращении на начальную позицию наблюдения оказывается возможным восстановить визуальный образ куба без каких-либо новых "вычислений". Для этого достаточно "вызвать" из памяти первый фрейм. Очевидно, полезно сохранить знания и о грани С, для чего можно ввести дополнительный терминал этой невидимой грани в первом фрейме (рис.П1б).

Перейти на страницу:

Похожие книги

Основы программирования в Linux
Основы программирования в Linux

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
C++
C++

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

Бьёрн Страуструп , Бьярн Страустрап , Мюррей Хилл

Программирование, программы, базы данных / Программирование / Книги по IT
Программирование. Принципы и практика использования C++ Исправленное издание
Программирование. Принципы и практика использования C++ Исправленное издание

Специальное издание самой читаемой и содержащей наиболее достоверные сведения книги по C++. Книга написана Бьярне Страуструпом — автором языка программирования C++ — и является каноническим изложением возможностей этого языка. Помимо подробного описания собственно языка, на страницах книги вы найдете доказавшие свою эффективность подходы к решению разнообразных задач проектирования и программирования. Многочисленные примеры демонстрируют как хороший стиль программирования на С-совместимом ядре C++, так и современный -ориентированный подход к созданию программных продуктов. Третье издание бестселлера было существенно переработано автором. Результатом этой переработки стала большая доступность книги для новичков. В то же время, текст обогатился сведениями и методиками программирования, которые могут оказаться полезными даже для многоопытных специалистов по C++. Не обойдены вниманием и нововведения языка: стандартная библиотека шаблонов (STL), пространства имен (namespaces), механизм идентификации типов во время выполнения (RTTI), явные приведения типов (cast-операторы) и другие. Настоящее специальное издание отличается от третьего добавлением двух новых приложений (посвященных локализации и безопасной обработке исключений средствами стандартной библиотеки), довольно многочисленными уточнениями в остальном тексте, а также исправлением множества опечаток. Книга адресована программистам, использующим в своей повседневной работе C++. Она также будет полезна преподавателям, студентам и всем, кто хочет ознакомиться с описанием языка «из первых рук».

Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова

Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT