«Сценарий управления памятью» наподобие приведенного выше может исполняться только в случае наличия блоков памяти, достаточно малых, чтобы выхватывать «куски» размером с кушетку из общей сцены. Блоки П1 и П2 не справились бы с этой работой, если бы в них хранились только описания целой комнаты. Иными словами, мы должны уметь увязывать свои кратковременные воспоминания лишь с соответствующими параметрами наших текущих задач. Обучиться таким навыкам непросто; возможно, некоторые люди вообще не в состоянии освоить эту технику. А если нам нужно мысленно переставить три или более предмета? На самом деле допустима любая перегруппировка, причем с использованием операций, которые меняют местами одновременно всего два предмета! Когда мы подступаемся к новой задаче, начинать лучше всего с одного или двух изменений за шаг. Затем, по мере приобретения опыта, будут выработаны схемы, позволяющие вносить сразу несколько полезных изменений в мысленные образы.
Наш сценарий парного обмена требует дополнительных механизмов. Поскольку каждый блок памяти должен дожидаться окончания предыдущего цикла, время выполнения каждого сценария может зависеть от различных «датчиков условий». Вскоре мы увидим, что этого недостаточно для решения трудных задач: нашим процессам управления памятью также требуются способы прерывания операций при обращении к другим агентам или воспоминаниям за помощью. По сути, задачи, которые мы должны решать при управлении нашими воспоминаниями, на удивление схожи с теми, с какими мы сталкиваемся, когда взаимодействуем с объектами внешнего мира.
15.8. Анатомия памяти
Что контролирует работу разума в конкретный момент времени? Как мы сохраняем наши промежуточные результаты при решении трудных задач, с тем чтобы, когда процесс прерывается извне или изнутри, можно было «вернуться» к нему, а не начинать все заново? Как мы запоминаем, что пытались делать и что узнали, чтобы нам не приходилось, как говорится, бегать по кругу?
Никто пока не выяснил, как воспоминания контролируют себя внутри нашего сознания; возможно, любой крупный агент располагает несколькими процессами, каждый из которых годится для конкретной деятельности этого агента. На схеме ниже приводятся некоторые механизмы, которые мы ожидаем найти в типичном крупном агенте.
Рис. 78
Допустим, что у каждого крупного агента есть несколько «микроблоков памяти», каждый из которых является своего рода временной строкой З, способной быстро сохранять или восстанавливать состояние многих субагентов в этом агенте. У каждого агента также имеются несколько блоков «кратковременной памяти», которые в свою очередь могут сохранять или восстанавливать состояния микроблоков памяти. Когда какой-либо из этих временных блоков памяти используется повторно, информация, которая была в них сохранена, удаляется, если только ее не «перенесли» в более «постоянные», «долгосрочные» слои памяти. Имеются надежные свидетельства того, что в человеческом сознании процессы передачи информации в долгосрочную память весьма медлительны и занимают интервал от нескольких минут до часов. Соответственно бо́льшая часть временных воспоминаний постоянно теряется.
Ребенок, становясь старше, осваивает множество способов управления всеми этими механизмами. Потому на нашей схеме обозначен, среди прочих агентов, входящий поток информации. Поскольку этот контролирующий агент тоже должен учиться и запоминать, схема также включает в себя запоминающую систему.
15.9. Прерывание и восстановление
Представьте, что вы собираетесь в поездку. Вы начинаете думать о том, как будете паковать чемодан, и активируете какого-то пространственного агента – назовем его Упаковщиком, – который призван заняться размещением в чемодане крупных вещей. Потом вы прерываетесь, отвлекаетесь на мысль о прочих вещах, возможно, прикидываете, стоит ли сложить драгоценности в небольшую шкатулку. Упаковщику теперь предстоит найти решение для новой задачи с другими объектами. Задача отслеживания происходящего достаточно трудна, если один агент обращается за помощью к другому. Пока работа второго агента не будет выполнена, первый агент должен вести временный контроль его действий. В случае с Упаковщиком проблема усугубляется, поскольку приходится прерваться и заняться помещением драгоценностей в шкатулку. Здесь имеется очень важное условие: когда эта вторая задача упаковки завершена и мы возвращаемся к первой задаче, нам не нужно начинать все сначала, иначе мы окажемся в петле бесконечных повторений. Вместо этого мы должны вернуться к тому моменту, когда прервались, а это значит, что система нуждается в некоторой собственной памяти, чтобы следить за своими действиями. Перед нами точно такая же задача, как та, которую мы разбирали в случае операторов «Найти» и «Видеть», выполняющих несколько заданий одновременно.