Философские аспекты теории вычислений
УДК 004.27; 519.7
DOI: 10.17726^ШТ2016.11.1.004.27
Коннекционистское расширение минимальной модели вычислений (часть 1)*
Матюшкин Игорь Валерьевич,
ведущий научный сотрудник, Институт проблем проектирования в микроэлектронике РАН, Москва, Зеленоград, Россия
imatyushkin@ippm.ru
Аннотация. Проанализированы современные варианты коннекцио-нистских систем. Вычленено 5 основных вариантов: клеточные автоматы, нейронные сети, клеточные нелинейные сети, вычислительные кластеры и Грид. Коннекционизм рассматривается как синтез параллелизма вычислений и пространственной дистрибутивности вычислителя, а за основу его описания взяты принципы Руммельхарта. Указано на сходство вычислимости, по крайней мере на прикладном уровне - вычислительных приемов, в коннекционистских системах. Нетрадиционный компьютинг, в частности, в пределах коннекционистских систем, требует расширения классической фон-Неймановской модели вычислений, прежде всего признания ее неабсолютности. Постулируется необходимость перехода на более высокий уровень абстракции и уточнения термина «модель вычислений». Впервые поставлен вопрос о минимальной (абстрактной) модели вычислений и дана ее теоретико-множественная формализация, предполагающая 5 базовых множеств и 5 базовых отношений.
Ключевые слова: модель вычислений, вычислимость, параллельные вычисления, клеточные автоматы, нейронные сети, коннекционизм.
* Данная работа осуществлена в рамках Программы фундаментальных научных исследо-ваний Президиума РАН, НИР «Исследование перспективных моделей вычислений и реа-лизующих их архитектур высокопроизводительных информационно-вычислительных комплексов нового поколения».
Философские аспекты теории вычислений
Connectionist extension of irreducible computation model (part 1)
Matyushkin Igor Valerievich,
leading scientific employee, Institute of Design Problems in Microelectronics RAS, Moscow, Zelenograd, Russia
imatyushkin@ippm.ru
Abstract. We analyzed the modern variants of connectionist systems. We singled out the five main variants: cellular automata, neural networks, cellular nonlinear network, computing clusters and Grid. The connectionism is considered as a synthesis of computing parallelism and spatially distributed system. Its description is based on Rummelhart principles. Computability similarities are indicated at least at the application level, i. e. at the level of computational methods in connectionist systems. Nontraditional computing, in particular, within the connectionist systems, requires an expansion of the classical von Neumann computing model, first of all the recognition of its nonabsoluteness. The necessity of transition to higher level of abstraction and elaboration of the term "computation model" are postulated. For the first time the issue of irreducible computation model is raised and its set-theoretic formalization is given. This one assumes five basic sets and five basic relations.
Keywords: model of computation, computability, parallel computing, cellular automata, neural networks, connectionism.
Введение
Современный прогресс в области вычислительных систем и информационных технологий требует, во-первых, переосмысления классических работ 40-х гг. XX в. по вычислимости и теории алгоритмов и развития, прежде всего в аспекте более жесткой формализации понятия «модель вычислений» (МВ, model of computation); во-вторых, анализа многообразных подходов в русле концепции параллелизма, которую, имея в виду физическую реализацию в виде немонолитных вычислительных систем, лучше назвать парадигмой коннекционизма.
В первом разделе мы раскроем содержание коннекционизма, объединяющего в себе несколько, как оказывается, самостоятельных научно-технических направлений. Он носит в некотором роде
предваряющим характер, подготавливая читателя, чье мышление, несомненно, последовательностно к образам вычислительного параллелизма. Это не так просто, так как педагогическая практика автора показывает, что основную сложность усвоения студентами клеточных автоматов составляет их синхронизм. Да и алгоритмы нами понимаются обычно как последовательностью конструкции.
Во втором разделе мы проведем актуализацию проблемы, рассмотрев и классический, и более современные подходы к МВ, уточнив используемые термины. Там же мы введем представление о шкале МВ и минимальной (абстрактной) МВ, лежащей на одном из концов шкалы.
В третьем разделе мы представим оригинальную теоретико-множественную формулировку минимальной модели вычислений.
Четвертый раздел посвящен возникающим вопросам, на которые у нас нет пока ответов.
Предлагаемая статья носит двойственный характер, не являясь технической, поскольку мы не опускаемся до уровня проектирования вычислительных платформ/систем, но и не представляя из себя философскую, поскольку мы, минуя длинные рассуждения, устремились к математическим формулировкам.
1. Парадигма коннекционизма
Современное развитие вычислительных систем связано с понятиями массивно-параллельной обработки (MPP, massive parallel processing - как подкласс MIMD в классификации Флинна) и распределенной системы (distributed system). Параллелизм - воспроизведение в нескольких копиях некоторой аппаратной структуры, что позволяет достигнуть повышения производительности за счет одновременной работы всех элементов структуры, осуществляющих решение различных частей этой задачи [1]. Требование «быть копией» может быть на практике ослаблено. Массивность означает высокую степень связности процессорных элементов вплоть до схемы «каждый-с-каждым» и предполагает наличие единой коммутационной среды. Распределенная система - это совокупность независимых компьютеров, представляющаяся для пользователей как единая согласованная система [2]. Требование «быть ЭВМ» также может быть ослаблено; компьютер можно определять как вычислитель любого рода (вплоть до раз-
Философские аспекты теории вычислений
меров молекулы ДНК). Как правило, параллелизм подразумевает распределенность, и наоборот. Хотя, конечно, последовательные вычисления тоже могут быть распределенными (конвейерная система, клеточный автомат в асинхронном режиме). Параллелизм/ последовательностность есть характеристика временная, а распределенность/монолитность есть характеристика, так сказать, пространственная. Можно записать символически: коннекцио-низм = параллелизм процесса + распределенность архитектуры.
Исторически коннекционизм (=коннективизм, connectionism) происходит от попыток понять, как мыслит человек [3] (в современной трактовке, сводящей мышление к разновидности переработки информации,- какова вычислительная модель мозга?). Аристотель полагал, что новые идеи рождаются от ассоциации прежних идей. Гоббс уточнял, что это происходит при условии их близости во времени, а Локк указывал на необходимость их сходства. Известный психолог Э. Торндайк полагал (1910): ««Возникновение связей является результатом как состояния мозга, так и действия внешних ситуаций. Часто связи приобретают вид длинных последовательностей, в которых реакция на одну ситуацию становится новой ситуацией, вызывающей следующую реакцию, и т.д. Связи могут создаваться как частями, элементами или особенностями отдельной ситуации, так и всей ситуацией в целом... Связываться могут едва различимые отношения или смутные аттитюды и интенции». Заслуга Торндайка состоит в выделении элементов и элементарных актов (identical-elements theory). Современный коннекционизм имеет начало в работах МакКал-лока по искусственным нейронным сетям (ANN или, чаще, NN) и Тьюринга, рассматривавшего случайную сеть ассоциатов логических вентилей (1948). Как пишет Е. А. Янковская, акцентируя внимание на децентрализованности, «понятие гетерархия, предложенное МакКаллоком, становится основой для концептуальных и/или формализованных моделей сложных систем. является контингентным и отчасти альтернативным по отношению к понятию иерархии» [4].
Главный принцип коннекционизма состоит в предположении, что мыслительные явления могут быть описаны сетями из взаимосвязанных простых элементов. Форма связей и элементов может меняться от модели к модели. Например, элементы в сети могут представлять нейроны, а связи - синапсы. Другая модель
может считать каждый элемент в сети словом, а каждую связь -признаком семантического подобия и т.п. Лозунг радикального коннекционизма - «связи - все, элементы - ничто», т.е. для результата вычислений более значимы связи, а не особенности структуры элементов, чем бы те ни были. Под коннекционизмом применительно к вычислительным системам обычно понимается подход, ориентированный на максимальное распараллеливание обработки данных и терминологически тождественный PDP (Parallel Distributed Processing). По нашему мнению, основной вопрос коннекционизма заключается в том, где остановиться в упрощении элементов и усложнении структуры связей с точки зрения эффективности вычислений. Движение к максимальному распараллеливанию есть одновременно движение к увеличению числа и упрощению элементов. Основные принципы модели PDP, не без влияния нейросетевой лексики, были сформулированы Д. Е. Румельхартом и др. в 1986 г. [5].
Анализируя парадигму коннекционизма, мы должны прежде всего уйти от ее нейрофизиологических истоков и ее конкретных имплементаций, по каждой из которых существует обширная литература (те же нейросети, те же архитектуры параллельных вычислительных систем). В настоящее время можно выделить пять коннекционистских имплементаций (см. рис. 1):
• Клеточные автоматы (включая специализированные мультипроцессорные системы типа CAM-8);
• Искусственные нейронные сети;
• Клеточные нейронные сети;
• Кластерные вычислительные системы (от многоядерных персональных ЭВМ до нескольких серверов в пределах одного помещения);
• Облачные и GRID-проекты.
Если первые три направления требуют простоты структуры элемента (unit, по Румельхарту) и множественности элементов, то последние два обращены к сложным и немногочисленным элементам. Возможно, с развитием нейроморфных и мемпроцессор-ных вычислений [6; 7] появятся «средние» по числу элементов вычислительные системы и/или они приобретут иерархический вид. Для таких, например, UMM-систем [7] необходимы не-фон-Ней-мановские МВ. Одной из простейших причин этого является возможный аналоговый или многоуровневый (в отношении числа
Философские аспекты теории вычислений
Клеточные автоматы Клеточные нейросети Нейронные сети
• однородность элементов • локальность связей • синхронность (нет активации) • локальность связей • аналоговость состояний и сигналов • суммация связей • нет памяти у элементов • перенастраиваем ость связей • слабая иерархичность
Парадигма коннекционизма
Вычислительные кластеры
GPU, CPU;
элемент-
чип/компьютер
многообразие
архитектур
центральный
процесс
Облачные, GRID расчеты
элемент-
компьютер,
гетерогенность
центральный
компьютер
есть активация
Рис. 1. Образы коннекционизма в современной вычислительной технике
состояний «бита») характер вычислений; фон Нейману отдельно пришлось обосновывать битовый, а не десятичный, как в прежних машинах, тип кодировки. Кроме того, судя по введенной абстракции мемпроцессора, элементарные память и процесс вновь объединяются, приобретая черты ячейки клеточного автомата. Мемпроцессор определен четверкой (х, у, z, <ггде x - состояние, y - внутренние переменные, z - переменные, общие с соседними мемпроцессорами, а: 1-» (х',у') - оператор эволюции. Вся
конструкция обнаруживает сходство с клеточными автоматами (КА) на разбиении. Авторы [7] уже продвинулись на пути реализации мемпроцессора «в железе»; разработанная модель применима к современным архитектурам нейрочипов, состоящих из нескольких аналоговых нейронных ядер,- проекты: TrueNorth и FACETS.
2. Что такое модель вычислений?
Безусловно, по конкретным моделям вычисления работ более чем достаточно, но не предпринималось попытки систематизации
и поднятия проблемы на более высокий уровень абстракции, быть может, философской, особенно если считать мышление неким вычислением. Достойно удивления, что до сих пор в литературе не рассматривался вопрос об абстрактной модели вычислений. Такое положение, по-видимому, объясняется либо тем, что вычисления по умолчанию считались последовательными (и соответственно формулировки Тьюринга или фон Неймана возводились в абсолют), либо тем, что когда в наше время параллельные вычисления стали востребованными, не нашлось времени, прежде всего у разработчиков многопроцессорных систем, увязших в деталях реализации своих детищ, для переоценки всей вычислительной практики.
Если кто-то говорит о «модели вычислений», то что под этим понимается? Есть ли общеупотребительное значение, как у термина? Аналогичная ситуация уже была в истории науки: сами алгоритмы были известны давно (со времен Евклида), само сло-воименование было завезено в Европу Лейбницем в 17 в., а формализация случилась лишь в 20 веке (Гильберт и др.). Так в настоящий момент и с моделями вычислений: словоименование уже есть, а формализации еще нет. Первая из целей статьи - предложить вариант такой формализации. Мы будем говорить поэтому об абстрактной МВ, ее можно было бы назвать метамоделью вычислений или, что предпочтительнее, на наш взгляд, о минимальной МВ (ММВ). Практическая значимость ММВ состоит в том, что она предъявляет список вопросов, на которые должен ответить разработчик какой-либо конкретной МВ, что она подскажет ему систематизирующий шаблон, который он должен заполнить детализацией структуры тех или иных множеств.
Одно из центральных понятий математики - функция - определяется как однозначное отображение множества Х на множество У, т.е. У : X —> У. Но это определение фиктивное, поскольку использует неопределимое, интуитивное понятие отображения или соответствия. Понятие «алгоритм» через понятие вычислимой функции уточняет наше представление о функции, вводя процедуру вычисления, отвечая на вопрос не «что соответствует заданному х?», а «как строится соответствие?». Различные формализации алгоритма были получены в 30-40-х годах XX века Гильбертом, Постом, Тьюрингом, Геделем, Черчем и Марковым. Принципиальная недоказуемость тезиса Черча (весь класс вычислимых
Философские аспекты теории вычислений
с помощью алгоритмов функций совпадает с классом частично рекурсивных функций) означает невозможность дать точное определение алгоритму. МВ в свою очередь уточняет понятие алгоритма и отвечает на вопросы «как реализуется соответствие?», «как работает вычислитель?», дополняя сам алгоритм сведениями о вычислителе. В Википедии принято более узкое, слишком инженерное определение: «.. .теория вычислимости и теория сложности вычислений трактует МВ не только как определение множества допустимых операций, использованных для вычисления, но также и относительных издержек их применения. Охарактеризовать необходимые вычислительные ресурсы - время выполнения, объем памяти, а также ограничения алгоритмов или компьютера - можно только в том случае, если выбрана определенная МВ».
Имеется и смежное понятие: вычислимость (сотрйаЫШу, англ.) - способность вычислителя исполнить алгоритм. На основании нашего анализа вычислимости в области клеточных автоматов уместно выделить универсальную и специальную вычислимость. Если первая часто связана с общими теоремами существования, то последнюю определим как совокупность правил конфигурирования вычислителя определенного рода для реализации конкретных алгоритмов или конкретных классов алгоритмов (часто эти правила подбираются эвристически/эмпирически). Понятие вычислимости столь же изначальное, как и функция или алгоритм, не в последнюю очередь потому, что размыта степень подробности задания вычислителя и его исполнительных механизмов. Соотнесение понятий «модель вычислений» и «вычислимость» представляется сложным, но не тождественным; первое «уклонено» ближе в архитектуру вычислителя, а второе - в сторону самих алгоритмов. Попытаемся, если возможно, пояснить это различие на примере древней задачи построения числа п циркулем и линейкой. Модель, в данном случае построения, спрашивает про инструментальные средства, что разрешено нам делать с циркулем и линейкой (и как нам организовать процесс их взаимодействия с бумагой). Если нам будет разрешено сколь угодно изгибать линейку, то задача из неразрешимой станет разрешимой (и из одной МВ мы перейдем в другую). Что касается вычислимости, то она будет спрашивать, как нам скомбинировать стандартные приемы (построение перпендикуляра, деление отрезка на N частей), чтобы, возможно, решить задачу для числа п.
По нашему мнению, удовлетворительным неформальным определением можно, следуя [8], считать следующее: «Модель вычислений - это совокупность аппаратно-программных средств и схема их взаимодействия между собой и пользователями, определяющая исполнение алгоритмов». Можно, однако, вспомнить функциональную (функционально-логическую) методологию программирования. По-видимому, несправедливо отказать ей в существовании МВ, т.к. хотя при задании функциональных связей (и их вызовов) нет прямой отсылки к деталям реализации, то это не означает их отсутствия, и всегда существует и должна существовать связь физического и логического состояния вычислителя (и невозможно представить реальный процесс вычисления вне времени). Поэтому данное определение следует расширить так: «... исполнение алгоритмов и/или реализацию функциональных связей». Предлагаемая нами ММВ не исследовалась на применимость для функциональной парадигмы (вероятно, ответ положителен, но требует провести дополнительную спецификацию ММВ). Поэтому далее для простоты будем исходить из императивной точки зрения. Актуальность вопроса «что такое модель вычислений вообще?» стала очевидной только в настоящее время, с распространением ЭВМ с неклассической архитектурой. Вместе с тем представляется важным разграничить вопрос о МВ и вопрос об архитектуре и спецификации сигналов в вычислителе, чтобы исключить опасность подмены одного другим. Не исключено, что и авторы не избежали этой опасности (в конце концов, вопрос «что такое вычисление вообще?», наверное, философский); здесь нам остается только ограничиться замечанием, что МВ не требует чрезмерной детализации и содержит в себе что-то (?) от «вычисления». Подобно тому, как мы выделяли универсальную и специальную вычислимость, целесообразно разделять теоретические и прикладные МВ. Первые формулируются для абстрактных вычислителей/машин, в чистом виде никем никогда «в железе» не воплощаемых, часто наделяемых идеальными свойствами (например, бесконечностью память), а вторые предполагают конкретную вычислительную систему (или их класс) и гораздо более детальную спецификацию вплоть до отражения в технических документах. По нашему мнению, нет качественного различия между теоретическими и прикладными МВ, а есть непрерывная шкала по степени развертывания, на одном конце
Философские аспекты теории вычислений
которой стоит минимальная МВ, постулируемая для вычислителя произвольной природы, на другом конце - скажем так, ком-мерциализуемое описание конкретной вычислительной системы/ платформы. Где-то ближе к началу шкалы стоит МВ коннекцио-нистского устройства, на примере которой показывается развертывание МВ из ММВ, возможное благодаря некоторым исходным предположениями о структуре вычислителя. При этом допустима смена формы описания МВ - из теоретико-множественного к формально-грамматическому (или даже к UML-описанию).
Прекрасным, и одним из первых, примером модели вычислений служит машина Тьюринга, одновременно являющаяся фундаментом классической теории вычислимости. Другим примером, терминологически близким к разработчикам архитектур микропроцессоров, является машина с неограниченным числом регистров (Шепердсон, 1963). Ее детальное описание можно почерпнуть из книги Н. Катленда [9], а кратко она описывается так: для набора нумерованных регистров с хранимыми в них числами имеется линейный перечень инструкций (программа), выполняемых последовательно, причем каждая инструкции принадлежит к одному из типов: обнуление, прибавление единицы, переадресация, условного/безусловного перехода.
Стандартной моделью, являющейся МВ лишь в приближенном смысле, будем называть модель фон Неймана (см. в качестве первоисточника [10]). Отчасти, поскольку новации фон Неймана достаточно радикальны, можно согласиться с утверждением [11], что «.основной вклад фон Неймана состоит в переводе абстрактной схемы Тьюринга в конкретное железо; если предельно упростить то, что сделал фон Нейман, можно сказать, что он перенес бесконечную ленту машины Тьюринга в память». Вызывает некоторое недоумение, что до сих пор, несмотря на множество учебников, отсутствует, судя по просмотренной нами литературе, формализованное математически описание модели фон Неймана; обычно пишут отдельно про архитектуру и принципы.
Неформальное, но концептуально выверенное изложение стандартной модели дано Непейводой [12]. Итак, имеются следующие три элемента:
А. Память, предназначенная для хранения произвольных значений. Конкретизация: значения на аппаратном уровне представляются как последовательности битов.
B. Процессор, способный выполнять команды, т.е. интерпретировать последовательности битов как инструкции для активизации предписываемых этими инструкциями действий.
C. Управляющее устройство, способное указывать команды, которые должен выполнять процессор (иногда управляющее устройство рассматривается как составная часть процессора).
Эти элементы обладают следующими свойствами. Память однородна, линейно-адресна и пассивна. Из однородности памяти следует, что команды и данные (перерабатываемые значения) располагаются в единой общей памяти и одинаково адресуются. Процессор имеет свойство активности. Управляющее устройство содержит адрес команды, назначаемой для выполнения процессором, и обеспечивает централизацию управления. Для передачи данных или команд между памятью и процессором используется специальное оборудование, называемое каналом связи. Он должен:
• подать очередную команду процессору для выполнения (активизируется управляющим устройством);
• получить операнды для выполнения команды (активизируется процессором);
• изменить значение ячейки при выполнении команды (активизируется процессором).
Сказанное выше иногда формулируется в виде трех принципов фон Неймана: двоичного кодирования, программного управления и хранимой программы. Неуниверсальность стандартной модели была отмечена довольно рано [13], в 1978 году, при создании функционального стиля программирования.
Графовый способ выражения, например, через сети Петри, может быть полезен при описании как алгоритмов, так и МВ (особенно для выражения параллелизма). Алгоритмы представляются в виде графа «операции-операнды». Здесь [14] множество операций, выполняемых в исследуемом алгоритме решения вычислительной задачи, и существующие между операциями информационные зависимости могут быть представлены в виде ациклического ориентированного графа: вершины - это выполняемые операции алгоритма, ребра (/, у) определены условием «операция у использует результат выполнения операции /». Вер -шины без входных дуг могут использоваться для задания операций ввода, а вершины без выходных дуг - для операций вывода.
Философские аспекты теории вычислений
В наиболее простом виде модель основывается на предположениях: время выполнения любых вычислительных операций является одинаковым и равняется 1, а передача данных между вычислительными устройствами выполняется мгновенно без каких-либо затрат времени. Если соотнести каждую операцию и операнд с отдельным вычислителем (или его частью) и моментом времени с помощью, например, другого графа, то в совокупности мы можем получить МВ.
Существуют потоковые (dataflow) модели вычислений для сетей [15]. Модель акторов, предложенная довольно давно (Хьюитт, 1973) для функционирования электронной почты, но по-прежнему влиятельная, концептуализирует параллельные процессы. Она трактует [16] понятие «актор» как универсальный примитив параллельного численного расчета: в ответ на сообщения, которые он получает, актор может принимать локальные решения, создавать новых акторов, посылать свои сообщения, а также устанавливать, как следует реагировать на последующие сообщения. Неплохая попытка систематизировать классические и неклассические модели вычислений сделана, исходя из педагогических целей, Т. С. Стефановой [17]. Аспект недетерминированности вычислений, в действительности важный для КА, и понятие «вычислимости» анализируется логико-философскими средствами А. М. Анисовым [18]. Примером таких вычислений могут служить аморфные вычисления (аналог: кинетическая машина Кир-дина) [19]. Весьма близкое к нашему понимание модели вычислений демонстрирует автор [20], однако в нашем обзоре «модель вычислений» будет трактоваться более мягко, ближе к software.
3. Минимальная модель вычислений
Минимальной моделью вычислений (ММВ) назовем такую модель, к которой должны быть сведены все остальные МВ путем абстрагирования от конкретных особенностей вычислителя. Иными словами, ММВ создается для вычислителя универсальной природы, о котором ничего заранее неизвестно. Соответственно ММВ является самой бедной из всех МВ. Если отойти от математики, то ММВ - это список наиболее общих вопросов, на которые обязан ответить разработчик любой новой МВ при ее создании. В аристотелевской терминологии ММВ есть родовое понятие для МВ.
Очевидно, что ММВ, как и любая МВ, может иметь несколько представлений, зависимых от используемого математического аппарата: формальное исчисление, теория множеств или же, если нам это удобно, теория графов. Естественным нашим выбором является теория множеств. Развиваемая ниже авторская структура ММВ, разумеется, не догма, но предложение к выработке таковой.
Зададимся вопросом, что по меньшей мере должна включать в себя МВ. Начнем с тривиальных утверждений. Всякое вычисление предполагает данные х е X и результат у е У (см. п. 1); без этих двух сущностей бессмысленно говорить о каком-то вычислении. Под «данными» мы здесь понимаем и данные в тривиальном смысле, т.е. над которыми работает алгоритм, и сам алгоритм (или функциональную схему). Дальше мы предоставляем вычислитель самому себе. Само вычисление означает смену физического состояния вычислителя, иначе невозможно ни вводить данные, ни считывать результат. Таким образом, МВ должна включать в себя множество, конечное (мощности Ы) или бесконечное, состояний вычислителя ={5 ..., 5 ...}. Кроме того, нужна интерпретация данных и результата, их экстракция из наличного состояния или состояний вычислителя, т.е. gI : В(5) X, gO : В (5) У (здесь и далее В (•) - булеан множества, взятого в скобки, х - знак декартова произведения). Такая конструкция позволяет описать и то, что для записи данных и чтения результата может использоваться не все состояние вычислителя, а только его часть/компонента. Примером может служить «мусор» в стеке памяти ЭВМ в процессе и после вычислений. Введение булеана - вынужденная мера; например, если данное х е X вписывается в двухкомпонентное состояние 51 = аЬ 1е 5 (здесь а, Ь1 - строки, причем а - значащая часть, Ь1 и Ь2 - «мусор»), то подходящим будет и любое 52 = аЬ 2е 5. Хочется отметить возможность для данных и результата быть непрерывными сущностями; обычно ведь оперируют над одним числом, несколькими числами, но не более того.
Всякое вычисление имеет длительность во времени, т.е. динамику смены состояний 5, и также момент останова. Эта динамика может быть дискретной, связанной с сигналами синхронизации, или континуальной. Однако проблема останова, во всяком случае для теории алгоритмов, остается достаточно серьезной (доказана ее неразрешимость для машины Тьюринга). Здесь мы го-
Философские аспекты теории вычислений
ворим о «проблеме останова» не в общепринятом в литературе высоком смысле, а в более «техническом» смысле - должны быть предусмотрены внутренние средства для ее решения: стоп-сим-вол для машины Тьюринга, заключительные формулы подстановок для алгорифмов Маркова и т.д. Для интерактивных систем эту проблему решает пользователь или внешний сигнал w е W Например, как в шахматных программах, принуждение машины совершить ход или более банальное Windows-событие. В модели вычислений нужно прописать функцию останова h : Sх W ^ {0,1}.
Алгоритм и данные, над которыми он работает, часто логически разделяют, но физически они наоборот хранятся в памяти ЭВМ вместе. В современных процессорах потоки данных и инструкций/команд также разделены и физически, и логически. В программировании тоже существует негласное правило не прописывать в скриптах часто изменчивые данные, а брать их, например, из текстовых файлов. Следует ли признать это разделение абсолютным? По нашему мнению, нет. Тогда у нас вообще исчезает понятие «программа», которое присутствовало как данность (в подвешенном состоянии) и у Маркова, и у Тьюринга, и у Черча (у последнего - в замаскированном виде). Мы формализуем одновременно и алгоритм, и данные посредством функции переходов a : S ^ S. Если учесть, что переход может подчиняться вероятностным законам (как в случае недетерминированного конечного автомата), то правильнее писать a cS2, Dom (a) = Val(a)=S. Именно в задании глобальной функции перехода лежит основная тяжесть конфигурирования вычислительной системы под нужды конкретного алгоритма.
Для оценки стоимостных параметров алгоритма, реализуемого вычислителем (время совершения итерации, энергия перехода между состояниями - в этой связи можно вспомнить формулу Ландауэра), целесообразно ввести множество затрат Z и функцию их исчисления b : S2 Z. Сложность алгоритма может также быть характеристикой МВ, если взять усреднение по всем проводимым вычислениям. Существуют довольно изощренные работы по методам исчисления стоимости алгоритмов [21; 22]. Эта часть ММВ представляется наименее важной и наиболее дискуссионной. Так, например, можно предположить, что поддержание состояния вычислителя также требует энергетических затрат.
Таким образом, наиболее общая (минимальная) модель
вычислений дается средствами теории множеств как набор из 10 сущностей:
(X, I, 5, Щ Z, gp go, И, а, Ь) (4)
Несколько замечаний по семантике множества 5. Физическое состояние вычислителя должно пониматься шире, чем 5 е 5, поскольку существуют исполнительные механизмы вычислителя, реализующие смену его состояний. Неправильно было бы вводить эти механизмы непосредственно в ММВ. Можно трактовать 5 е 5 как состояние памяти вычислителя (например, для персонального компьютера это оперативная, дисковая и кэш-память в совокупности), куда погружены все данные, промежуточные результаты вычислений и коды программ. К этому надо добавить текущее состояние сигналов, циркулирующих внутри вычислителя [23]. Поэтому для останова алгоритма, например, по достижению критерия типа | D- Dn | < £ (п - номер итерации в каком-нибудь численном методе) для динамического объекта D требуется знать только текущее состояние 5 е 5, где должны содержаться все объекты и нормативные погрешности Dn, D £.
4. Открытые вопросы
При повышении степени абстракции, от конкретных (и стандартных) МВ к минимальной МВ, возникают и новые вопросы к используемому понятийному или даже категориальному аппарату.
Первый вопрос - в чем состоит сущность вычисления (модель которого мы, как будто, пытаемся выявить) вообще и в чем состоит принципиальное отличие вычислительного процесса от любого другого физического, происходящего в системе вычислителя. Конечно, специфику вычисления не нужно искать в поиске обязательно числового/цифрового ответа; можно указать на свойства единства и целенаправленности такого процесса, но этого недостаточно и требуется долгое философское обсуждение. В отсутствие оного, кстати, данная статья действительно преждевременна, но может служить «затравкой» для такой дискуссии.
В математическом моделировании незыблемой триадой, по выражению А. А. Самарского, выступает «модель - алгоритм -программа» (и добавим: расчет=вычисление). Таким образом, начиная с фон Неймана и Тьюринга, возникает абстракция «про-
Философские аспекты теории вычислений
грамма» (команда/инструкция), трактуемая как запись алгоритма.
Второй вопрос - возможны ли модели вычислений, обходящиеся без этой абстракции (точнее трех: алгоритм, программа, инструкция). Указание на функционально-логическое представление алгоритма (или организации вычислений), по нашему мнению, еще не решает вопрос, т.к. по-прежнему нужен способ, которым вычислителю даются «инструкции». В свете параллелизма, возможно, нужно вновь уточнить само понятие алгоритма (как произошло ранее, в математике 19 века, с понятием функции). Возможно, правильнее говорить не о программировании вычислителя, а о его конфигурировании, подразумевая также объединение данных и кода программы в одно целое. Однако подчеркнем, что речь идет о высоких уровнях абстракции МВ, а при его понижении можно при необходимости вернуться к уже известному разделению. То же самое касается разделения «память-процессор», которое уже не абсолютно; разработчики мемпроцессорной машины уже пошли в обратном направлении.
Третий вопрос - сохранится ли универсальность для некоторой МВ (в том смысле, что любой алгоритм можно реализовать на вычислителе, действующем в пределах данной МВ). Следует ли внести, если универсальности нет, в структуру ММВ/МВ требование представить круг алгоритмов, реализуемых в рамках МВ?
Заключение
В данной работе мы впервые:
• поставили вопрос об абстрактной (минимальной) модели вычислений, признав принципиальную неформализуемость понятия «вычислимость»;
• попытались дать ее теоретико-множественную формализацию, содержащую 5 множеств и 5 функций;
• рассмотрели современные имплементации парадигмы коннекционизма, указав на общее в каждой из них и возникающие междисциплинарные связи (например, представление об активности/активации элемента нейронной сети перспективно для расширения на область клеточных автоматов и CA-вычислений).
Литература:
1. Коуги П. Архитектура конвейерных ЭВМ. М.: Радио и связь, 1985. -
360 с. (Kougi P. Architecture conveyor computers. M.: Radio i svyaz',
1985. - 360 s.)
2. Таненбаум Э., ван Стеен М. Распределенные системы. Принципы и парадигмы. СПб.: Питер, 2003. - 878 с. (Tanenbaum E., van Steen M. Distributed Systems. The principles and paradigms. SPb.: Piter, 2003. -878 р.)
3. Medler D. A Brief History of Connectionism // Neural Computing Surveys. 1998. No. 1(2). - P. 18-72.
4. Янковская Е. Гетерархия как нередукционистская модель когнитивной системы // Конференция «Ломоносов-2013». http://lomonosov-msu.ru/ archive/Lomonosov_2013 /2233/ 22025_933c.pdf. (Yankovskaya E. Het-erarchy as a reductionist model of the cognitive system // Konferenciya «Lomonosov-2013». http://lomonosov-msu.ru/archive/Lomonosov_2013 /2233/ 22025_933c.pdf.)
5. Rumelhart D., McClelland J., and the PDP Research Group, editors. Parallel Distributed Processing, volume 1: Foundations. MlT Press, Cambridge, MA, 1986.
6. Traversa F.L., Ramella Ch., Bonani F., Di Ventra M. Memcomputing NP-complete problems in polynomial time using polynomial resources and collective states // Computer Science. 2015. - P. 1-8.
7. Traversa F., Di Ventra M. Universal Memcomputing Machines in IEEE // Transactions on Neural Networks and Learning Systems. 2015. Vol. 26, No. 11. - P. 2702-2715.
8. Туманов В. Основы проектирования реляционных баз данных - Интернет-университет информационных знаний, Бином. Лаборатория знаний, 2011. - 424 с. (Tumanov V. The Fundamentals of Relational Databases - Internet-universitet informacionnyh znanij, Binom. Laboratori-ya znanij, 2011. - 424 s.)
9. Катленд Н. Вычислимость. Введение в теорию рекурсивных функций. М.: Издательство «Мир», 1983. - 256 с. (Cutland N. Computabili-ty: An Introduction to Recursive Function Theory. Cambridge University Press, 1980. - 264 p.)
10. Burks A., Goldstine H., von Neumann J. Preliminary discussion of the logical design of an electronic computing instrument // The Origins of Digital Computers: Selected Papers, Brian Randell (ed.) Series: Texts and Monographs in Computer Science, Springer Berlin Heidelberg, 1982. -P. 399-413 (original text was published in 1946).
11. Черняк Л. Архитектура фон Неймана как историческая случайность // Открытые системы. СУБД. 2008. № 6. - С. 76-79. (Chernyak L. Von Neumann architecture as a historical accident // Otkrytye sistemy. SUBD. 2008. No. 6. - S. 76-79.)
12. Непейвода Н. Стили и методы программирования (Электронная книга), 2005. http://www.intuit.ru/goods_store/ebooks/8182. (Nepejvoda N. Styles and programming techniques (e-book), 2005. http://www.intuit.ru/ goods_store/ebooks/8182.)
13. Backus J. Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs // Commun. ACM 21, 1978. No. 8. - P. 613-641.
Философские аспекты теории вычислений
14. Гергель В., Стронгин Р. Основы параллельных вычислений для многопроцессорных вычислительных систем: учебное пособие. Нижний Новгород: Изд-во ННГУ им. Н.И. Лобачевского, 2003. - 184 с. (Gergel' V, Strongin R. Introduction to Parallel Programming for multiprocessor systems: uchebnoe posobie. Nizhnij Novgorod: Izd-vo NNGU im. N.I. Lobachevskogo, 2003. - 184 s.)
15. Климов А.В., Левченко Н.Н., Окунев А.С. Преимущества потоковой модели вычислений в условиях неоднородных сетей // Информационные технологии и вычислительные системы. 2012. № 2. С. 36-45. (Klimov A.V., Levchenko N.N., Okunev A.S. Advantages of streaming computing model in a non-homogeneous networks // Informacionnye tekhnologii i vychislitel'nye sistemy. 2012. № 2. - S. 36-45.)
16. Hewitt C., Bishop P., Steiger R. A universal modular ACTOR formalism for artificial intelligence // In Proceedings of the 3rd international joint conference on Artificial intelligence (IJCAI'73). Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 1973. - P. 235-245.
17. Стефанова Т. Отбор содержания обучения неклассическим вычислительным моделям // Известия РГПУ им. А.И. Герцена. 2008. № 58. -C. 440-451. (Stefanova T. The selection of training content nonclassical computing models // Izvestiya RGPU im. A.I. Gercena. 2008. № 58. -P. 440-451.)
18. Анисов А. Классическая вычислимость и признаки индетерминизма // Логические исследования. 2007. № 14. - С. 5-26. (Anisov A. The classic computability and signs of indeterminacy // Logicheskie issledo-vaniya. 2007. № 14. - S. 5-26.)
19. Горбунова Е. Кинетическая модель мелкозернистого параллелизма: дис. ... канд. физико-матем. наук. Красноярск, 2001. (Gorbunova E. Kinetic model of fine-grained parallelism: dis. ... kand. fiziko-matem. nauk. Krasnoyarsk, 2001.)
20. Savage J. VLSI Models of Computation // in e-book "Models of Computation: Exploring the Power of Computing", 2008. - P. 575-603.
21. Trinder P., Cole M., Hammond K., Loidl H.-W., Michaelson G. Resource Analyses for Parallel and Distributed Coordination // Concurrency and Computation: Practice and Experience. 2013. No. 25. - P. 309-348.
22. Hoffmann J., Shao Zh. Automatic Static Cost Analysis for Parallel Programs // Proceedings of the 24th European Symposium on Programming (ESOP'15) - Automatic Static Cost Analysis for Parallel Programs. http:// www.cs.cmu.edu/~janh/papers/parallelcost2014.pdf.
23. Stempkovsky A.L., Vlasov P.A., Kozin G.V. Algorithmic Environment for VLSI Design on Cellular Automata // Proceedings of a Joint Symposium : Information Processing and Software, Systems Design Automation, Academy of Sciences of the USSR, Siemens AG, FRG, Moscow, June 5/6, 1990, Springer-Verlag. P. 308-312.