Взгляд на теорию алгоритмов с позиций философии

УДК 004.42

ВЗГЛЯД НА ТЕОРИЮ АЛГОРИТМОВ С ПОЗИЦИЙ ФИЛОСОФИИ

Н. К. Юрков, Е. Ю. Русяева, А. В. Полтавский

Введение

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

Понятие алгоритма принадлежит к числу основных понятий математики. Термин «алгоритм» (или «алгорифм») происходит от имени средневекового узбекского математика Хорезми (по-арабски Аль-Хорезми), который еще в IX в. определил правила выполнения четырех арифметических действий по десятичной системе счисления (простейшие алгоритмы). По имени Аль-Хорезми совокупность этих правил стала называться в Европе словом «алгоризм». Затем (по-видимому, вследствие смешения с греческим словом ароицо - число) это название было переделано в «алгоритм». Под алгоритмом понимают точное предписание о выполнении в определенном порядке некоторой системы операций для решения всех задач некоторого данного типа [1-3]. Другое определение: алгоритм - расчлененный на дискретные элементарные шаги рецепт, предписывающий совершенно однозначный путь от варьируемых условий задачи к результату; это общий метод решения целого класса задач или, иначе говоря, способ разрешения массовой проблемы.

Другие наименования алгоритма - разрешающая процедура, разрешающий метод как способ задания алгоритма.

Способы задания алгоритма:

1) словесные предписания;

2) формулы;

3) схемы (блок-схемы).

Например, это алгоритм Евклида, служащий для разыскания общего делителя двух чисел.

Свойства алгоритмов. Любому алгоритму присущи следующие основные черты: определенность и массовость, а также определенность или детерминированность алгоритма. Требуется, чтобы метод решения (принятия решения) можно было сообщить другому лицу в виде конечного числа указаний, как действовать на отдельных стадиях принятия решения. При этом решение представляет собой определенный набор и порядок некоторой системы операций, который может быть в любое время повторен и выполнен с тем же успехом и другим лицом. Элемент произвола и случайности не допускается, но рассмотрение таких предписаний, в которых заранее предусматриваются акты случайного выбора, представляют большой теоретический и практический, а также инновационный интерес, особенно в современной теории игр. Алгоритм - это единое предписание, определяющее процесс, который может начинаться от различных исходных данных и ведет во всех случаях к соответствующему результату. Иными словами, алгоритм решает не одну лишь индивидуальную задачу, а некоторую серию однотипных задач [1-3].

Разновидности алгоритмов. Задачи могут быть математическими и логическими. Алгоритмы для решения большинства математических задач обычно называют численными алгоритмами [1-3]. Под численными алгоритмами понимают алгоритмы, в соответствии с которыми решение поставленных задач сводится к четырем арифметическим действиям. Широкое распространение численных алгоритмов обусловливается тем, что к четырем арифметическим действи-

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

Таким образом, все элементарные операции (или акты), производимые в процессе выполнения алгоритмов, распадаются на две основные группы операций, которые обычно называют арифметическими и логическими операциями. Связь логики и математики - фундаментальный философский вопрос [4]. Арифметические операции осуществляют непосредственное преобразование (переработку) информации (данных). Логические операции определяют выбор и дальнейшее направление счета машины, т.е. определяют последовательность выполнения арифметических операций вычислительной системы. Число операций, предписываемых алгоритмом, вообще говоря, заранее не бывает известным. Оно зависит от конкретного выбора условий задачи и выясняется лишь в процессе самого решения. Как правило, конечный алгоритм решает задачи приближенно, но позволяет получить приближение любой степени точности. Алгоритмы для решения логических задач уже не являются численными.

