Концепция | Формализация: процесс и результат
Содержание
Формализация тесно связана с моделированием, но эти два процесса – не одно и то же. По Фридланду /4, п. 9.1/ моделирование – это разработка моделей как объектов-носителей некоторого смысла, а формализация – придание модели свойства быть более или менее однозначно интерпретируемой (понимаемой) кем-либо, кроме её создателя. Вводится понятие уровня формализации как степени необходимого участия создателя модели в процессе её интерпретации; если модель недостаточно формализована, то создатель должен разъяснять её содержание другому человеку, уточняя интерпретацию. Возможно, что разъяснением вместо создателя другой человек (транслятор). Нас интересует не всякое моделирование, а информационное.
Информационная модель – это описание объекта моделирования в виде знаков по правилам некоторой знаковой системы (языка), т.е. текст в некотором алфавите (в широком смысле, когда знаки есть любые различимые объекты, о значении которых договорено между сторонами, а в тексте они упорядочены не обязательно линейно).
Чем же обладает создатель (транслятор) модели для её точной интерпретации? Очевидно, представлением о том, как выражать свои знания на некотором языке. Такое представление является в той или иной степени индивидуальным (личностно значимым), и другой человек может вкладывать в элементы того же языка другие значения. Поэтому вводится вертикальная иерархия уровней последовательного уточнения модели. Фридланд в /4, п. 9.1/ выделяет следующие иерархические уровни информационного моделирования и формализации (см. схему):
Уровни моделирования и формализации
Опишем каждый уровень с некоторыми комментариями и уточнениями; главным образом они будут касаться типизации процессов и содержания методов информационной деятельности.
Первым уровнем формализации считается появление мысленного образа объекта моделирования. Уточним, что объект этот чаще всего реальный, воспринятый органами чувств; однако возможен и воображаемый объект (в частности – языковая конструкция).
Отметим, что возможность вообразить себе нечто нереальное подразумевает и возможность представить в уме некий объект абстрактно, мысленно выделив в нем то, что для аппарата мышления существенно в данном случае и отвлекаясь от несущественного. Далее можно обобщить ряд объектов, выделив в них совпадающие черты (свойства) и установив различия. Именно способности к абстрагированию обобщению важны для формализации; они позволяют перейти от личностно значимого смысла к общепонятному для ряда носителей языка (обыденного и/или профессионального).
Обычное (развитое) сознание дает возможность оперировать как с реальными, так и воображаемыми объектами, представляя их как конкретно, так и абстрактно. Однако возможно и ограниченное мышление, в т.ч. примитивное, не дающее возможности абстрагирования и/или обобщения, а иногда и воображения чего-то; оно оперирует только с объектами, «данными нам в ощущениях».
На втором уровне мысленный образ последовательно переходит в речь (в т.ч. внутреннюю). Для этого нужно владеть речью, что достигается погружением в среду общения носителей какого-то языка (который становится родным) по крайней мере с момента рождения.
Укажем на важные обстоятельства. Во-первых, если человек лишен среды языкового общения в течение определённого времени после рождения, то возникает известный «феномен Маугли»: человек не в состоянии мыслить по-человечески и ограничен животным поведением; если среда общения примитивна, то возможен тот же феномен в более или менее смягчённом виде – т.н. эффект сужения кода мышления. Современные исследования показывают, что в утробе матери человек уже способен воспринимать речь на уровне эмоциональных ощущений; т.о. среда развитого общения вокруг человеческого существа необходима еще до появления его на свет.
Во-вторых, возможно владение более чем одним языком как родным; при этом возникают интересные эффекты мышления.
Пример. По воспоминаниям советского российского писателя А.Мамедова1 в период его детства и юности в г. Баку (1960-е и 70-е годы) существовала реально полиэтническая (и соответственно многоязычная) среда общения; в результате «...дети рано начинали говорить на двух-трех языках и понимать, что об одном, например, лучше сказать на русском, о другом – на азербайджанском, а третье идеально выражается на армянском языке <...> что существуют вещи, непереводимые в принципе...»
На третьем уровне отбрасываются эмоции, свойственные речи; в результате получается текст. Конечно, чтобы записать (а вначале – хотя бы вообразить) текст на естественном (родном для человека) языке, нужно быть грамотным:), но не только.
О формализации от речи к тексту хорошо сказал в свое время американский писатель Марк Твен в своих «Записных книжках»: «…авторучка для писателя служит своеобразным фильтром; не все, о чем думаешь, поддается записи на бумаге.»2 Нужно уметь отчуждать текст (извлекать данные из речевого представления мыслей) как точный, сжатый и целостный образ объекта формализации.
На четвёртом уровне текст записывается по законам соответствующей науки. Уточним, что здесь используется как система обозначений (напр. химических), так и правила интерпретации знаков и конструкций естественного языка, построения текста.
Отметим, что хотя язык каждой науки обладает своими особенностями, можно выделить и общие свойства всех научных языков. В частности, Фридланд в /1, с.11/ указывает «четыре золотых правила научного изложения и восприятия научного произведения», предложенные акад. А.М. Новиковым и популяризируемые методологом В.В. Краевским:
«1-е правило. Основные понятия, утверждения (теория в целом) должны быть явно и ясно определены независимо от знания их реципиентом (получателем).
2-е правило. При оценке истинности суждений пользоваться только определениями, которые дал пропонент (источник), не подменять их своими представлениями.
3-е правило. Явное определение не принимается, если оно не согласуется с контекстом.
4-е правило. Выбор подходящего определения опирается на специфику задачи, которая решается с помощью данного определения.»
На пятом уровне составляется абстрактная (логико-математическая) модель, которую не просто можно точно записать, но и проверить на правильность, используя математические способы доказательства.
При формализации на этом уровне используется понятие конструктивного объекта.
Конструктивный объект – понятие неопределяемое. По А.П. Ершову, «…в математике часто выделяют объекты, построения и рассуждения, которые называют конструктивными... для такого рода объектов... дополнительное допущение состоит в том, что эти объекты можно взять <в уме> и рассматривать, построения можно выполнить, а рассуждения можно провести "эффективно"... в реальном мире... осуществление любого из указанных действий д.б. выполнимо в конечное время и с использованием конечного количества материальных средств.»3 К таким объектам в математике относятся числа, матрицы, графы, таблицы и др., описанные конечным текстом в конечном алфавите.
В математике выделяются сферы, изучающие различные классы конструктивных объектов: теория чисел, теория графов, теория функций и пр.
На шестом уровне строится информатическая модель, где ставится задача, которую нужно решить. При этом выделяются данные (в т.ч. отображающие реальные объекты) и операции по обработке данных, описывается последовательность операций. При этом используется некий формальный язык и задаётся система правил порождения (вывода), разрешающих переход от одних конструктивных объектов к другим. Этот уровень считается самым высоким при формализации – предполагается, что информатическую модель однозначно понимает любой подготовленный человек.
На данном уровне важным является вопрос о базовых элементах структуры операций.
Седьмой уровень детализирует модель предыдущего уровня для конкретного исполнителя (по Ершову – «пользователя материальных средств»).
Здесь уточним, что исполнитель формально характеризуется:
набором выполняемых операций, или множеством предписаний исполнителя (МПИ); будем для краткости называть его репертуаром4;
набором, или множеством типов (МТ) объектов (напр. типов данных), воспринимаемых исполнителем (разрешённых); будем далее называть его багажом исполнителя;
множеством механизмов, выполняющих конкретные операции над конкретными типами объектов; будем называть это множество реквизитом;
языком общения, на котором отчуждаются описания операций, объектов и механизмов.
Изначальным исполнителем является человек, который использует естественный язык общения. При формализации этот язык тоже д.б. так или иначе формализован – в противном случае модель не будет однозначной.
Информатическая модель «переводится» на язык исполнителя; в результате получается алгоритмическая модель – процесс решения задачи данным исполнителем. Часто язык абстрагирован от исполнителей; при этом задаётся базовый набор операций и типов данных.
Под алгоритмом понимают конечный набор правил (указаний, предписаний), который предназначен определённому исполнителю и удовлетворяет следующим основным требованиям:
Массовость. Алгоритм должен обеспечить выполнение не единственной процедуры, но класса однородных процедур. Начальная система величин может выбираться из некоторого потенциально бесконечного множества.
Детерминированность. Указания, образующие алгоритм, должны однозначно пониматься исполнителем. Реализация алгоритма, т.о., никак не зависит от желаний исполнителя.
Результативность. При выполнении за конечное число шагов должен быть получен результат либо указание на неприменимость данного алгоритма для решения интересующей нас задачи.
Алгоритм описывается на некотором формальном алгоритмическом языке (алгоязыке).
На восьмом, завершающем, уровне, создаётся командная модель – последовательность шагов, решающих задачу. Этот уровень завершает иерархию моделирования и формализации.
Отметим, что Фридланд называет эту модель компьютерной, предполагая, что на этом уровне обязательно использование информашины; однако точно так же может действовать и человек (допустим, "школьная" запись решения математической задачи "по действиям" есть командная модель этой задачи; а запись, скажем, операции умножения (деления) "в столбик" – этой операции).
Еще одно представление модели решения – маршрутное – введем, исходя из того, что алгопроцесс есть цепочка смен одного объекта другим. На этом уровне все действия линейно упорядочены, т.е. командная модель «развернута» в цепь команд – маршрут от начала к концу алгоритма. Понятно, что это можно сделать только для конкретных значений исходных данных; тогда известны все логические условия, определяющие выбор конкретного маршрута из разнообразия возможных. Это и нужно реальному исполнителю – человеку или машине.
Итак, в конечном итоге информатическая модель – это сведение текста в широком смысле к набору линейных прочтений.
Модели уровней 1...4 можно считать слабо формализованными, при переходе сверху вниз теряется часть информации об описываемом объекте; соответственно на схеме их контуры изображены штриховыми линиями. На последующих уровнях происходит формальное преобразование одних моделей в другие; контуры этих уровней мы изобразили сплошными линиями. На всех этапах, кроме первого, прообразом служит не действительность, а образ её – модель предыдущего уровня.
В частном случае, если прообразом является математический объект (т.е., начиная с уровня 5), возможно взаимно однозначное соответствие объекта и модели (изоморфизм). Соответствие м.б. и односторонним (гомоморфным), когда каждому элементу модели можно указать соответствующий элемент в исходном объекте, но не наоборот. Эти вопросы подробно изучает математическая логика.
Индивидуальный характер моделей каждого уровня определяется особенностями мышления конкретного человека. Они формируются в ходе предыдущего развития сознания личности.
Следуя Фридланду, мы понимаем знание как компоненту информации, неотъемлемую от человека, а данные – как информативную (для сознания) компоненту окружающего мира, в т.ч. отчуждаемую человеком часть знания (см. /4, Гл.4/ и п.1.1.2 Приложения 1).
Итак, под информатическим мы понимаем предельно формализованное, не требующее обязательного участия человека для своей интерпретации. Оно есть часть информационного наряду с интеллектуальным, относящимся только к человеческому мышлению.
С позиций Фридланда, становится неоправданным также эпитет «интеллектуальный» по отношению к искусственным системам. Мы можем говорить лишь об интеллектной системе, если при её проектировании использованы все возможности (в т.ч. знания о процессах мышления) по адаптации алгоритмической обстановки к меняющейся реальности.
Комплексируя выделенные выше уровни, можно выделить качественную (по Фридланду – уровни 1…4), математическую (уровень 5) и информатическую (уровни 6…8) стадии моделирования и формализации.
С данной точки зрения существенно, что решение любой задачи проходит описанные стадии; однако очевидно, что в тех или иных случаях (напр., при решении повседневных задач) невозможно говорить о решении средствами математики и информатики в привычном смысле – явном («на бумаге») и точном. Поэтому следует понимать, что существует (и активно используется людьми) также нестрогая (неформальная, интуитивная) математика и информатика. Подходы к её выделению и описанию сформированы в последние годы5.
Используя тернарную иерархию стадий, в принципе можно «развернуть» иерархию уровней формализации и по-иному; для данного документа в этом не необходимости.
Процесс формализации (как строгой, так и нестрогой) итеративен в целом и в пределах каждого уровня: этапы качественной формализации можно повторять до получения удовлетворительного письменного описания предмета, этапы математической – до подходящей формулировки задачи, информатической – до командной модели, реализуемой исполнителем.
К средствам и способам формализации знаний можно и нужно предьявлять теоретически и практически обоснованные требования качества, как и в других сферах деятельности человека. Говоря просто, форма, цвет, расположение на диосцене элементов данных (включая часть знаний, отчуждаемых от носителя-человека) д.б. удобны, эстетичны также как, скажем, у элементов операторского пульта машины, инструмента, мебели.
Традиционная эргономика, научно изучая системы «человек-техника», согласует свойства техники с человеческими для повышения гарантоспособности этих систем. Когнитивная эргономика, изучая системы «человек-знания», аналогично видоизменяет представление данных (в первую очередь на диосцене), исходя из свойств мышления.
Обсудим ещё одну проблему – как понимать автоформализацию знаний. Фридланд в /4, п. 9.3/ дает следующее определение: это формализация, которую человек (имеется в виду носитель знаний) выполняет сам. Далее приводится конкретный пример, который, по мысли автора, должен исчерпывать собой это понятие.
Пример. В начале 1990-х годов появился автокран со встроенным управляющим компьютером, который фиксировал манипуляции крановщика на пульте управления в виде сценария и затем мог «прокручивать» этот сценарий столько раз, сколько надо. Пусть нужно поднять на пятый этаж 20 поддонов с кирпичами; с помощью такого крана эта задача решается следующим образом. Крановщик, включив машину, выполняет процедуру один раз очень тщательно; компьютер запоминает все его действия. Оставшиеся 19 раз человек просто отдает команду вызова сценария, а кран выполняет все автоматически; однако каждый раз перед этим кто-то должен подтаскивать очередной поддон к тому месту, с которого был взят первый.
Здесь автоформализация протекает путём записи данных о действиях человека при решении к.-л. задачи. Исходя из этого, Фридланд определяет автоформализацию профессиональных знаний как процесс автоматического оформления действий пользователя в виде программы для информашины с помощью специальных средств. Однако это следует считать лишь частным случаем, рассчитанным на человека с низким уровнем информатической культуры; этот человек, используя свое профессиональное знание (уровень которого, напротив м.б. весьма высок), фактически ставит «натурный эксперимент» по выработке данных о техпроцессе на своем рабочем месте, содержащем средства автооформления. В дальнейшем результат этого эксперимента (возможно, наиболее удачного из нескольких повторов) использует уже автоматизированная система для работы без участия человека. Очевидно, что такая автоформализация возможна как средство решения повторяющихся задач управления; иначе оператору нет смысла вести запись, тем более тщательно следя за своими действиями. Кроме того, она носит частный характер; чтобы решить даже ту же самую задачу, но по-другому, эксперимент с участием человека следует провести вновь.
По сути, мы видим метод проб и ошибок, или «информатического тыка», который, конечно, не является единственно возможным (по крайней мере, с тех пор, как человек освоил научный метод познания). А каким ещё образом может происходить автоформализация?
Общеизвестен логико-математический метод (применительно к программированию изучаемый в школьной информатике как основной), когда носитель знаний описывает свою задачу на некоем формальном ЯПЗ и по полученной модели формальным методом строит гарантированно работоспособный и оптимальный в некотором смысле алгоритм решения (который далее кодируется на доступном языке программирования, также «по всем правилам» оптимизации). В этом случае пользователь формирует технологию решения на базе имеющихся инструментальных средств подобно тому, как это делал бы квалифицированный разработчик. И этот путь ничто не мешает считать автоформализацией (правда, годится он для носителей профессиональных знаний, обладающих в придачу достаточной математической и информатической культурой, чтобы создать модель и алгоритм решения своей задачи). В то же время и он не исчерпывает всех возможностей; существует по крайней мере ещё одно направление.
В свое время ещё Дж. фон Нейман указывал по поводу программирования и вообще информатического описания решений сложных проблем: «…у нас не может быть уверенности в том, что в этой области объект <программа> не является простейшим описанием самого себя, т.е. что описание его любым словесным или формально-логическим методом не приведёт к чему-то более сложному, запутанному и трудно выполнимому»6.
Из этой посылки вытекает метод прототипирования инфопрограммных изделий, при котором носитель знаний, владея некоторым языком программирования и имея знания (опыт) его использования, создает сразу программу, делающую «примерно то, что надо» для решения задачи; далее он её улучшает (часто в ходе эксплуатации), используя и как «техзадание».
Т.о. обладая знанием о некотором инструменте формализации, пользователь может создавать средства решения своих задач интуитивно, без построения формальной модели, но и избегая «тыка»; оптимизация проводится сразу на работающем изделии (напр., тексте программы).
Таким путём обычно появляются программы (и инфорсимы, и вообще искусственные системы) «для себя» (т.н. утилитарные); его тоже следует рассматривать как автоформализацию знаний.
Итак, автоформализация (как, впрочем, и формализация «чужих» задач) возможна тремя различными классами методов, которые составляют опять-таки системную триаду; методы «тыка» можно относить к эмоциональным, логико-математические – к рациональным и прототипные – к интуитивным. Выбор класса зависит от способностей и опыта разработчика решения, его предпочтений, возможностей имеющегося инструментария. К настоящему моменту уже назрело понимание различия классов и стали оформляться соответствующие технологии.
Пример: логико-математические методы. В этом классе наиболее широко распространены упомянутые CASE-стандарты семейства IDEF как часть более широкого семейства методологий SADT. Все они не строго формальны; поэтому в настоящее время предпринимаются усилия по более строгой математической интерпретации их7.
Пример: методы «тыка». Популярные инфопроги (напр. пакет MS Office) содержат встроенное средство автозаписи всех действий пользователя с элементами (объектами) приложения, активного в данный момент. Скажем, человек может создавать форму (шаблон) к.-л. документа, а информашина будет автоматически записывать последовательность его действий для этой цели (конечно, где начинать и где завершать запись – определяет сам человек). Далее пользователь может отдать команду сохранения записи как макрокоманды (новой функции) текущего приложения; потом он же или другой человек может выполнить эту команду (как в примере с автокраном).
Пример: методы прототипирования. В настоящее время активно развивается семейство т.н. RAD-методологий8 программирования. Они основаны на создании приложения-прототипа и его усовершенствовании; при этом прототип регулярно демонстрируется будущему пользователю для оценки соответствия его требованиям.
Рассмотренный процесс формализации является частью более широкого процесса структуризации9 предметных областей. Методология структуризации сложных систем позволяет формировать их адекватные модели (сохраняющие все значимые характеристики).
В начало страницы | Оглавление | Версия для печати
Copyright © Жаринов В.Н.
1 Программа "Разночтения" // Телеканал "Культура", эфир от 16.11.2007 г.
2 Твен М. Собрание сочинений. – М.: Правда, 1980. – Т.8.
3 Ершов А.П. Введение в теоретическое программирование. Беседы о методе. – М.: Наука, 1977, с. 59-60.
4 Термин введен В.Д. Паронджановым.
5 См., напр., работу: Герасименко В.А. Защита информации в АСОД. – М.: Энергоатомиздат, 1994.3, Гл.3.
6 Громов Г.Р. Национальные информационные ресурсы. – М.:Наука, 1985. – С. 216.
7 См.: Костров А.В. и др. Уроки информационного менеджмента. – М.:Финансы и статистика, 2005. – Разд.7;П.8.1.
8 От англ. Rapid Applications Development – быстрая разработка приложений.
9 На это указывалось, в частности, в: Герасименко В.А. ..., пп. 3.6, 3.7.