Неформальное проектирование алгоритмов

А.И. Разумовский,

с.н.с., к.т.н.,

ИПУ РАН, Москва

В сегодняшнее время, поддержку процесса создания программных систем (ПС) можно охарактеризовать как обильно теоретически и технологически разнообразную. При этом разработчику становится все труднее оперировать высокоуровневыми языковыми проектными и программными конструкциями, оказываясь под гнетом технологических требований, которые часто выводят поиск решения задачи на абстрактный уровень, малопригодный для выработки конкретной идеи. Чем выше уровень абстракции, тем с меньшей эффективностью можно выразить конкретику задачи, ясно обозначить цель, реализовать определенное решение. Корень обозначенной проблемы, по нашему мнению, кроется в пренебрежительном отношении к креативной стороне деятельности человека, его творческому ядру. Это творческое ядро является своего рода центром управления всей созидательной деятельностью человека по выработке и реализации идей, поступков и поведения. Здесь надо отметить тот факт, что в накопленном на сегодня научно-литературном материале (за исключением «Психологии творчества») о творческом факторе деятельности человека упоминается лишь вскользь - как об одном из аспектов интеллекта. По нашему мнению, напротив, творческий процесс (ТП) является сущностным фактором человека, определяющим всю полноту его жизнедеятельности на основе индивидуальной выработки правил и точек зрения, а также при поддержке интеллекта. Кстати, следует обратить внимание, что творческая активность может обходиться и без интеллектуальной поддержки, среди примеров этому: возникновение решений во сне (периодическая таблица Менделеева и бензольное кольцо Кекуле); проявление идеи внезапно и в отсутствии непосредственного размышления о предмете (закон тяготения Ньютона и электромотор переменного тока Теслы); эстетико-ассоциативное решение (закон Архимеда). Поэтому в условиях теоретической и технологической заорганизованности процессов создания ПС, возникает проблема обеспечения доминирования ТП человека над окружающими его технологическими требованиями. Эта проблема должна быть решена устремлением всячески раскрепостить креативную деятельность человека, создать комфорт для его творчества или, иначе говоря, сформировать необходимые условия для успешного и эффективного функционирования ТП.

Еще одна сторона проблемы затрагивает способ представления решаемой задачи в персонально удобном виде. В науке об управлении широко применяется аббревиатура ЛПР – лицо принимающее решение, однако в научном обиходе не существует подобного же наименования лица, использующего решение - ЛИР. Либо этому лицу не придается достаточной значимости (можно предполагать, что наименование «пользователь» - не несет в себе соответствующего содержательно значимого элемента), либо такого лица вовсе не предусматривается в контексте жизненного цикла (ЖЦ) ПС. По нашему мнению, создание ПС – есть, в том числе и реализация условий использования этой системы, т.е. комфортного окружения ЛИР. Достаточно ознакомиться с книгами ведущих практиков создания ПС (Брукс, ДеМарко, Коуберн, Макконелл, Фаулер) [1-5], чтобы понять, насколько важна ЛИР адаптивно-комфортная среда взаимодействия человека и программного комплекса. По нашему собственному, более чем 20 летнему опыту работы с множеством разноплановых ПС, со всей ответственностью можно засвидетельствовать, что удобных, интуитивно-адекватных систем – единицы. Но речь должна вестись не только об интерфейсе, но обо всей полноте комфорта деятельности ТП человека в достижении ясно очерчиваемого результата и при поддержке - а не господстве - компьютера. Сегодня очевидно преобладание именно компьютерной доминанты, в противовес творческому подходу человека. Это можно отчетливо увидеть и в системах принятия решения, и в экспертных, автоматизированных системам, а также комплексах по разработке ПС. Как отмечал в своей книге П.Л.Капица [6]: «самое ценное в науке и что составляет основу большой науки, не может планироваться, поскольку оно достигается творческим процессом <…> в науке самым ценным является творческий элемент, поэтому план и отчет должны составляться так, чтобы не стеснять свободу творчества, а поддерживать ее». Сегодня же своего рода эталоном построения ПС стал технологический план, ставящий сознание и восприятие разработчика во все более творчески скованное положение.

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

