Вы можете возразить, что использование мета-описаний в данном случае напоминает стрельбу по мухам из пушки, поскольку тройничность и четверичность могли быть найдены уже на первом уровне, если бы мы построили наше описание немного иначе. Это верно, но для нас важно иметь возможность решать эти задачи различными путями. Программа должна быть очень гибкой; она не должна быть обречена на провал, если ее «занесет» не туда. Я хотел проиллюстрировать общий принцип: когда построение эталона затруднено, потому что препроцессор запутывается среди различных деталей, это показывает, что здесь задействованы понятия на высших уровнях, о которых препроцессор ничего не знает.
Теперь давайте рассмотрим другой вопрос: каким образом можно отбрасывать информацию. Ответ на этот вопрос включает два родственных понятия, которые я называю «фокусированием» и «фильтрованием».
Таким образом, они дополняют друг друга: фокусирование имеет дело с объектами (грубо говоря, с существительными), а фильтрование — с понятиями (грубо говоря, с прилагательными).
Для примера фокусирования рассмотрим ЗБ #55 (рис. 126). Здесь мы сосредотачиваемся на выемке и маленьком круге около нее, и оставляем без внимания все остальное. ЗБ #22 — это пример фильтрования. Мы отбрасываем все понятия, кроме размера. Для решения ЗБ #58 (рис. 128) требуется комбинация фокусирования и фильтрования.
Одним из важных способов получения идей для фокусирования и фильтрования является другой тип «фокусирования»: детальный анализ какой-либо особенно простой рамки — скажем, рамки с наименьшим количеством предметов. Очень полезным может оказаться сравнение между гобой простейших рамок обоих классов.
Но каким образом программа определяет, какие рамки самые простые, до того, как она производит их описание? Одним из способов определения простоты является поиск рамки с наименьшим количеством черт, найденных препроцессором. Это может быть сделано на ранних стадиях работы, поскольку для этого не нужен готовый эталон; на самом деле, это может быть использовано как поиск черт для включения в эталон. ЗБ #61 (рис. 129) — пример случая, когда такая техника дает плоды очень быстро.
Задачи Бонгарда можно интерпретировать как крохотную модель мира, занимающегося «наукой» — то есть поисками упорядоченных структур. В процессе этих поисков создаются и переделываются эталоны, гнезда переносятся с одного уровня обобщения на другой, используются фокусирование и фильтрование и т. д.
На каждом уровне сложности делаются свои открытия. Теория американского философа Куна о том, что странные события, которые он называет
Разумеется, некоторые открытия более «революционны», чем другие, поскольку они производят больший эффект. Например, мы можем обнаружить, что задачи #70 и #72 представляют из себя «одну и ту же задачу», рассмотренную на достаточно абстрактном уровне. Основная идея здесь в том, что в обеих задачах используется понятие «вложения» на глубине 1 и 2. Это новый уровень открытия в задачах Бонгарда. Существует еще более высокий уровень, касающийся всех картинок как целого. Если кто-либо не видел этого собрания, интересной задачей для него было бы попытаться представить себе, как эти картинки выглядят. Это было бы революционным открытием, хотя механизмы, которые при этом оперируют, не отличаются от механизмов, помогающих нам решать отдельные задачи Бонгарда.
По той же причине, настоящая наука не делится на «нормальные» периоды и периоды «концептуальных революций», сдвиги парадигм происходят в ней постоянно, большие и маленькие, на различных уровнях. Рекурсивные графики INT и график G (рис. 32 и 34) дают нам геометрическую модель этой идеи. Их структура полна скачков на всех уровнях, причем чем ниже уровень, тем меньше скачки.