Алгоритм

  • Алгори́тм (лат. al­go­rithmi — от арабского имени математика Аль-Хорезми) — конечная совокупность точно заданных правил решения произвольного класса задач или набор инструкций, описывающих порядок действий исполнителя для решения некоторой задачи. В старой трактовке вместо слова «порядок» использовалось слово «последовательность», но по мере развития параллельности в работе компьютеров слово «последовательность» стали заменять более общим словом «порядок». Независимые инструкции могут выполняться в произвольном порядке, параллельно, если это позволяют используемые исполнители.

    Ранее в русском языке писали «алгорифм», сейчас такое написание используется редко, но, тем не менее, имеет место исключение (нормальный алгорифм Маркова).

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

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

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

    Частичная формализация понятия алгоритма началась с попыток решения проблемы разрешения (нем. Entscheidungsproblem), которую сформулировал Давид Гильберт в 1928 году. Следующие этапы формализации были необходимы для определения эффективных вычислений или «эффективного метода»; среди таких формализаций — рекурсивные функции Геделя — Эрбрана — Клини 1930, 1934 и 1935 гг., λ-исчисление Алонзо Чёрча 1936 г., «Формулировка 1» Эмиля Поста 1936 года и машина Тьюринга.

Источник: Википедия

Связанные понятия

Индукция грамматики (или грамматический вывод) — это процесс в машинном обучении для обучения формальной грамматике (обычно в виде набора правил вывода или порождающих правил или, альтернативно, как конечный автомат или автомат другого вида) из набора наблюдений, то есть построение модели, которая описывает наблюдаемые объекты. Более обще, грамматический вывод — это такая ветвь машинного обучения, в которой пространство примеров состоит из дискретных комбинаторных объектов, таких как строки, деревья...
Байесовское программирование — это формальная система и методология определения вероятностных моделей и решения задач, когда не вся необходимая информация является доступной.
Обучение с ошибками в кольце (англ. Ring learning with errors, RLWE)— это вычислительная задача, которая была сформулирована как вариант более общей задачи обучения с ошибками (с англ. LWE), с целью использовать преимущество дополнительной алгебраической структуры (т.е. кольца многочленов) из теории решеток, что дало возможность повысить и расширить возможности шифрования тех криптографических приложений, которые ранее основывались на LWE. Задача RLWE стала основой новых криптографических алгоритмов...
Классификация документов — одна из задач информационного поиска, заключающаяся в отнесении документа к одной из нескольких категорий на основании содержания документа.
Принцип минимальной длины описания (англ. minimum description length, MDL) — это формализация бритвы Оккама, в которой лучшая гипотеза (модель и её параметры) для данного набора данных это та, которая ведёт к лучшему сжиманию даных. Принцип MDL предложил Йорма Риссанен в 1978. Принцип является важной концепцией в теории информации и теории вычислительного обучения.

Упоминания в литературе

Как увеличивается компьютерное время, необходимое для вычислений, с ростом объема исходных данных? При тестировании на простоту исходные данные – это не само число, а число знаков в нем. Ключевое различие в этом случае проводится между двумя группами алгоритмов – алгоритмами, принадлежащими и не принадлежащими к классу P. Если время работы алгоритма растет как некая фиксированная степень от размера исходных данных, то алгоритм принадлежит к классу P; в противном случае – не принадлежит. Грубо говоря, алгоритмы класса P полезны, тогда как те, что не принадлежат к этому классу, непрактичны. Существует, однако, промежуточная полоса своеобразной ничьей земли, где в ход идут другие соображения. Класс P получил название от понятия «полиномиальное время» – именно так замысловато математики говорят о постоянных степенях. Мы еще вернемся к теме эффективных алгоритмов позже, в главе 11.
Автоматическое доказательство теорем – одна из старейших областей возможного применения ИИ, где было много достижений, исследований и программ, включая Универсальный решатель задач Ньюэлла и Саймона. Люгер подчеркивает, что именно "…эта ветвь принесла наиболее богатые плоды…" [264, стр. 44]. Благодаря исследованиям в этой области были формализованы алгоритмы поиска и разработаны языки формальных представлений, такие как исчисление предикатов и логический язык программирования Пролог. Приведем обоснование Дж. Люгера: "… привлекательность автоматического доказательства теорем основана на строгости и общности логики. В формальной системе логика располагает к автоматизации. Разнообразные проблемы можно попытаться решить, представив описание задачи и существенно относящуюся к ней информацию в виде логических аксиом и рассматривая различные случаи задачи как теоремы, которые нужно доказать. Этот принцип лежит в основе автоматического доказательства теорем и систем математических обоснований" [264, стр. 44]. Далее следует замечательный вывод и итог 20 века в этой наиболее богатой ветви: "К сожалению, в ранних пробах написать программу для автоматического доказательства, не удалось разработать систему, которая бы единообразно решала сложные задачи" [264, стр. 44]. Таким образом, Дж. Люгер подтверждает наш тезис о том, что в прошлом веке даже в самых передовых областях ИИ ученые не смогли решить сложные задачи, а значит, нужны принципиально новые подходы и исследования, к числу которых относится и миварный подход.
Раздел математики, сейчас называемый «математический анализ», в старые годы был известен под названием «дифференциальное и интегральное исчисление». Отнюдь не всем обязательно знать точное определение таких основных понятий этого раздела, как производная и интеграл. Однако каждому образованному человеку желательно иметь представление о производном числе как о мгновенной скорости (а также как об угловом коэффициенте касательной) и об определённом интеграле как о площади (а также как о величине пройденного пути). Поучительно знать и о знаменитых математических проблемах (разумеется, тех из них, которые имеют общедоступные формулировки) – решённых (таких как проблема Ферма и проблема четырёх красок[2]), ждущих решения (таких, как проблема близнецов[3]) и тех, у которых решения заведомо отсутствуют (из числа задач на геометрическое построение и простейших задач на отыскание алгоритмов). Ясное понимание несуществования чего-то – чисел ли с заданными свойствами, или способов построения, или алгоритмов – создаёт особый дискурс, который можно было бы назвать культурой невозможного. И культура невозможного, и предпринимаемые математикой попытки познания бесконечного значительно расширяют горизонты мышления.
APRP (Adaptive Pattern Recognition Process), технология адаптивного распознавания образов, производит так называемый «нечёткий поиск», при котором для поиска изображения не требуется ни словесного описания, ни ключевых слов, ни других специальных приёмов. В данной технологии под нечётким поиском понимается операция нахождения объекта по его достаточно близкому образу (например, по фотографии человека, на лице которого время оставило свои следы). Любого рода данные технология обрабатывает одинаково – в виде нулей и единиц, поэтому она равным образом применяется для индексации и нечёткого поиска как текстов (библиотека TRS), так и звукозаписей (библиотека SRS) и видеозаписей (библиотека VRS). Это обстоятельство позволяет воспользоваться для понимания алгоритмов технологии примером из области обработки текстов. Поскольку APRP работает не с ключевыми словами, а с образами, две-три изменённые (или ошибочные) буквы в слове или фразе не могут существенно изменить базовую картину текста. Таким образом, автоматически становится допустимой ошибка как во входных данных, так и в терминах запроса. Например, если мы напишем в запросе: «ЦЦЦТЕР МАРГМАСАРИТАЭЭЭЭЭЭ», имея в виду название романа Булгакова, то получим правильный ответ – «Мастер и Маргарита».
Примером создания нечётких дублей также может служить объединение фрагментов текста, взятых с разных сайтов. Может показаться, что, склеив «надёрганные» из разных источников фрагменты, можно создать уникальный текст. В подобных случаях поисковые системы применяют более сложные алгоритмы. В частности, поисковая система Яндекс применяет алгоритм супершинглов (1997 г., А. Бродер). Текст, проверяемый на уникальность, разбивается на участки длиной по десять слов внахлест, с перекрытием в одно слово. Далее все эти участки меняют на короткое математическое представление (контрольные суммы) и сравнивают с контрольными суммами, вычисленными таким же способом для других документов базы поисковой системы. Это позволяет с высокой вероятностью определить заимствование текста.

