Обратите внимание, насколько сложно это описание: слово «с» действует в нем как отрицание, давая понять, что «круг», на самом деле, не является кругом — это почти
круг, но… Более того, выемки не являются полными прямоугольниками. В нашем использовании языка для описания предметов есть немало тонкостей. Ясно, что большое количество информации здесь опущено и можно было бы опустить еще больше. A priori очень трудно понять, какую информацию лучше отбросить, а какую необходимо сохранить. Поэтому нам нужно, путем эвристики, закодировать некий метод для разумного компромисса. Разумеется, если нам необходимо восстановить отброшенную информацию, мы всегда можем спуститься на низшие уровни описания (к менее блочной картине), так же как люди могут все время обращаться к данной задаче Бонгарда с тем, чтобы проверить правильность их догадок. Таким образом, метод состоит в создании правил, объясняющих, каксоздавать пробные описания для каждой рамки;
сравнивать их с пробными описаниями других рамок каждого класса
переделывать описания
(1) добавляя информацию;
(2) отбрасывая информацию;
(3) рассматривая ту же информацию под другим углом.
Этот процесс повторяется до тех пор, пока мы не найдем различия между двумя классами.
Эталоны и детектор сходства
Хорошей стратегией было бы построение описаний, как можно более структурно схожих между собой
, поскольку любая схожая структура облегчает процесс сравнения. К этой стратегии относятся два важных элемента теории. Один из них — идея «описания-схемы» или эталона; другой — идея детектора сходства.Сначала рассмотрим детектор сходства
. Это особый активный элемент, присутствующий на всех уровнях программы (На разных уровнях могут быть детекторы различных типов.) Он беспрерывно работает, проверяя индивидуальные описания и сравнивая их между собой в поисках черт, повторяющихся от одного описания к другому. Обнаружение сходства приводит в действие операции, изменяющие одно или несколько описаний.Теперь перейдем к эталонам. После окончания обработки данных мы сразу пытаемся создать эталон или схему описаний — один и тот же формат
для описаний всех рамок данной задачи. Идея здесь состоит в том, что каждое описание может быть разбито на несколько подописаний, а те, если это необходимо, в свою очередь могут быть разбиты на подподописания. Вы достигаете дна, спускаясь к примитивным понятиям на уровне препроцессора. Важно найти такой способ разбивания на подпрограммы, который отразил бы общность между всеми рамками; иначе «псевдо-порядок», который вы введете в мир, окажется бессмысленным и ненужным.На основе какой информации строятся эталоны? Рассмотрим это на примере. Возьмем ЗБ #49 (рис. 122). Предварительная обработка информации сообщает нам, что каждая рамка состоит их нескольких маленьких «о» и большой замкнутой кривой. Эти ценные сведения стоит включить в эталон. Таким образом, наша первая попытка создания эталона выглядит так:
большая замкнутая кривая: —
маленькие «о»: —
Это очень просто: в описании-эталоне есть два гнезда
, куда надо будет вставить подописания.
Рис. 122. Задача Бонгарда #49. (Из книги Бонгарда «Проблема узнавания»).
Гетерархическая программа
Теперь происходит интересная вещь, вызванная к жизни словами «замкнутая кривая». Один из важнейших узлов в программе — это нечто вроде семантической сети или сети понятий
, в которой все известные программе существительные, прилагательные и так далее связаны и соотнесены между собой. Например, «замкнутая кривая» тесно связана с понятиями «внутри» и «снаружи». Сеть понятий битком набита информацией о связях между терминами: она говорит нам, что противоположно чему, что сходно с чем, какие вещи часто встречаются вместе и так далее. Небольшой кусочек концептуальной сети показан на рис. 123; я объясню его позже. Пока давайте вернемся к задаче #49. Понятия «внутри» и «снаружи» активируются благодаря тому, что в сети понятий они находятся вблизи от «замкнутой кривой». Это влияет на постройку эталона, в который вводятся гнезда для внутренней и внешней сторон кривой. Таким образом, вторым приближением эталона является:большая замкнутая кривая: —
маленькие «о» внутри: —
маленькие «о» снаружи: —
В поисках дальнейших подразделений, термины «внутри» и «снаружи» заставят процедуры программы рассмотреть эти районы рамки. В районе рамки I-A ЗБ #49 обнаруживается следующее:
большая замкнутая кривая: круг
маленькие «о» внутри: три
маленькие «о» снаружи: три
Описанием рамки II-А той же задачи может быть:
большая замкнутая кривая: сигара
маленькие «о» внутри: три
маленькие «о» снаружи: три