Значение алгоритмов. В математике серия задач определенного типа считается решенной, когда для ее решения установлен определенный алгоритм, т.е. указан однозначный процесс вычисления искомых величин. Во всех случаях, где это возможно, нахождение таких алгоритмов является естественной целью математики. Если же математика не обладает алгоритмом для решения всех задач данного типа, то хотя порою и удается решить некоторые единичные задачи этого типа, но в отдельных случаях приходится придумывать специальную процедуру, т.е. индивидуальный прием, непригодный уже для большинства других случаев. Несмотря на большое значение алгоритмов в математике, последняя отнюдь не «сводится» к построению алгоритмов, так как, кроме того, рассматривает искусственные способы решения частных задач, которые не могут быть решены непосредственно алгоритмически. Алгоритмы, составленные специально для вычислительных машин и систем с автоматическим управлением [5], называются обычно программами (машинными, или реализующими алгоритмами). Программа есть описание алгоритма решения задачи на машинном языке, т.е. в терминах элементарных операций машины или вычислительной системы. Благодаря заложенным в них алгоритмам вычислительная машина или система способна найти требуемую переработку информации. Все современные автоматические вычислительные машины и системы работают алгоритмически. Очень широкий круг задач решается алгоритмически и очень многие процессы управления объектами могут быть (точно или приблизительно) алгоритмически описаны. Область применения алгоритмических процессов весьма широка, и к ней относятся не только вычислительные процессы, встречающиеся в математике, информатике, физике и других науках, но и многие процессы, которые обычно принято считать очень трудными и сложными, для которых можно теоретически построить алгоритмы, являющиеся по своей идее достаточно простыми; практические же трудности встречаются при реализации этих процессов, связанные с тем, что указанные алгоритмы являются очень длинными и требуют совершения огромного числа операций (хотя эти операции сами по себе простые). Это замечание относится, в частности, к процессам игровых задач, где успех во многом зависит от умения обозреть большее число вариантов для выбора оптимального варианта (тактики, приема и т.п.). С созданием быстродействующих вычислительных систем мы значительно расширили число практически осуществимых алгоритмов. Применение вычислительных машин и систем, реализующих

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

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

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

В подобных случаях процесс применения алгоритма рассматривается как потенциально осуществимый процесс, ведущий после конечного (хотя бы и очень большого) числа шагов к искомому результату. Говоря же о потенциальной возможности осуществления алгоритма в машине, имеют в виду потенциальную возможность неограниченного увеличения объема памяти в машине. Английский математик А. Тьюринг предложил самую общую и вместе с тем самую простую концепцию автоматической вычислительной машины. Машина Тьюринга представляет собой идеализированную схему, отображающую потенциальную возможность увеличения объема памяти. Понятие вычислительной машины Тьюринга является основным понятием теории алгоритмов. Каждая физически осуществимая вычислительная машина может быть рассматриваема лишь как некоторая приближенная модель машины Тьюринга (сравните категории соотношения между абсолютной и относительной истиной), в реальных вычислительных машинах и системах объем памяти ограничен. Разумеется, пока техническое осуществление неограниченной памяти невозможно. Принципиальное различие между реальной вычислительной машиной и машиной Тьюринга, представляющей собой некоторую абстрактную, идеализированную машину, является неустранимым. Вместе с тем важно отметить, что в реальной вычислительной машине объем памяти можно неограниченно увеличивать без изменения конструкции машины (сравните соотношение между возможностью и действительностью). Именно в этом направлении наращивания объема памяти и скорости вычисления можно ожидать дальнейших больших успехов в развитии вычислительных автоматов [6, 7].

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

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

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

Соотношение вычислительной машины и мышления. В соотношении человека и машины опишем две основные точки зрения о границах машинной вычислительной математики и соотношении человека и машины.

Первая точка зрения (взгляд по А. А. Маркову).

1. Всякая математическая машина может быть рассматриваема как приспособление для осуществления некоторого алгоритма; следовательно, машин, которые работали бы неалгоритмически и имели бы большие возможности, чем алгоритмические, не существует. Если невозможен алгоритм, решающий любую единичную задачу данного класса, то невозможны и машины, решающие всякую такую задачу.

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

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

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

Вторая точка зрения (взгляд по А. А. Ляпунову, С. Л. Соболеву и Г. Клаусу).

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

Эта точка зрения основывается на следующих посылках:

1. Всякий алгоритм эквивалентен некоторой функциональной схеме Тьюринга, что является выражением основной гипотезы теории алгоритмов.

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

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

Под метатермином «машина» может подразумеваться и материальная система, способная функционировать, и логическая алгоритмическая схема (машина Тьюринга).

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

Однако эти подходы к соотношению человеческого мозга и машины нельзя абсолютизировать: чисто функциональный критерий не исчерпывает всех аспектов мышления человека. История научного познания свидетельствует, что чисто количественный формально-функциональный подход к объектам, процессам и явлениям, как правило, с развитием науки дополняется содержательным, отчасти субъективно-индивидуальным подходом. Наконец, сам А. Тьюринг признает, что существо трудностей машинного воспроизведения мышления человека связано не только с инженерными задачами (которые, конечно, сами по себе исключительно сложны), а непосредственно с механизмом программирования. А. Тьюринг предполагает, что эти трудности могут быть преодолены, если учесть способность кибернетических машин к обучению и, собственно, к самообучению. В этом случае мы можем так поставить задачу: сначала строим машину-ребенка, а потом ее обучаем. Но в такой постановке задачи А. Тьюринг недооценивает качественного отличия ребенка от машины. Во-первых, ребенок - это не только приемник внешней информации / tabula rasa; он уже содержит в себе гигантский и возрастающий от поколения к поколению запас информации. Во-вторых, у ребенка прижизненная информация, полученная на основе обучения, вплетается в наследственную и социально-культурную программу, являющуюся катализатором, поэтому и сам процесс обучения ребенка качественно отличается от процесса накопления запаса информации в вычислительной машине или системе. Признание способности вычислительных машин и систем к самообучению еще не устраняет качественного отличия машин от людей.

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

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