Связанные понятия (продолжение)

Норма́льный алгори́тм (алгори́фм) Ма́ркова (НАМ, также марковский алгоритм) — один из стандартных способов формального определения понятия алгоритма (другой известный способ — машина Тьюринга). Понятие нормального алгоритма введено А. А. Марковым (младшим) в конце 1940-х годов в работах по неразрешимости некоторых проблем теории ассоциативных вычислений. Традиционное написание и произношение слова «алгорифм» в этом термине также восходит к его автору, многие годы читавшему курс математической логики...
Арифме́тика (др.-греч. ἀριθμητική (árithmitikí) — от ἀριθμός (árithmós) «число») — раздел математики, изучающий числа, их отношения и свойства. Предметом арифметики является понятие числа (натуральные, целые, рациональные, вещественные, комплексные числа) и его свойства. В арифметике рассматриваются измерения, вычислительные операции (сложение, вычитание, умножение, деление) и приёмы вычислений. Изучением свойств отдельных целых чисел занимается высшая арифметика, или теория чисел. Теоретическая...
Анализ бесконечно малых — историческое название математического анализа, раздела высшей математики, изучающего пределы, производные, интегралы и бесконечные ряды, и составляющего важную часть современного математического образования. Состоит из двух основных частей: дифференциального исчисления и интегрального исчисления, которые связаны между собой формулой Ньютона — Лейбница.
Контекстно-свободная грамматика (КС-грамматика, бесконтекстная грамматика) — частный случай формальной грамматики (тип 2 по иерархии Хомского), у которой левые части всех продукций являются одиночными нетерминалами (объектами, обозначающими какую-либо сущность языка (например: формула, арифметическое выражение, команда) и не имеющими конкретного символьного значения). Смысл термина «контекстно-свободная» заключается в том, что есть возможность применить продукцию к нетерминалу, причём независимо...
В математике методы проверки на простоту с помощью эллиптических кривых (англ. - Elliptic Curve Primality Proving, сокр. ЕСРР) являются одними из самых быстрых и наиболее широко используемых методов проверки на простоту . Эту идею выдвинули Шафи Гольдвассер и Джо Килиан в 1986 году; она была превращена в алгоритм А.О.Л. Аткином в том же году. Впоследствии алгоритм был несколько раз изменён и улучшен, в особенности Аткином и François Morain в 1993. Концепция использования факторизации с помощью эллиптических...

Подробнее: Тест простоты с использованием эллиптических кривых
Гипо́теза Коллатца (гипо́теза 3n+1, сираку́зская пробле́ма) — одна из нерешённых проблем математики.
Обучение с ошибками (англ. Learning with errors) — это концепция машинного обучения, суть которой заключается в том, что в простые вычислительные задачи (например, системы линейных уравнений) намеренно вносится ошибка, делая их решение известными методами неосуществимым за приемлемое время.
Разрешение лексической многозначности (word sense disambiguation, WSD) — это неразрешенная проблема обработки естественного языка, которая заключается в задаче выбора значения (или смысла) многозначного слова или словосочетания в зависимости от контекста, в котором оно находится. Данная задача возникает в дискурсивном анализе, при оптимизации релевантности результатов поисковыми системами, при разрешении анафорических отсылок, в исследовании лингвистической когерентность текста, при анализе умозаключений...
Алгоритм Британского музея заключается в переборе всех возможных вариантов, начиная с самого маленького по размеру, пока верное решение не будет найдено. Данный алгоритм почти не применим на практике, являясь лишь принципом, в теории применимым к любой задаче с большим числом возможных вариантов.
Сте́мминг — это процесс нахождения основы слова для заданного исходного слова. Основа слова не обязательно совпадает с морфологическим корнем слова.
Логика Хоара (англ. Hoare logic, также Floyd—Hoare logic, или Hoare rules) — формальная система с набором логических правил, предназначенных для доказательства корректности компьютерных программ. Была предложена в 1969 году английским учёным в области информатики и математической логики Хоаром, позже развита самим Хоаром и другими исследователями. Первоначальная идея была предложена в работе Флойда, который опубликовал похожую систему в применении к блок-схемам (англ. flowchart).
История арифметики охватывает период от возникновения счёта до формального определения чисел и арифметических операций над ними с помощью системы аксиом. Арифметика — наука о числах, их свойствах и отношениях — является одной из основных математических наук. Она тесно связана с алгеброй и теорией чисел.
Полный перебор (или метод «грубой силы», англ. brute force) — метод решения математических задач. Относится к классу методов поиска решения исчерпыванием всевозможных вариантов. Сложность полного перебора зависит от количества всех возможных решений задачи. Если пространство решений очень велико, то полный перебор может не дать результатов в течение нескольких лет или даже столетий.
Пролог (англ. Prolog) — язык и система логического программирования, основанные на языке предикатов математической логики дизъюнктов Хорна, представляющей собой подмножество логики предикатов первого порядка.
Данная статья представляет собой обзор основных событий и тенденций в истории математики с древнейших времён до наших дней.