Говоря о творчестве, обычно ссылаются на 4 его стадии, описанные Уоллесом в 1926 году [7], хотя к этому времени подобные описания уже были сделаны и другими авторами (М. Блохом, Ф. Левинсоном и Т. Рибо). Итак, этапы творчества таковы: анализ проблемы, инкубация, озарение (инсайт), сопровождаемое эмоциональным переживанием, и проверка. Важно сразу же обособить данное определение ТП от дефиниций специалистов по искусственному интеллекту, например, Дж. Маккарти [8], который считал творческим решением проблемы такое, когда в этом решении используются понятия, которые отсутствуют в исходной формулировке проблемы. Здесь видна разделительная черта между двумя методологиями исследований психологии творчества и искусственного интеллекта: Маккарти помещает во главу угла фактор наличия-отсутствия некоего значимого элемента информации, Мы, напротив, делаем ставку на психологический фундамент внезапного рождения решения - инсайт, поскольку нас интересует эффект с точки зрения человека, а не вычислительной техники.

Разделение творчества и интеллекта можно отчасти проследить в работах Д.. Гилфорда [9] и Я.А. Пономарева [10], хотя это разделение в некотором смысле скорее номинальное, чем сущностное, по причине имеющегося все еще достаточного количества белых пятен в понимании психологии процессов выработки и принятия решений. Однако на некоторые важные факты творчества следует обратить внимание. Прежде всего, таким фактом является сама возможность возникновения решения, инстайт, лишь в случае, если ключ к нему уже содержится в неосознаваемом опыте [10]. Таким образом, накапливаемый опыт является существенным определяющим элементом выработки конечного решения,  и, следовательно, предпосылкой усиления доминанты ТП станет условие накопления индивидуального опыта в общем процессе решения задачи. Вторым фактом творческого процесса, который предстоит учесть в формировании условий комфортной выработки решений, является время вызревания решения, что соответствует этапу инкубации в описании Уоллеса. Указанный факт может быть принят во внимание посредством создания подобия метода информационной доски, подробно представленный в книге Г.Буча [11]. Этот метод включает в себя три элемента: собственно информационную доску, набор источников знаний и контроллер - управляющий этими источниками, причем активный элемент, контроллер, выполняет следующую роль: каждый источник знаний связан с контроллером и посылает ему свои соображения, кроме того – контроллер может активизировать источники знаний.  Однако роль контроллера мы можем расширить, позволив ему совершать любые действия с источниками знаний: добавлять, удалять, перемещать, актуализировать, группировать, сохранять и воспроизводить. В таком определении контроллер превращается в управляющий активный элемент, действующий вне произвольных заранее определенных правил и ограничен лишь объемами информационной доски и множества источников знаний. Программная реализация такого контроллера очевидно сопряжена не только с трудностями создания обширной базы описаний правил и условий автоматизированного синтеза решений, но и со сложностями пользовательского характера, когда удобство взаимодействия с компьютером ЛИР станет обратно пропорционально размеру  базы знаний. Кроме того, программная реализация потребует тщательной проработки формальной составляющей системы, включая классификацию и структуризацию информационных элементов и правил. Поэтому резонным разрешением этой проблемы предлагается замена программного контроллера на ТП человека [12].

