Выбрать главу

наверху, внизу, справа от, слева от, внутри, снаружи, близко от, далеко от, параллельно, перендикулярно, в ряд, рассеяны, на равном расстоянии друг от друга, на неравном расстоянии друг от друга и т. д.

Могут использоваться также определенные и неопределенные числовые описания:

1,2,3,4,5, … много, несколько и т. д

Могут быть построены и более сложные описания, такие как:

правее, менее близко к, почти параллельно и т. д.

Таким образом, типичная рамка — скажем, 1-Е из ЗБ #47 (рис. 120) — может быть описана различными способами. Можно сказать, что в ней имеются:

три фигуры

или

три белых фигуры

или

один круг направо

или

два треугольника и круг

или

два повернутых кверху треугольника

или

одна большая фигура и две маленьких фигуры

или

одна изогнутая фигура и две прямолинейных фигуры

или

круг с одной и той же фигурой внутри и снаружи него.

Рис. 120. Задача Бонгарда # 47. (Из книги Бонгарда «Проблема узнавания»)

Каждое из этих описаний рассматривает рамку сквозь некий «фильтр». Вне контекста, каждое из описаний может быть полезно. Однако оказывается, что в контексте данной задачи все они «ошибочны». Иными словами, зная различие между классами I и II, вы не смогли бы, исходя только из этих описаний, сказать, к какому классу принадлежит данная рамка. В данном контексте основной чертой описываемой рамки является то, что она включает:

 круг с треугольником внутри.

Обратите внимание, что человек, услышавший это описание, не сможет восстановить оригинальную картинку, однако сумеет узнать картинки, отличающиеся данной чертой.

Это напоминает музыкальный стиль: вы можете безошибочно распознавать произведения, написанные Моцартом, и в то же время быть неспособным написать ничего похожего на его музыку.

Взгляните теперь на рамку I-Г задачи #91 (Рис. 121). Перегруженным, но «верным» описанием в контексте ЗБ #91 будет:

круг с тремя прямоугольными выемками.

Рис. 121. Задача Бонгарда # 91. (Из книги Бонгарда «Проблема узнавания».)

Обратите внимание, насколько сложно это описание: слово «с» действует в нем как отрицание, давая понять, что «круг», на самом деле, не является кругом — это почти круг, но… Более того, выемки не являются полными прямоугольниками. В нашем использовании языка для описания предметов есть немало тонкостей. Ясно, что большое количество информации здесь опущено и можно было бы опустить еще больше. A priori очень трудно понять, какую информацию лучше отбросить, а какую необходимо сохранить. Поэтому нам нужно, путем эвристики, закодировать некий метод для разумного компромисса. Разумеется, если нам необходимо восстановить отброшенную информацию, мы всегда можем спуститься на низшие уровни описания (к менее блочной картине), так же как люди могут все время обращаться к данной задаче Бонгарда с тем, чтобы проверить правильность их догадок. Таким образом, метод состоит в создании правил, объясняющих, как

создавать пробные описания для каждой рамки;

сравнивать их с пробными описаниями других рамок каждого класса

переделывать описания

(1) добавляя информацию;

(2) отбрасывая информацию;

(3) рассматривая ту же информацию под другим углом.

Этот процесс повторяется до тех пор, пока мы не найдем различия между двумя классами.

Эталоны и детектор сходства

Хорошей стратегией было бы построение описаний, как можно более структурно схожих между собой, поскольку любая схожая структура облегчает процесс сравнения. К этой стратегии относятся два важных элемента теории. Один из них — идея «описания-схемы» или эталона; другой — идея детектора сходства.

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

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

На основе какой информации строятся эталоны? Рассмотрим это на примере. Возьмем ЗБ #49 (рис. 122). Предварительная обработка информации сообщает нам, что каждая рамка состоит их нескольких маленьких «о» и большой замкнутой кривой. Эти ценные сведения стоит включить в эталон. Таким образом, наша первая попытка создания эталона выглядит так:

большая замкнутая кривая: —

маленькие «о»: —

Это очень просто: в описании-эталоне есть два гнезда, куда надо будет вставить подописания.

Рис. 122. Задача Бонгарда #49. (Из книги Бонгарда «Проблема узнавания»).

Гетерархическая программа

Теперь происходит интересная вещь, вызванная к жизни словами «замкнутая кривая». Один из важнейших узлов в программе — это нечто вроде семантической сети или сети понятий, в которой все известные программе существительные, прилагательные и так далее связаны и соотнесены между собой. Например, «замкнутая кривая» тесно связана с понятиями «внутри» и «снаружи». Сеть понятий битком набита информацией о связях между терминами: она говорит нам, что противоположно чему, что сходно с чем, какие вещи часто встречаются вместе и так далее. Небольшой кусочек концептуальной сети показан на рис. 123; я объясню его позже. Пока давайте вернемся к задаче #49. Понятия «внутри» и «снаружи» активируются благодаря тому, что в сети понятий они находятся вблизи от «замкнутой кривой». Это влияет на постройку эталона, в который вводятся гнезда для внутренней и внешней сторон кривой. Таким образом, вторым приближением эталона является:

большая замкнутая кривая: —

маленькие «о» внутри: —

маленькие «о» снаружи: —

В поисках дальнейших подразделений, термины «внутри» и «снаружи» заставят процедуры программы рассмотреть эти районы рамки. В районе рамки I-A ЗБ #49 обнаруживается следующее:

большая замкнутая кривая: круг

маленькие «о» внутри: три

маленькие «о» снаружи: три

Описанием рамки II-А той же задачи может быть:

большая замкнутая кривая: сигара

маленькие «о» внутри: три

маленькие «о» снаружи: три

В этот момент детектор сходства, работающий параллельно с другими операциями, обнаруживает повторение понятия «три» во всех гнездах, описывающих «о»; этого оказывается достаточно, чтобы снова модифицировать эталон. Обратите внимание, что первая модификация была предложена сетью понятий, а вторая — детектором сходства. Теперь наш эталон для задачи #49 приобретает такой вид:

большая замкнутая кривая: —

три маленьких «о» внутри: —

три маленьких «о» снаружи: —

Теперь, когда «три» поднялось уровнем выше и вошло в эталон, имеет смысл обратиться к его соседям по сети понятий. Один их них — «треугольник», что означает, что треугольники, состоящие из «о», могут оказаться важными для решения задачи. В результате оказывается, что эта дорога заводит в тупик, — но как мы могли знать об этом заранее? Человек, решающий эту задачу, скорее всего пошел бы тем же путем, так что хорошо, что наша программа нашла эту дорогу.

Описание рамки II-Д может быть таким:

большая замкнутая кривая: круг

три маленьких «о» внутри: равносторонний треугольник

три маленьких «о» снаружи: равносторонний треугольник