Подробнее: История математики
Вычисли́тельная сло́жность — понятие в информатике и теории алгоритмов, обозначающее функцию зависимости объёма работы, которая выполняется некоторым алгоритмом, от размера входных данных. Раздел, изучающий вычислительную сложность, называется теорией сложности вычислений. Объём работы обычно измеряется абстрактными понятиями времени и пространства, называемыми вычислительными ресурсами. Время определяется количеством элементарных шагов, необходимых для решения задачи, тогда как пространство определяется...
История теории вероятностей отмечена многими уникальными особенностями. Прежде всего, в отличие от появившихся примерно в то же время других разделов математики (например, математического анализа или аналитической геометрии), у теории вероятностей по существу не было античных или средневековых предшественников, она целиком — создание Нового времени. Долгое время теория вероятностей считалась чисто опытной наукой и «не совсем математикой», её строгое обоснование было разработано только в 1929 году...
РЕФАЛ (РЕкурсивных Функций АЛгоритмический) — один из старейших функциональных языков программирования, ориентированный на символьные вычисления: обработку символьных строк (например, алгебраические выкладки); перевод с одного языка (искусственного или естественного) на другой; решение проблем, связанных с искусственным интеллектом. Соединяет в себе математическую простоту с практической направленностью на написание больших и сложных программ.
Грамматика ван Вейнгаардена (также вВ-грамматика или В-грамматика) — это двухуровневая грамматика, которая предоставляет способ определения потенциально бесконечных грамматик через конечное число правил. Формализм был изобретён Адрианом ван Вейнгаарденом для определения некоторых синтаксических ограничений, которые ранее должны были формулироваться на естественных языках, несмотря на свою принципиально синтаксическую сущность. Типичными применениями являются обработка рода и числа в естественных...
Экспериментальная математика — область математики, отличающаяся использованием различных приёмов, в т. ч. приёмов подстановки, перемещения, доказательств от обратного, в т.ч. с использованием электронно-вычислительных инструментов для проверки, подтверждения старых и получения новых фактов (теорем) в математике. Все результаты, полученные в экспериментальной математике, являются строго доказанными утверждениями математики. Строго говоря, любые доказательства, выкладки, вычисления и т.д. являются...
В информатике временна́я сложность алгоритма определяет время работы, используемое алгоритмом, как функции от длины строки, представляющей входные данные . Временная сложность алгоритма обычно выражается с использованием нотации «O» большое, которая исключает коэффициенты и члены меньшего порядка. Если сложность выражена таким способом, говорят об асимптотическом описании временной сложности, т.е. при стремлении размера входа к бесконечности. Например, если время, которое нужно алгоритму для выполнения...

Подробнее: Временная сложность алгоритма
Число́ — основное понятие математики, используемое для количественной характеристики, сравнения, нумерации объектов и их частей. Письменными знаками для обозначения чисел служат цифры, а также символы математических операций. Возникнув ещё в первобытном обществе из потребностей счёта, понятие числа с развитием науки значительно расширилось.
«Аль-кита́б аль-мухтаса́р фи хиса́б аль-дже́бр ва-ль-мука́баля» (араб. الْكِتَاب الْمُخْتَصَر فِي حِسَاب الْجَبْر وَالْمُقَابَلَة‎ — «Краткая книга восполнения и противопоставления») — математический трактат Мухаммеда ибн Мусы аль-Хорезми (IX век), от названия которого произошёл термин алгебра. Также благодаря этой книге появился термин алгоритм.
Опера́тор ветвле́ния (усло́вная инстру́кция, усло́вный опера́тор) — оператор, конструкция языка программирования, обеспечивающая выполнение определённой команды (набора команд) только при условии истинности некоторого логического выражения, либо выполнение одной из нескольких команд (наборов команд) в зависимости от значения некоторого выражения.