Пусть для проектирования некоего алгоритма мы имеем весь необходимый арсенал информации, а также способны оперировать выбором путей решения, пусть также имеется возможность сопоставлять данные, принадлежащие разным временным уровням проектирования, и различного качества – от действительного и иллюстративного до формального. Тогда существует возможность эффективно реализовать комфортную среду поддержки функционирования ТП человека, опирающуюся на беспрепятственное индивидуально и конкретно определяемое действие, эвентуальность которого гарантируется избыточностью информации, а также полнотой свободного мониторинга выбираемых данных, принадлежащих произвольному этапу ЖЦ ПС. В одной из своих книг М.Мински критически оценивал результативность формальных подходов в изучении систем здравого смысла. Он заметил следующее: «выбранный аппарат представления будет сильно влиять на ценность решаемых задач» [13]. В этом ключе нам необходимо осуществлять представление элементов свободным произвольным образом, с тем чтобы не исключить всевозможной сочетаемости данных друг с другом.

Определим теперь задачу творческого неформального нахождения алгоритма ПС, как совокупность следующих одновременно достигаемых условий:

- сохранение избыточности описания представления проектируемого решения;

- сохранение индивидуальной выработки алгоритмической идеи, основывающейся на личной значимости информационного элемента в конкретных условиях его применения;

- сохранение индивидуальности решаемой проблемы, без необходимости обобщения и преждевременной классификации;

- поддержка исходного неформального представления информационных элементов;

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

Каждое из указанных условий имеет непосредственное отношение к реализации выражения индивидуальных предпочтений и указывает на отсутствие каких-либо преград в выработке индивидуально комфортного решения, что означает беспрепятственную деятельность ТП.

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

Предполагается три основных направления обработки ТП данных, находящихся в контексте информационной доски:

- формирование картины решения, включая сюда любые действия с данными, направленное на совершенствование и лучшее понимание локальной проблемы и обеспечивающее инкубацию конечной идеи;

- сохранение картины, соответствующей моменту озарения;

- воспроизведение сохраненных картин инсайта.

Последнее имеет отношение к влиянию прежде накопленных картин инсайта на ЛИР/ЛПР, в течение которого происходит множественное воспоминание и балансировка между данными следов памяти человека и воспроизведенными картинами инсайта, а следовательно, может вестись коррекция качества решений, а также любая другая реструктуризация проекта. Если множество соответствующих инсайту информационных элементов велико, не умещается на информационной доске, можно организовать последовательную ротацию данных или их постраничный просмотр, например, в виде своего рода калейдоскопа.

Рис. 1 Информационная модель формального подхода и издержек в процессе проектирования

Чтобы проиллюстрировать преимущества и потери информации в процессе проектирования ПС, могущие приводить к трудно исправимым последствиям, наглядно сравнительно представим информационные модели проектирования в случае доминирования технологического плана (рис. 1) и при выборе в качестве базиса – творческий процесс выработки решения (рис. 2).

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

- перманентное принятие решения;

- использование эвристики доступности;

- создание условий ответственного наблюдения.

Рис. 2 Информационная модель творческого подхода к проектированию ПС

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

Опишем далее в вариативном виде типы взаимодействия ТП человека и компьютера, сообразуя такое описание с ППР.

Случай доминирующего ТП:

- ТП формирует для локальной задачи внутреннюю потребность-заявку на целевое решение.

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

Случай тесной интеграции ТП и компьютера:

·      ТП формирует варианты решений, возможно структурирует и ранжирует их, затем передавая компьютеру (например, системе принятия решения).

·      Компьютер синтезирует целевое решение, выбирая оптимально лучшее.

·      ТП интерпретирует локальные результаты, однако получение конечного результата остается за компьютером.

Случай доминирующего компьютера:

·      ТП формирует варианты решений.

·      Компьютер осуществляет синтез лучшего варианта, ТП при этом не производит вмешательства в поиск результата.

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

В случае поддержки ТП человека, когда он вырабатывает решение, оставаясь в контексте собственных знаний и опыта, принципиально недостижима ситуация отказа от ответственности и, как следствие этого, невозможен неуспех проекта. ТП через ППР выступает своего рода гарантией корректности результата проектирования.

ППР в условиях вышеописанных контролирующих элементов обеспечивает следующие возможности:

§  наблюдение и поиск решения вдоль структурных  связей предполагаемых направлений к цели;

§  навигацию между элементами на информационной доске;