Список литературы

1. Философия и методология науки : учеб. пособие для студентов вузов / под ред. В. И. Кузнецова. - М. : Аспект пресс, 1996. - 516 с.

2. Философская энциклопедия : в 5 т. - М. : Сов. энциклопедия, 1965-1968.

3. Чермен, У. Введение в исследование операций / У. Чермен. - М. : Наука, 1968. - 414 с.

4. Энгельс, Ф. Диалектика природы / Ф. Энгельс. - М., 1958. - 206 с.

5. Берг, А. И. Проблемы управления и кибернетики / А. И. Берг. - М., 1961. - 257 с.

6. Трахтенгерц, Э. А. Программное обеспечение параллельных процессов / Э. А. Трахтенгерц ; Академия наук СССР Ордена Ленина Институт проблем управления. - М. : Наука, 1987. - 271 с.

7. Айзерман, М. А. Логика, автоматы, алгоритмы / М. А. Айзерман, Л. А. Гусев, Л. И. Розеноэр. - М. :

Физмат, 1963. - 615 с.

8. Новиков, А. М. Методология / А. М. Новиков, Д. А. Новиков. - М. : СИНТЕГ, 2007. - 660 с.

9. Эшби, У. Р. Что такое разумная машина? / У. Р. Эшби // Зарубежная радиоэлектроника. - М., 1962. - 37 с.

10. Горячев, Н. В. Исследование и разработка средств и методик анализа и автоматизированного выбора систем охлаждения радиоэлектронной аппаратуры / Н. В. Горячев, М. К. Танатов, Н. К. Юрков // Надежность и качество сложных систем. - 2013. - № 3. - С. 70-75.

11. Лысенко А. В. Анализ современных систем управления проектами / А. В. Лысенко // Надежность и качество : тр. Междунар. симп. : в 2 т. / под ред. Н. К. Юркова. - Пенза : Изд-во ПГУ, 2012. - Т. 1. -С. 371-372.

12. Затылкин А. В. Алгоритм проведения проектных исследований радиотехнических устройств опытнотеоретическим методом / А. В. Затылкин, И. И. Кочегаров, Н. К. Юрков // Надежность и качество : тр. Междунар. симп. : в 2 т. / под ред. Н. К. Юркова. - Пенза : Изд-во ПГУ, 2012. - Т. 1. - С. 365-366.

УДК 004.42 Юрков, Н. К.

Взгляд на теорию алгоритмов с позиций философии / Н. К. Юрков, Е. Ю. Русяева, А. В. Полтавский // Надежность и качество сложных систем. - 2014. - № 2(6). - С. 40-45.

Юрков Николай Кондратьевич

доктор технических наук, профессор, заведующий кафедрой, кафедра конструирования и производства радиоаппаратуры,

Пензенский государственный университет

(8412) 56-43-46

E-mail: yurkov_NK@mail.ru

Русяева Елена Юрьевна кандидат философских наук, старший научный сотрудник,

Институт проблем управления

Российской академии наук им. В. А. Трапезникова

Полтавский Александр Васильевич

доктор технических наук, старший научный сотрудник,

Институт проблем управления Российской академии наук им. В. А. Трапезникова (ІІ7997, Россия, г. Москва, ул. Профсоюзнаяв, б5) 334-84-79

E-mail: avp57avp@yandex.ru

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

Ключевые слова: алгоритм, вычислительная система, машина, категории.

Yurkov Nikolay Kondrat'evich doctor of technical sciences, professor, head of sub-department of radio equipment design and production,

Penza State University

Rusyaeva Elena Yur'evna

candidate of philosophy sciences, senior stuff scientist,

Institute of management problems

of Russian academy of sciences

named after V. A. Trapeznikov

Poltavskiy Aleksandr Vasil'evich

doctor of technical sciences, senior stuff scientist,

Institute of management problems

of Russian academy of sciences

named after V. A. Trapeznikov

Abstract. Philosophy of science as a system of views on the world around us is fundamental, it is related to the set of categories that can be found in all spheres of human activity. Theory of algorithms, as one of the fundamental topics of mathematics, is also based on research on epistemology, as sent to receive the truth of scientific knowledge and the paintings of the world. From the perspective of epistemology, modern innovative design are unthinkable without programming, algorithms, and accounting ratios in man-machine system, which should be taken into accout in assigning tasks.

Key words: algorithm, a computer system, the machine, category.