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

2. Если что-то получается не так как, нужно, попытайтесь представить один из дефектов как особый (и нежелательный) тип взаимодействия двух процедур.

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

4. Составьте резюме по итогам выполненных операций и включите его в хранящуюся в памяти ^библиотеку методов доводки".

Эти методы могут показаться несколько наивными, однако в тех случаях, когда новая проблема не слишком отличается от старых, имеются значительные шансы на успех, особенно при правильном подборе процедур-кандидатов на совместную ра6оту. Коли же новая проблема резко отличается от всех предыдущих, то не следует ожидать, что вообще должна существовать такая теория обучения, которая будет хорошо работать в этих условиях. Без структурированного познавательного плана, без "почти промахов" П.Уинстона(1970) и без хорошей подготовки к решению проблем данного типа нельзя ожидать появления совершенно новых парадигм, как бы остро мы в них ни нуждались.

Что представляют собой "виды взаимодействий" и "методы доводки"? Самым простым для них, видимо, следует считать тот случай, когда результат достижения первой цели оказывает влияние на некоторые условия, необходимые для достижения второй цели. В этом случае можно предложить использовать эту предпосылку в качестве нового условия; известны, однако, такие ситуации, в которых применение только этой методики не приведет к успеху, ибо это новое условие несовместимо с первой целью.

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

Глава четвертая.

Управление

4.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