§  планирование и ожидание инсайта оценок и результатов;

§  прогнозирование решений.

ППР обеспечивает выбор множества решений, каждое из которых, однако, по отдельности никогда не может быть совершенным, но в совокупности образуют бесконечный ареал выбора, предел которого – верное решение.

Слежение и непрерывный мониторинг визуализированной адекватной информации и есть квинтэссенция ППР, так как считается, что «в естественных условиях восприятие осмысленно, причем происходит это не в силу активации гипотетических шаблонов, прототипов или даже схем, а благодаря эффективным стратегиям ориентировки в материале, а также быстрому и точному выделению релевантных задаче характеристик» [14]. Кроме того, важно отметить, что содержательная часть ППР прямо противоположна существующим практикам проектирования ПС, когда в качестве «орудия решения» проектировщику предлагается применить тот или иной готовый шаблон и на его основе сформировать или обнаружить собственное решение. Вред подобных «подсказок» подтверждается многими психологическими экспериментами, описанными, например, в работах [15, 16].

Вместо шаблонов- подсказок при проектировании алгоритма мы предлагаем опираться на эвристику доступности. Эвристика доступности определяется, как возможность или оценка выбора за счет легкости воспоминания или ассоциации [17]. Ее посредством выдвигается на первый план жизненно важная роль опыта, как детерминанты выработки качественного результата. Информация, которая созидается при такой ассоциации и связывается с образом ассоциации на информационной доске, мы назовем «дополненными» знаниями (ДЗ). ДЗ – это фактор проектной избыточности, необходимой для поддержания комфортного состояния деятельности ТП человека, поскольку реальный окружающий нас мир – избыточен. Таким образом, создается обстановка естественности функционирования ТП.

Существует два класса информации, обуславливающих творческую выработку решений, - реальная информация и иррациональная информация, иногда ее называют перцептивным воображением. Первая состоит из видимых элементов проекта, расположенных, например, на информационной доске: языковое и структурно-схемное представление алгоритма, комментарии к программе, текстовые и образные данные отладки алгоритмов, интерфейсные элементы среды разработки. К иррациональной информации мы отнесем то, что связано с ТП, то есть интуитивные и ассоциативные догадки и инсайты, образующиеся вследствие инкубации при наблюдении и манипулировании над уже имеющимися в поле видимости на информационной доске данными. С точки зрения ТП – иррациональная информация перед реальной имеет ценностное преимущество, как выражающая конечный продукт в плане достижения полноты завершенности определенной локальной цели и получения требуемого результата.

Аккумулированные вместе ДЗ позиционируются в едином плоскостном или пространственном контексте информационной доски, которую мы теперь назовем – креативно- контекстной формой (ККФ), поскольку определяющим фактором ее значимости будет концентрация и фиксация всех возможных информационных элементов в момент творческого инсайта.

Непосредственно на структуру алгоритма применение концептуальной стратегии ДЗ не способно оказать существенного воздействия, поскольку вся необходимая информация в основном имеется в специализированных средствах отладки программ. Однако ДЗ окажет решающее влияние в плане возможности сохранения тех фактов, тех инсайтов ЖЦ проектирования ПС, которые явились своего рода «свидетелями» творческой выработки локальных проектных решений и стали основой и двигателем всего процесса проектирования.

Среди проблем, решению которых концептуально- стратегически способствует использование в процессе проектирования ПС креативно- контекстных форм, хранящих ДЗ можно выделить следующие:

·      фиксация полной картины инсайта локальных проектных решений;

·      восстановление любой из картин в произвольный момент времени, что обеспечивает быстрое воспроизведение знаний о локальном состоянии проекта в индивидуально значимой форме;

·      сохранение и воспроизведение локально- точечных картин- инсайтов коррекции и изменения элементов проекта.