Подробнее: Ветвление (программирование)
Криптосистема Уильямса (Williams System) — система шифрования с открытым ключом, созданная Хью Коуи Уильямсом (Hugh Cowie Williams) в 1984 году.
Ме́тоды Ру́нге — Ку́тты (в литературе встречаются названия: ме́тоды Ру́нге — Ку́тта или же ме́тоды Ру́нге — Кутта́) — большой класс численных методов решения задачи Коши для обыкновенных дифференциальных уравнений и их систем. Первые методы данного класса были предложены около 1900 года немецкими математиками К. Рунге и М. В. Куттой.
Алгоритм Леска — классический алгоритм разрешения лексической многозначности, основанный на знаниях, предложенный Майклом Леском в 1986 году.
Оккамово обучение в теории вычислительного обучения является моделью алгоритмического обучения, где целью обучения является получение сжатого представления имеющихся тренировочных данных. Метод тесно связан с почти корректным обучением (ПК обучение, англ. Probably Approximately Correct learning, PAC learning), где учитель оценивает прогнозирующую способность тестового набора.
Тео́рия алгори́тмов — наука, находящаяся на стыке математики и информатики, изучающая общие свойства и закономерности алгоритмов и разнообразные формальные модели их представления. К задачам теории алгоритмов относятся формальное доказательство алгоритмической неразрешимости задач, асимптотический анализ сложности алгоритмов, классификация алгоритмов в соответствии с классами сложности, разработка критериев сравнительной оценки качества алгоритмов и т. п. Вместе с математической логикой теория алгоритмов...
Тео́рия мно́жеств — раздел математики, в котором изучаются общие свойства множеств — совокупностей элементов произвольной природы, обладающих каким-либо общим свойством. Создана во второй половине XIX века Георгом Кантором при значительном участии Рихарда Дедекинда, привнесла в математику новое понимание природы бесконечности, была обнаружена глубокая связь теории с формальной логикой, однако уже в конце XIX — начале XX века теория столкнулась со значительными сложностями в виде возникающих парадоксов...
Алгоритм Гельфонда — Шенкса (англ. Baby-step giant-step; также называемый алгоритмом больших и малых шагов) — в теории групп детерминированный алгоритм дискретного логарифмирования в мульпликативной группе кольца вычетов по модулю простого числа. Был предложен советским математиком Александром Гельфондом в 1962 году и Дэниэлем Шенксом в 1972 году.
Протокол Ди́ффи — Хе́ллмана (англ. Diffie–Hellman, DH) — криптографический протокол, позволяющий двум и более сторонам получить общий секретный ключ, используя незащищенный от прослушивания канал связи. Полученный ключ используется для шифрования дальнейшего обмена с помощью алгоритмов симметричного шифрования.
Автома́тное программи́рование — это парадигма программирования, при использовании которой программа или её фрагмент осмысливается как модель какого-либо формального автомата. Известна также и другая "парадигма автоматного программирования, состоящая в представлении сущностей со сложным поведением в виде автоматизированных объектов управления, каждый из которых представляет собой объект управления и автомат". При этом о программе, как в автоматическом управлении, предлагается думать как о системе...
Стратегия вычисления (англ. evaluation strategy) — правила семантики языка программирования, определяющие, когда следует вычислять аргументы функции (метода, операции, отношения), и какие значения следует передавать. Например, стратегия «вызов-при-упоминании/передача-по-ссылке» (call-by-worth/pass-by-reference) диктует, что аргументы должны быть вычислены перед выполнением тела вызываемой функции, и что ей должны быть предоставлены две возможности в отношении каждого аргумента: чтение текущего значения...
Самопримени́мость в теории алгоритмов — свойство алгоритма успешно завершаться на данных, представляющих собой формальную запись этого же алгоритма.
Интегральный криптоанализ — метод криптоанализа, объединяющий ряд атак на симметричные блочные криптографические алгоритмы. В отличие от дифференциального криптоанализа, который рассматривает воздействие алгоритма на пару открытых текстов, интегральный криптоанализ подразумевает исследование отображения в шифротекст множества открытых текстов. Впервые применен в 1997 Ларсом Кнудсеном.
Функциона́льное программи́рование — раздел дискретной математики и парадигма программирования, в которой процесс вычисления трактуется как вычисление значений функций в математическом понимании последних (в отличие от функций как подпрограмм в процедурном программировании).
Четыре четверки — математическая головоломка по поиску простейшего математического выражения для каждого целого числа от 0 до некоторого максимума, используя лишь общие математические символы и четвёрки (никакие другие цифры не допускаются). Большинство версий «четырёх четверок» требует, чтобы каждое выражение содержало ровно четыре четверки, но некоторые вариации требуют, чтобы каждое выражение имело минимальное количество четверок.
Продолжение (англ. continuation) представляет состояние программы в определённый момент, которое может быть сохранено и использовано для перехода в это состояние. Продолжения содержат всю информацию, чтобы продолжить выполнения программы с определённой точки. Состояние глобальных переменных обычно не сохраняется, однако для функциональных языков это несущественно (выборочное сохранение/восстановление значений глобальных объектов в Scheme достигается отдельным механизмом dynamic-wind). Продолжения...
Альфа-бета-отсечение (англ. alpha-beta pruning) — алгоритм поиска, стремящийся сократить количество узлов, оцениваемых в дереве поиска алгоритмом минимакса. Предназначен для антагонистических игр и используется для машинной игры (в компьютерных шахматах, компьютерном го и других). В основе алгоритма лежит идея, что оценивание ветви дерева поиска может быть досрочно прекращено (без вычисления всех значений оценивающей функции), если было найдено, что для этой ветви значение оценивающей функции в любом...
Структу́рное программи́рование — парадигма программирования, в основе которой лежит представление программы в виде иерархической структуры блоков.
История комбинаторики освещает развитие комбинаторики — раздела конечной математики, который исследует в основном различные способы выборки заданного числа m элементов из заданного конечного множества: размещения, сочетания, перестановки, а также перечисление и смежные проблемы. Начав с анализа головоломок и азартных игр, комбинаторика оказалась исключительно полезной для решения практических задач почти во всех разделах математики. Кроме того, комбинаторные методы оказались полезными в статистике...
Хеширование (англ. hashing – «превращать в фарш», «мешанина») — преобразование массива входных данных произвольной длины в (выходную) битовую строку установленной длины, выполняемое определённым алгоритмом. Функция, воплощающая алгоритм и выполняющая преобразование, называется «хеш-функцией» или «функцией свёртки». Исходные данные называются входным массивом, «ключом» или «сообщением». Результат преобразования (выходные данные) называется «хешем», «хеш-кодом», «хеш-суммой», «сводкой сообщения».
Случайность имеет множество применений в области науки, искусства, статистики, криптографии, игр, азартных игр, и других областях. Например, случайное распределение в рандомизированных контролируемых исследованиях помогает ученым проверять гипотезы, а также случайные и псевдослучайные числа находят применение в видео-играх, таких как видеопокер.

Подробнее: Применения случайности
Незаконное простое число — простое число, представляющее охраняемую законом информацию, которую запрещено хранить и распространять. Одно из первых незаконных простых чисел было обнародовано в 2001 году. При правильной интерпретации оно представляет собой компьютерную программу, которая обходит схемы защиты авторских прав. Распространение таких программ в США незаконно согласно DMCA, который выводит за пределы правового поля не только непосредственное нарушение авторских прав путём копирования, но...

Упоминания в литературе (продолжение)