Ответственное наблюдение является концептуально-стратегическим средством обеспечения сохранения ответственности за принятое решение, без которой практически невозможно представить успешное завершение проекта. Ответственность, как важнейшее свойство ТП, по существу представляет собой гарантию выработки лучшего решения, поскольку, как нам представляется, незримо «встраивается» в данные инстайта, обнаруживаясь через эмоциональную реакцию в момент проявления решения. Наблюдение – это одним из возможных вариантов реализации ответственности в проектировании ПС. Посредством ответственного наблюдения можно максимально конкретизировать проектные и отладочные данные, проникнуть вглубь причины возникшей ошибки.

Роль наблюдателя нивелирована в сегодняшних технологиях создания ПС, практически наблюдатель лишен возможности контролировать всю цепочку выработки локального результата. Наблюдатель может управлять только тем, что позволит ему технологический план или инструментальные средства.

Как итог, выделим основные черты ответственного наблюдения, как концептуально- стратегического средства:

§  используя ответственное наблюдение, удается связать графически выраженные данные ЖЦ проекта на базисе ответственности за связи между элементами на ККФ.

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

§  используя ответственное наблюдение и ДЗ, существует возможность сохранить порядок разработки алгоритма, согласно которому будет облегчен последующий его рефакторинг.

Подводя итоги высказанному, важно отметить наиболее существенное и важное: сегодня необходима широкая дискуссия с привлечением специалистов различных сфер знаний о проблемах неформальной постановки некоторых задач информатики для получения качественных, а не только оптимальных решений в разработке ПС. Когда схему взаимодействия человека или группы людей с компьютером удастся привести к условиям доминирования ТП в плане выработки результатов, мы ожидаем получить максимально гибкий вариант человеко- компьютерного взаимодействия с перспективой достигать реально качественных ответственных решений.

Литература

1.  Брукс Ф. Мифический человеко-месяц или Как создаются программные системы. СПб., Символ-Плюс, 2001

2.  Cockburn A., Characterizing people as non-linear, first-order components in software development,- Humans and Technology, October 1999.

3.  Макконел C., Совершенный код. - М.: Русская Редакция; СПб.: Питер, 2005. -896 с..

4.  Демарко Т., Листер Т. Человеческий фактор: успешные проекты и команды. СПб., Символ-Плюс, 2005.

5.  Fowler M., Who Needs an Architect?, IEEE Software, July/August 2003

6.  Капица П.Л. Эксперимент, теория, практика. М., 1977.

7.  Wallas G. The Art of Thought. N.Y., 1926.

8.  McCarthy J. Creative Solutions to Problems - 1999.

9.  Guilford J. P. Creativity. American psychology. — N.Y., 1950.

10.  Пономарев Я.А. Психология творчества. М.: Наука, 1976.

11.  Буч. Г., Объектно-ориентированный анализ и проектирование с примерами приложений на С++, М.: "Бином", СПб: "Невский диалект", 1999. - 560 с.

12.  Разумовский А.И. Соорганизация элементов информационного пространства проектирования алгоритмов и программных систем / Труды материалов  международной конференции CAD/CAM/PDM-2010, М.: ИПУ РАН, 2010.  с. 40-43

13.  Мински, Марвин. Фреймы для представления знаний. — М.: Энергия, 1979.

14.  Величковский Б.М. Современная когнитивная психология. - М. МГУ, 1982., 536 с.

15.  Лаптева Е.М., Валуева Е.А. Роль креативности в использовании подсказок при решении задач. - Психология. Журнал Высшей школы экономики. 2010. Т. 7. № 4. С. 97-107.

16.  Kokinov, B., Hadjiilieva, K. & Yoveva, M. (1997). Is a hint always useful in problem solving? The influence of pragmatic distance on context effects. Proceedings of the Nineteenth Annual Conference of the Cognitive Science Society (p. 974). Hillsdale, NJ: Lawrence Erlbaum Associates.

17.  Канеман Д., Словик П., Тверски А. Принятие решений в неопределённости. Харьков: Гуманитарный фонд, 2005.