Алгори́тм – набор инструкций, описывающих порядок действий исполнителя для достижения некоторого результата. В старой трактовке вместо слова «порядок» использовалось слово «последовательность», но по мере развития параллельности в работе компьютеров слово «последовательность» стали заменять более общим словом «порядок». Независимые инструкции могут выполняться в произвольном порядке, параллельно, если это позволяют используемые исполнители. Алгоритм – это конечный набор правил, позволяющих чисто механически решать любую конкретную задачу из некоторого класса однотипных задач.
Отметим сразу, что единственное устройство, позволяющее моделировать искусственный интеллект, – это компьютер, работающий под управлением алгоритмов, представляющих собой последовательность команд, каждая из которых должна быть однозначно понимаема. Плюс к этому компьютер способен выполнять в одно и то же время только одну команду алгоритма. Существование параллельных вычислений в этом смысле мало что меняет. Возможность параллельных алгоритмов означает существование внутри алгоритма независимых частей, что-то вроде более простых алгоритмов. Эти технические ограничения мы обязаны иметь в виду при всех дальнейших рассуждениях. Системотехнические ограничения очерчивают жесткие границы возможного. А надо сказать, что архитектура вычислительной системы – на самом деле главный фактор эффективности. Настолько важный, что суперкомпьютеры стали таковыми не столько за счет высокой скорости работы процессоров, сколько за счет усложнения конструкции. Но пока даже нейронные сети – это не всегда реальные технические устройства, а лишь модели на базе традиционных компьютеров. И, несмотря на то что современная наука, электроника и теория алгоритмов уже уверенно видят новые горизонты производительности, старая добрая архитектура фон Неймана является основным техническим решением.
Например, недостаточно знать, что 20 + 22 равно 42. Специалисту по информатике нужен алгоритм, который будет складывать два числа. На самом деле все мы в начальной школе изучаем этот алгоритм именно для того, чтобы решать примеры и не углубляться в его составление самим! Подобным образом, во все компьютеры встроена инструкция по сложению – вот насколько она важна! Компьютер действует только как калькулятор, только следуя инструкциям, которые указывают ему, как проводить вычисления. Компьютерная программа – это просто алгоритм или набор алгоритмов, написанных на языке, который понимает машина, – на языке программирования.
Эта книга отличается от большинства других по этой теме тем, что мы не углубляемся в суть математического обоснования или объяснения тех или иных моделей и алгоритмов. На эту тему написано огромное количество хороших книг. Но вот книг о практическом применения этих методов очень мало, если не сказать, что почти нет ни на русском, ни на английском языках. Для этого есть ряд объективных причин. Дело в том, что пользователи Excel редко имеют представление о том, что такое базы данных и как ими манипулировать. Специалисты работающие с SQL-сервером не нуждаются в Excel для разработки данных, поскольку в самом SQL-сервере имеются серьезные инструменты для интеллектуального анализа данных (SSAS – SQL Server Analysis Service, аналитические сервисы SQL-сервера), требующие значительных профессиональных знаний. Тема же нашей книги лежит как раз на стыке этих двух приложений. В результате, многочисленные книги об Excel, концентрируются в основном на использовании встроенных статистических функций, формулах, на вопросах о том, как создавать макросы и писать их на языке VBA и, как правило, обходят тему разработки данных стороной. Книги же по SQL-серверу вообще ориентированы обычно на специалистов и довольно глубоко входят в тему интеллектульного анализа данных в рамках самого SQL-сервера. Но при этом делается упор на построении хранилищ данных (Data Warehouse), так называемых кубов, выбора моделей и алгоритмов, на которых затем и базируется разработка данных.
Один из наиболее сложных алгоритмов, вычисление средневзвешенных величин, также постепенно менялся. Вначале существовало много различных реализаций этого алгоритма, разбросанных по всему коду. Однако позже, с появлением подсистемы отчетов, стало очевидно, что существует только одно место, где этот алгоритм должен быть реализован, – класс AveragedColumn. Именно этим классом и занялся Уорд.
Потому может показаться неожиданным тот факт, что современные компьютеры, решая сложную задачу, действуют совсем иначе. Сама по себе арифметика, разумеется, не представляет большой сложности для современного компьютера. Вот, например, взаимодействие с человеком, восстановление поврежденного файла или победа в игре го (задачи, в которых нет четких правил, частично отсутствует необходимая информация или же поиск единственно верного ответа требует рассмотрения астрономического числа вариантов) действительно бросают вызов компьютерному интеллекту. И алгоритмы, разработанные учеными для решения задач самых сложных категорий, избавили компьютеры от необходимости всецело полагаться на всевозможные расчеты. На самом деле для разрешения реальных жизненных ситуаций необходимо смириться с тем, что в жизни есть место случаю или вероятности, что нам приходится максимально аккуратно использовать время и зачастую работать только с приближенными значениями величин. По мере того как компьютеры приближаются к решению повседневных проблем, они могут предложить не только алгоритмы, которые человек может использовать в жизни, но и более совершенный стандарт, по которому можно оценить когнитивные способности человека.
Тем более будут отличаться так называемая «теоретическая» грамматика языка и, скажем, алгоритм автоматического анализа и синтеза того же языка при машинном переводе, даже если они в равной степени отражают свойства объекта (языка). Каждая из этих моделей оптимальна для определенной цели: будучи заложена в компьютерную программу, самая лучшая теоретическая грамматика окажется бесполезной. Другой характерный пример – описание языка в различных учебниках этого языка. Вообще в науке все больше утверждается принципиальное положение о множественности моделей одного и того же моделируемого объекта.
Как показывает практика, очеловечивание алгоритмов делает их более удобными для нас. Оно может быть полезно, к примеру, если вы разрабатываете функцию автоответчика. Живой голос будут слушать более охотно, чем машинный. Однако фундаментальная проблема заключается в том, что люди относятся к алгоритмам и выполняющим их компьютерам так же, как к работнику, начальнику или коллеге. Но в поведении любого алгоритма есть два очень важных отличия от человеческого.
Очень важно подчеркнуть, что если первичное проектирование отвечает на вопрос «Что мы делаем?», то вторая фаза – на вопрос «Как?». Здесь речь идет об архитектурной составляющей проекта, из каких компонентов он будет состоять, как они будут взаимодействовать. С точки зрения программной архитектуры принимаем решение: будет ли это двух– или трехзвенная система, будут ли использоваться базы данных и т. д. Кроме того, происходит детализация требований. В моделях жизненного цикла, например объектно-ориентированной, очевидно, что детализация требований представляет собой полный перечень всех классов с описанием их сигнатур (имен, типов) атрибутов и методов, локальных и глобальных переменных, методов, которые будут взаимодействовать с соседними классами, и детализацией алгоритмов и структур данных, которые будут использоваться.
Практически каждое правило, сформулированное на научной основе, может быть формализовано с использованием разного количества параметров. Алгоритмы расчета параметров могут быть самыми разными. И, наконец, порядок выбора числовых значений параметров означает выбор определенной схемы оптимизации.
2) в миварных сетях явно выделены две доли: "правила" и "объекты" ("переменные"), а за основу поиска алгоритма логического вывода взяты именно "объекты", которые могут иметь только одно значение и их можно найти только один раз, что исключает циклы и полный перебор;
Заметим, что язык оптимизации (т. е. отыскания экстремальных значений некоторых функционалов или функций), с помощью которого мы описали алгоритмы развития на нижних уровнях организации материи, сохраняет свое значение и для социальной реальности. Однако интеллект производит фильтрацию возможных решений, возможных типов компромиссов неизмеримо эффективнее и быстрее, нежели это делает механизм естественного отбора. Активное участие интеллекта в процессах развития позволяет расширить область поиска оптимума. Системы перестают быть рефлексными, т. е. такими, в которых локальный минимум разыскивается по четко регламентированным правилам. Поэтому для описания новых алгоритмов развития, возникших в социальных системах, простого языка оптимизации становится уже недостаточно. Мы вынуждены широко использовать и другие способы описания, принятые в теории исследования операций и системном анализе. В частности, это язык и методы анализа конфликтных ситуаций и многокритериальной оптимизации.
В последние годы в мире активно разрабатывается новое научное направление «Природные вычисления» (Natural Computing). Иногда под ними понимаются некоторые алгоритмические действия, которые можно наблюдать с реальными объектами в живой природе. Эти алгоритмы реализуют принципы природных механизмов принятия решений, которые обеспечивают эффективную адаптацию флоры и фауны к окружающей среде на протяжении нескольких миллионов лет. Безусловно, брать такие алгоритмы для решения конкретных научно-технических задач проблематично, тем более, что исследователи лишь схематично могут отразить в процессе предположений и моделирования истинные явления. Вместе с тем такие алгоритмы строятся по установленным в процессе специально организованных экспериментов природным закономерностям, в основу которых закладываются достаточно простые принципы, полезные для осмысления группового движения и объектов неживой природы. Ярким примером является широко распространенный метод «погони» для наведения зенитной ракеты на цель, в основу которого положен алгоритм «погони лисы за зайцем» (вектор скорости ракеты всегда направлен на цель [38]).
Для тех задач, для которых нет стандартной схемы решения или она ещё не выявлена, есть другие инструменты. В частности, для решения сложных задач разработаны алгоритмы, включающие разные инструменты ТРИЗ, и рекомендации по последовательности их использования. При решении задачи по такому алгоритму изобретатель по установленным правилам корректирует первоначальную формулировку задачи, строит модель задачи, определяет имеющиеся ресурсы, формулирует идеальный конечный результат, выявляет и анализирует противоречия, применяет специальные приёмы против психологической инерции. Последним таким алгоритмом в классической ТРИЗ стал АРИЗ-85В[5].
Практическое осуществление первой задачи может происходить различным образом. Например, анализ целей, стоящих перед бортовым оборудованием, определение путей и алгоритмов их достижения, назначение состава ФКМ производится проектировщиком оборудования, выбор же требуемых параметров ФКМ поручается ЭВМ. В принципе возможен и другой путь, связанный с переложением всех указанных операций на ЭВМ, т. е. связанный с полной автоматизацией решения задачи. Возможен и третий, комбинированный путь, когда анализ целей, определение алгоритмов их достижения и назначение соответствующего состава ФКМ осуществляются в режиме диалога проектировщика и ЭВМ, все остальное по-прежнему возлагается на ЭВМ. Но в любом случае будет иметь место целенаправленный перебор различных вариантов возможных структур бортового оборудования, имеющий целью нахождение оптимальной структуры. Поэтому большое значение приобретают методы такого перебора.
Итак, действительное значение математической строгости не следует преувеличивать и доводить до абсурда; здравый смысл в математике не менее уместен, чем во всякой другой науке. Более того, во все времена крупные математические идеи опережали господствующие стандарты строгости. Так было с великим открытием XVII в. – созданием основ анализа бесконечно малых (т. е. основ дифференциального и интегрального исчисления) Ньютоном и Лейбницем. Введённое ими в обиход понятие бесконечно малой определялось весьма туманно и казалось загадочным современникам (в том числе, по-видимому, и самим его авторам). Тем не менее оно с успехом использовалось в математике. Разработанный Ньютоном и Лейбницем символический язык не имел точной семантики (которая в удовлетворяющей нас сейчас форме была найдена лишь через полтораста лет), но даже и в таком виде позволял описывать и исследовать важнейшие явления действительности. Так было и с такими фундаментальными понятиями математики, как предел, вероятность, алгоритм, которыми пользовались, не дожидаясь их уточнения. Так обстоит дело и с «самым главным» понятием математики – понятием доказательства. «Со времён греков говорить "математика" – значит говорить "доказательство"» – этими словами открывается знаменитый трактат Николя Бурбаки «Начала математики»[5]. Однако читатель заметит, что знакомое ему ещё со школы понятие доказательства носит скорее психологический, чем математический характер. Доказательство (в общепринятом употреблении этого слова) – это всего лишь рассуждение, которое должно убедить нас настолько, что мы сами готовы убеждать с его помощью других. Несомненно, что уточнение этого понятия (во всей полноте его объёма) – одна из важнейших задач математики.
Велись и работы по воплощению давней мечты переводчика – созданию полностью автоматизированного рабочего места. Наиболее интересной в этом плане представляется разрабатывавшаяся в начале 90-х в университете Carnegie Mellon (г. Питтсбург) технология Interlingua, основывающаяся на теории машинного интеллекта. Суть этой технологии заключается в том, что на основе специально разработанных алгоритмов программа анализирует смысл текста оригинала и переводит его на промежуточный искусственный язык Interlingua. После этого исходный текст компьютер может автоматически переводить на любой язык, предусмотренный программой и имеющий соответствующие алгоритмы. Можно себе представить, насколько это было бы удобно для производителей техники, выпускающей инструкции по эксплуатации и другие технические материалы сразу на нескольких языках. Данная технология также предусматривала потенциальную возможность устного перевода – при помощи дополнительных программ распознавания человеческой речи и устройств-синтезаторов речи.
Решить проблему соотнесения накопленных экспериментальных и эмпирических данных может помочь такая модель, которая позволит учесть феноменологию и языки описания обеих конкурирующих теорий. Одним из решений может быть модель, описывающая вычисление с помощью системы операций, алгоритмов и эвристик, с одной стороны, и нахождение решения с помощью неосознаваемых, интуитивных процессов (переструктурирование репрезентации, смещение фокуса внимания и др.) как режимы работы единого процесса мышления, режимы, переключение между которыми возможно в зависимости от особенностей задачи и этапа решения. Как раз такая модель была в свое время предложена Я. А. Пономаревым (Пономарев, 1957, 1976).
Заметим, что язык оптимизации, то есть отыскания экстремальных значений некоторых функционалов, с помощью которого мы описали алгоритмы развития на нижних уровнях организации материи, сохраняет свое значение и для социальной реальности. Однако интеллект производит фильтрацию возможных решений, возможных типов компромиссов неизмеримо эффективнее и быстрее, нежели это делает механизм естественного отбора.
Большие возможности для совершенствования элементной базы открывает возможность использования квантовых эффектов. Теоретическим пределом работы классических вычислительных систем является использование в качестве носителя информации (бита) одного атома, обладающего определенным зарядом. Далее возможен переход только на субатомарные частицы, однако на этом уровне материя утрачивает привычное деление на «вещество-энергию». Тот же электрон является одновременно и частицей, и волной, следовательно, его положение в пространстве не может быть четко определено, а значит, не может быть использовано для передачи информации. Именно наличие положительного заряда у протона стабилизирует электрон и удерживает его в довольно ограниченной пространственной области – вокруг атомного ядра. Однако такая нестабильность субатомарных частиц позволяет с их помощью выражать одновременно несколько показателей. Если классическая элементная единица компьютера, работающая в двоичном коде, может обладать показателями либо «0», либо «1», то элементная единица, построенная на квантовом принципе (для нее уже придумано название – кубит), может в одно и то же время обладать значениями и «0», и «1», а, возможно, и иных показателей. То есть, в одну единицу времени могут параллельно идти несколько вычислительных процессов. С другой стороны, нестабильность квантовых частиц в пространстве-времени делает затруднительным использование обычного математического аппарата, поэтому для квантовых компьютеров потребовались принципиально иные алгоритмы работы, причем они оказались гораздо более громоздкие, чем классические. В настоящее время существует лишь несколько задач, с которыми модель квантовой ЭВМ могла бы справиться эффективнее классического компьютера.
анализ, поиск теоретического материала (который находится на следующей, «концептуальной доске») по данной теме. Осознание того, что проблема заключена в мотивации, а возможно, и конкретнее в интеллектуальной готовности к обучению, поиск научно-обоснованных способов ее повышения. В дальнейшем переход на «проектную доску», построение на ней алгоритма (плана или проекта) с учетом найденного материала и применения его уже на ситуативном уровне. Это может быть такой механизм, – если проблема в интеллектуальной готовности к обучению, т. е. учащиеся не выполняют домашнее задание из-за того, что просто не могут этого сделать из-за существенных пробелов в усвоенном ранее материале, то можно больше времени на уроке уделять повторению.
На этапе применения модели знания (то есть в процессе когнитивного понимания текста) этот закон преломился в требование выявления максимальной точности и однозначности фонетических, лексических, грамматических, стилистических, семантических значений. Выполнение этого требования составило условия для возникновения и фиксации регулярной соотнесенности целей и ментальных (речевых) состояний при разработке серии продуктов «языка мозга» (классов и подклассов слов, денотатных планов, концептуальных зависимостей, семантических сетей, фреймов, сценария как конечного ментального продукта понимания), при разработке алгоритмов, метапрограмм и программ мысли и вторичного текста. Эти информационно-логические модели служили формализованными техническими (речемыслительными) заданиями и техническими (речемыслительными) описаниями программ.
Любой фрактал может быть представлен как визуализация некоторого алгоритма, набора математических процедур, имеющих характер последовательных итераций (многократных повторений заданных операций). Фрактальные итерации – рекурсивны, т. е. каждый результат предыдущего шага служит начальным значением для нового цикла самовоспроизводства фрактальной структуры (узора, конструкции, идеи).
Компьютерные модели основываются на программировании с использованием не уравнений, а алгоритмов (строго сформулированных последовательностей инструкций). Компьютерные модели бывают особенно эффективны при изучении ситуаций, сопряженных с обработкой большого количества информации, например процессов поиска в памяти, обучения, нечисловых процессов.
Наконец, всеми любимый многие годы, межотраслевой баланс (МОБ). По-существу, его необходимо было бы запретить в экономической практике, так как МОБ применим к экономике по поговорке «в огороде бузина, а в Киеве дядька». Применение статического МОБ только гробит экономическое развитие. Этот математический инструмент по всем своим характеристикам к экономике не имеет никакого отношения. Его предназначение – обеспечить некий «баланс коэффициентов» в системе линейных алгебраических уравнений (сделать систему алгебраических уравнений совместимой, т. е. решаемой). Однако сбалансированные системы по своему имманентному существу не имеют необходимого экономики алгоритма развития. Сбалансированные системы всегда «консервативны». Изменяться и, следовательно, развиваться может только система, которая имеет хотя бы одну разбалансированность. Кроме того, в МОБ слишком много ограничений, запрещающих его применение. Так, МОБ: не моделирует динамику экономики, не позволяет описать обратные связи, по своему существу не только не позволяет выполнить математическое описание изменений структуры экономического объекта, но и моделировать управление интенсивностью хаоса экономической динамики. В МОБ не представлены интегралы-накопители ресурсов, моделирующие накопления ресурсных резервов, часто используемые для генерации сигналов управления потоками ресурсов. И еще множество того, что говорит о непригодности этого инструмента для управления экономикой. Например, в МОБ невозможно выполнить математическое описание необходимых автоматических регуляторов экономической динамики.
Впрочем, в контексте общей увлеченности кибернетическим подходом появление подобных исходных установок не кажется удивительным: «Я думаю, что эти ловушки являются следствием применения в НЛП метафоры компьютерного программирования и ее нацеленностью на скорость. Поведение и способности не являются программным обеспечением, которое может быть скопировано на другой носитель (компьютер) и принести там те же результаты, потому что люди не компьютеры. Мозги не работают позаконам логических алгоритмов. Они изменяются во время обучения даже на нейронном уровне».
Главные элементы технологии блокчейна, такие как криптография и алгоритмы, основаны на сложных математических концепциях, которые, в свою очередь, предъявляют свои особые требования к их пониманию, а также приводят к необходимости изучения математических выкладок и формул, устрашающих на вид. И все же в книге намеренно не используются ни математические выкладки, ни формулы, чтобы избежать ненужной сложности и не создавать дополнительных затруднений для читателей с недостаточной технической подготовкой.
Программируемые решения – это решения повторяющихся и четко определенных проблем. Как правило, это стандартные задачи, неоднократно возникающие в организации, по поводу которых имеется достаточно надежная и достоверная информация, а также готовые, разработанные и успешно применявшиеся ранее правила и процедуры. Процедура устанавливает порядок, последовательность действий, права, обязанности участников взаимодействия в процессе принятия решения. В качестве примера можно привести задачу оформления периодического заказа инвентаря для одного из цехов предприятия. Для разработки и оптимизации программируемых решений используются формализованные методы, которые имеют четкий алгоритм решения задачи в виде экономико-математических моделей, методик анализа и расчета данных, компьютерных программ, обеспечивающих высокую точность количественной оценки разрабатываемых вариантов.
Индуктивные определения. Индуктивным определением называется определение некоторого множества посредством использования общего приема (алгоритма), позволяющего построить любой элемент этого множества из некоторых исходных элементов. Алгоритмом здесь называется точное предписание, выполнение которого ведет от начальных данных к искомому результату. Индуктивное определение и задает такой способ порождения элементов множества из некоторых исходных.
Последовательности выбора в зависимости от степени информированности (относительно последовательности выбора) разделяют на следующие виды: 1) полностью известен закон образования последовательности выбора, например, в виде алгоритма, тогда такую последовательность выбора называют заданной законом (одна крайность); 2) если в каждый момент времени исследователю известен лишь некоторый начальный отрезок последовательности выбора и нет никакой информации относительно ее дальнейшего поведения, то такие последовательности выбора называются беззаконными (вторая крайность).
Наверняка вам известна знаменитая оптическая иллюзия, представленная двойственным изображением девушки и старухи. Кого вы видите, глядя на рисунок: девушку или старуху? Поиск ответа на этот вопрос и есть процесс осознания, когда в ходе циклов сравнения величина ошибки между ожидаемым образом (работа внутренних «самоотождествляющих» алгоритмов) и образом, регистрируемым сенсорной системой, станет меньше порога. А выбор системой управления в мозге тех или иных алгоритмов распознавания и имитационного «самоотождествления» представляет собой аналог процесса внимания. Регистрацию сигнала биологические сенсоры могут осуществить за микросекунды и бессознательно распознать за ~30–70 миллисекунд, а вот для осознания образа требуется провести циклы сравнения (для людей этот диапазон от 70 до 200 миллисекунд и, в зависимости от обстоятельств, даже больше). При этом осознается либо один, либо другой образ (старуха/девушка), и переключение между ними происходит уже за секунды. Конечно, процессы восприятия более разнообразны, потому что живые системы состоят из многих иерархий распознающих систем, к тому же по-разному функционально ориентированных. Приведенная схема описания, как мне представляется, позволяет двигаться по пути формализации многоуровневых динамических процессов в управлении живыми системами и снять излишний ореол загадочности с процессов, воспринимаемых нами как разные уровни сознания.
Конечно, это различие не полностью совпадет с различием между наукой и техникой, точнее – между научным знанием и знанием техническим. Между знанием результатов наблюдений, измерений, классификации природных явлений и законов ими управляющих; и знанием инструкций, руководств, алгоритмов, которые превращаются в производственные, технологические действия. Рамки данной работы не позволяют мне далее углубляться в эту тему. Ограничусь лишь констатацией того факта, что одна из важнейших особенностей постнеклассической науки, как рекурсивно го, автпоэтического процесса самовоспроизведения и конвергентной симбиотической эволюции, состоит в синергийном взаимодействии Q-знания и A-знания. Это обстоятельство дает право некоторым авторам говорить о становлении нового способа производства научного знания, именуемого технонаукой. И это же обстоятельство дает основание другим авторам критиковать концепцию постнеклассической науки за то, что она якобы сводит ее к чисто прикладному аспекту. Тогда как другие полагают, что присутствие в ее контекстах фигуры наблюдателя, придает всей постнеклассике как мышлению в сложности (thinking in complexity) субъе?-ориентированный характер с неизбежно вытекающим из этого релятивизмом, отказом от поисков «окончательной реальности» и т. д. Однако критика этих критиков не входит в задачу этой работы. Да и вообще занятие само по себе малоинтересное.
Я по-прежнему убежден, что одной из важнейших способностей искусственного интеллекта, над которым мы работаем, является самостоятельное осознанное интенсивное развитие. Как показывает посторонний опыт, экстенсивное развитие, свойственное многим компьютерным системам, способно увеличить их производительность, но неспособно вывести за рамки изначально заложенных алгоритмов. Если таким системам и свойственна качественная эволюция, то только путем внесения доработок извне. Таким образом, путь планомерного развития через поглощение новой информации и обработки имеющейся является тупиковым – во всяком случае, для наших задач, поскольку случайное «техническое» саморазвитие ядра методом перебора всех устойчивых алгоритмов и отбраковкой бесполезных поглотит все имеющиеся у системы ресурсы на сотни или даже тысячи лет. И я не возьмусь утверждать, что рано или поздно такой компьютер не скажет нам «сорок два»[2].
Четвёртый модуль реализует процессы интеграции и применяет эвристики, как общие, относящиеся к определённому классу систем КУИОТ, так и специфические, для конкретных систем. В соответствии с этой схемой каждый модуль более высокого уровня иерархии включает в себя все модули более низких уровней. В совокупности эти модули должны обеспечивать условия реализации методологии в решении задач создания и развития систем КУИОТ. Третий модуль должен обеспечивать всесторонний анализ различных систем КУИОТ. Однако структурно-параметрический синтез КУИОТ будет возможен при условии модуля, обеспечивающего такой алгоритм. Поскольку пока отсутствуют универсальные алгоритмы, позволяющие проводить такой синтез, поэтому целесообразно использовать различные решения других предметных областей. При условии обогащения третьего модуля знаниями задания на синтез и решениями, применяемыми при проектировании систем КУИОТ, то получим четвёртый модуль. Этот модуль представляет собой обобщающую модель, дополненную алгоритмом синтеза. Необходимо, чтобы модель отражала полную и достоверную информацию по предметной области КУИОТ.
ТРИЗ-педагогика опирается на разработанные в рамках теории решения изобретательских задач методы: операторы снятия стереотипов, приёмы разрешения противоречий, алгоритмы решения творческих задач и другие. В то же время ТРИЗ-педагогика не пренебрегает другими методами поиска новых идей[3], используя их как вспомогательные.
Со своей стороны, поддерживая эту критическую аргументацию, я остановлюсь на примере, который кочует из публикации в публикацию школы Гигеренцера, видимо, как самый неотразимый и который, насколько мне известно, не подвергался критическому анализу в работах оппонентов. Речь идет о ловле игроком летящего мяча. С долей иронии Г. Гигеренцер с соавторами цитирует Р. Докинза, который считает, что для решения такого типа задачи (поимки кого-то или чего-то движущегося) живое существо должно на уровне процессов в нервной системе (в нейронах, ганглиях и т. д.) решать системы дифференциальных уравнений. На самом деле, подчеркивают авторы, есть значительно более простая эвристика. Игроку надо зафиксировать глазом угол, под которым виден мяч в начальный момент относительно горизонта, и затем передвигаться по полю так, чтобы этот угол сохранялся постоянным. Тогда игрок, по мнению авторов, обязательно поймает мяч. Если этот угол будет увеличиваться относительно заданного, это означает, что мяч летит все выше, и игрок будет смещаться назад, чтобы сохранить прежний угол. Если же угол будет уменьшаться относительно заданного, это означает, что мяч снижается, и игрок будет смещаться вперед пока не сблизится с ним настолько, что поймает его. При этом игроку даже не обязательно понимать, что мяч летит выше или ниже. Предлагаемый алгоритм способно выполнить и автоматическое устройство ловли мячей, как пишут авторы.
Текстовое описание формализованным языком – это описание БП с помощью заранее определенных словесных конструкций и оборотов, подобно словесному описанию алгоритма программы (ЕСЛИ… ТО… ИНАЧЕ… и т. п.). Кроме того, при описании формализованным языком уже существует определенный глоссарий терминов предметной области, что немаловажно для правильного понимания процесса. Недостатки данного способа представления информации – сравнительно большой объем, что может затруднить понимание процесса.
Предположим, что показатели регулярности R, безопасности Б и экономичности Э полета представляют собой вероятности возникновения некоторых событий. Предположим также, что алгоритм (метод) расчета эффекта J1 в зависимости от значений указанных показателей известен. В качестве примера такого алгоритма рассмотрим алгоритм, устанавливающий зависимость между эффектом J1 и значениями показателя безопасности полета, под которым будем понимать вероятность или частоту особых ситуаций.
Алгоритм – это точное предписание о выполнении в определенном порядке некоторой системы операций, которые ведут к решению всех задач (проблем) определенного типа. Данный метод, являясь по своей сути теоретическим, тесно связан с эмпирическими методами построения теорий.
6. Итак, через гласные человеку открывается проход в бесконечность возможных точек и систем отсчета, кодом гласных букв определяются границы новой греческой и впоследствии европейской ментальности, повлекшей развитие цивилизации (метапрограмма «процесс», «изменения»). Человек стремится к пределам бесконечного во времени. Каждое движение в этом процессе создает новую позицию (точку отсчета), относительно которой меняется картина мира. Эти движения, как поворот оси калейдоскопа, не имеют преимущества одно перед другим, они равноценны. Однако число гласных определено. Это означает, что новая ментальная модель предлагает алгоритм изменений. В этом смысле бесконечность – не количественная, а качественная характеристика.
а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ э ю я