Связанные понятия
Вычисли́тельная сло́жность — понятие в информатике и теории алгоритмов, обозначающее функцию зависимости объёма работы, которая выполняется некоторым алгоритмом, от размера входных данных. Раздел, изучающий вычислительную сложность, называется теорией сложности вычислений. Объём работы обычно измеряется абстрактными понятиями времени и пространства, называемыми вычислительными ресурсами. Время определяется количеством элементарных шагов, необходимых для решения задачи, тогда как пространство определяется...
Полный перебор (или метод «грубой силы», англ. brute force) — метод решения математических задач. Относится к классу методов поиска решения исчерпыванием всевозможных вариантов. Сложность полного перебора зависит от количества всех возможных решений задачи. Если пространство решений очень велико, то полный перебор может не дать результатов в течение нескольких лет или даже столетий.
Криптосистема — это завершённая комплексная модель, способная производить двусторонние криптопреобразования над данными произвольного объёма и подтверждать время отправки сообщения, обладающая механизмом преобразования паролей, ключей и системой транспортного кодирования.
Двоичный (бинарный) поиск (также известен как метод деления пополам и дихотомия) — классический алгоритм поиска элемента в отсортированном массиве (векторе), использующий дробление массива на половины. Используется в информатике, вычислительной математике и математическом программировании.
Факторизация целых чисел для больших чисел является задачей большой сложности. Не существует никакого известного способа, чтобы решить эту задачу быстро. Её сложность лежит в основе некоторых алгоритмов шифрования с открытым ключом, таких как RSA.
Упоминания в литературе
Автоматическое доказательство теорем – одна из старейших областей возможного применения ИИ, где было много достижений, исследований и программ, включая Универсальный решатель задач Ньюэлла и Саймона. Люгер подчеркивает, что именно "…эта ветвь принесла наиболее богатые плоды…" [264, стр. 44]. Благодаря исследованиям в этой области были формализованы
алгоритмы поиска и разработаны языки формальных представлений, такие как исчисление предикатов и логический язык программирования Пролог. Приведем обоснование Дж. Люгера: "… привлекательность автоматического доказательства теорем основана на строгости и общности логики. В формальной системе логика располагает к автоматизации. Разнообразные проблемы можно попытаться решить, представив описание задачи и существенно относящуюся к ней информацию в виде логических аксиом и рассматривая различные случаи задачи как теоремы, которые нужно доказать. Этот принцип лежит в основе автоматического доказательства теорем и систем математических обоснований" [264, стр. 44]. Далее следует замечательный вывод и итог 20 века в этой наиболее богатой ветви: "К сожалению, в ранних пробах написать программу для автоматического доказательства, не удалось разработать систему, которая бы единообразно решала сложные задачи" [264, стр. 44]. Таким образом, Дж. Люгер подтверждает наш тезис о том, что в прошлом веке даже в самых передовых областях ИИ ученые не смогли решить сложные задачи, а значит, нужны принципиально новые подходы и исследования, к числу которых относится и миварный подход.
Раздел математики, сейчас называемый «математический анализ», в старые годы был известен под названием «дифференциальное и интегральное исчисление». Отнюдь не всем обязательно знать точное определение таких основных понятий этого раздела, как производная и интеграл. Однако каждому образованному человеку желательно иметь представление о производном числе как о мгновенной скорости (а также как об угловом коэффициенте касательной) и об определённом интеграле как о площади (а также как о величине пройденного пути). Поучительно знать и о знаменитых математических проблемах (разумеется, тех из них, которые имеют общедоступные формулировки) – решённых (таких как проблема Ферма и проблема четырёх красок[2]), ждущих решения (таких, как проблема близнецов[3]) и тех, у которых решения заведомо отсутствуют (из числа задач на геометрическое построение и простейших задач на отыскание
алгоритмов ). Ясное понимание несуществования чего-то – чисел ли с заданными свойствами, или способов построения, или алгоритмов – создаёт особый дискурс, который можно было бы назвать культурой невозможного. И культура невозможного, и предпринимаемые математикой попытки познания бесконечного значительно расширяют горизонты мышления.
APRP (Adaptive Pattern Recognition Process), технология адаптивного распознавания образов, производит так называемый «нечёткий поиск», при котором для поиска изображения не требуется ни словесного описания, ни ключевых слов, ни других специальных приёмов. В данной технологии под нечётким поиском понимается операция нахождения объекта по его достаточно близкому образу (например, по фотографии человека, на лице которого время оставило свои следы). Любого рода данные технология обрабатывает одинаково – в виде нулей и единиц, поэтому она равным образом применяется для индексации и нечёткого поиска как текстов (библиотека TRS), так и звукозаписей (библиотека SRS) и видеозаписей (библиотека VRS). Это обстоятельство позволяет воспользоваться для понимания
алгоритмов технологии примером из области обработки текстов. Поскольку APRP работает не с ключевыми словами, а с образами, две-три изменённые (или ошибочные) буквы в слове или фразе не могут существенно изменить базовую картину текста. Таким образом, автоматически становится допустимой ошибка как во входных данных, так и в терминах запроса. Например, если мы напишем в запросе: «ЦЦЦТЕР МАРГМАСАРИТАЭЭЭЭЭЭ», имея в виду название романа Булгакова, то получим правильный ответ – «Мастер и Маргарита».
Примером создания нечётких дублей также может служить объединение фрагментов текста, взятых с разных сайтов. Может показаться, что, склеив «надёрганные» из разных источников фрагменты, можно создать уникальный текст. В подобных случаях поисковые системы применяют более сложные
алгоритмы . В частности, поисковая система Яндекс применяет алгоритм супершинглов (1997 г., А. Бродер). Текст, проверяемый на уникальность, разбивается на участки длиной по десять слов внахлест, с перекрытием в одно слово. Далее все эти участки меняют на короткое математическое представление (контрольные суммы) и сравнивают с контрольными суммами, вычисленными таким же способом для других документов базы поисковой системы. Это позволяет с высокой вероятностью определить заимствование текста.
Алгори́тм – набор инструкций, описывающих порядок действий исполнителя для достижения некоторого результата. В старой трактовке вместо слова «порядок» использовалось слово «последовательность», но по мере развития параллельности в работе компьютеров слово «последовательность» стали заменять более общим словом «порядок». Независимые инструкции могут выполняться в произвольном порядке, параллельно, если это позволяют используемые исполнители.
Алгоритм – это конечный набор правил, позволяющих чисто механически решать любую конкретную задачу из некоторого класса однотипных задач.
Связанные понятия (продолжение)
Вероятностный алгоритм — алгоритм, предусматривающий обращение на определённых этапах своей работы к генератору случайных чисел с целью получения экономии во времени работы за счёт замены абсолютной достоверности результата достоверностью с некоторой вероятностью.
Реку́рсия — определение, описание, изображение какого-либо объекта или процесса внутри самого этого объекта или процесса, то есть ситуация, когда объект является частью самого себя. Термин «рекурсия» используется в различных специальных областях знаний — от лингвистики до логики, но наиболее широкое применение находит в математике и информатике.
Эллиптическая криптография — раздел криптографии, который изучает асимметричные криптосистемы, основанные на эллиптических кривых над конечными полями. Основное преимущество эллиптической криптографии заключается в том, что на сегодняшний день не известно существование субэкспоненциальных алгоритмов решения задачи дискретного логарифмирования.
Структура данных (англ. data structure) — программная единица, позволяющая хранить и обрабатывать множество однотипных и/или логически связанных данных в вычислительной технике. Для добавления, поиска, изменения и удаления данных структура данных предоставляет некоторый набор функций, составляющих её интерфейс.
Обнаруже́ние оши́бок в технике связи — действие, направленное на контроль целостности данных при записи/воспроизведении информации или при её передаче по линиям связи. Исправление ошибок (коррекция ошибок) — процедура восстановления информации после чтения её из устройства хранения или канала связи.
Разделяй и властвуй (англ. divide and conquer) в информатике — важная парадигма разработки алгоритмов, заключающаяся в рекурсивном разбиении решаемой задачи на две или более подзадачи того же типа, но меньшего размера, и комбинировании их решений для получения ответа к исходной задаче; разбиения выполняются до тех пор, пока все подзадачи не окажутся элементарными.
Комбинаторная оптимизация — область теории оптимизации в прикладной математике, связанная с исследованием операций, теорией алгоритмов и теорией вычислительной сложности.
Псевдослуча́йная после́довательность (ПСП) — последовательность чисел, которая была вычислена по некоторому определённому арифметическому правилу, но имеет все свойства случайной последовательности чисел в рамках решаемой задачи.
Задача классифика́ции — задача, в которой имеется множество объектов (ситуаций), разделённых некоторым образом на классы. Задано конечное множество объектов, для которых известно, к каким классам они относятся. Это множество называется выборкой. Классовая принадлежность остальных объектов неизвестна. Требуется построить алгоритм, способный классифицировать (см. ниже) произвольный объект из исходного множества.
Динамическое программирование в теории управления и теории вычислительных систем — способ решения сложных задач путём разбиения их на более простые подзадачи. Он применим к задачам с оптимальной подструктурой, выглядящим как набор перекрывающихся подзадач, сложность которых чуть меньше исходной. В этом случае время вычислений, по сравнению с «наивными» методами, можно значительно сократить.
Вычисления с оракулом — вычисление с помощью машины Тьюринга, дополненной оракулом с неизвестным внутренним устройством.
Очередь с приоритетом (англ. priority queue) — абстрактный тип данных в программировании, поддерживающий две обязательные операции — добавить элемент и извлечь максимум(минимум). Предполагается, что для каждого элемента можно вычислить его приоритет — действительное число или в общем случае элемент линейно упорядоченного множества.
Детерминированный алгоритм — алгоритмический процесс, который выдаёт уникальный и предопределённый результат для заданных входных данных.
Обучение с ошибками (англ. Learning with errors) — это концепция машинного обучения, суть которой заключается в том, что в простые вычислительные задачи (например, системы линейных уравнений) намеренно вносится ошибка, делая их решение известными методами неосуществимым за приемлемое время.
Постквантовая криптография — часть криптографии, которая остаётся актуальной и при появлении квантовых компьютеров и квантовых атак. Так как по скорости вычисления традиционных криптографических алгоритмов квантовые компьютеры значительно превосходят классические компьютерные архитектуры, современные криптографические системы становятся потенциально уязвимыми к криптографическим атакам. Большинство традиционных криптосистем опирается на проблемы факторизации целых чисел или задачи дискретного логарифмирования...
Поиск с возвратом , бэктрекинг (англ. backtracking) — общий метод нахождения решений задачи, в которой требуется полный перебор всех возможных вариантов в некотором множестве М. Как правило позволяет решать задачи, в которых ставятся вопросы типа: «Перечислите все возможные варианты …», «Сколько существует способов …», «Есть ли способ …», «Существует ли объект…» и т. п.
Односторонняя функция — математическая функция, которая легко вычисляется для любого входного значения, но трудно найти аргумент по заданному значению функции. Здесь «легко» и «трудно» должны пониматься с точки зрения теории сложности вычислений. Разрыв между сложностью прямого и обратного преобразований определяет криптографическую эффективность односторонней функции. Неинъективность функции не является достаточным условием для того, чтобы называть её односторонней. Односторонние функции могут называться...
Криптографическая стойкость (или криптостойкость) — способность криптографического алгоритма противостоять криптоанализу. Стойким считается алгоритм, атака на который требует от атакующего наличия столь значительных вычислительных ресурсов или огромных затрат времени на расшифровку перехваченных сообщений, что к моменту их расшифровки защищённая информация потеряет свою актуальность. В большом количестве случаев криптостойкость не может быть математически доказана; можно только доказать уязвимость...
Хеширование (англ. hashing – «превращать в фарш», «мешанина») — преобразование массива входных данных произвольной длины в (выходную) битовую строку установленной длины, выполняемое определённым алгоритмом. Функция, воплощающая алгоритм и выполняющая преобразование, называется «хеш-функцией» или «функцией свёртки». Исходные данные называются входным массивом, «ключом» или «сообщением». Результат преобразования (выходные данные) называется «хешем», «хеш-кодом», «хеш-суммой», «сводкой сообщения».
Алгоритм Берлекэмпа — Мэсси — алгоритм поиска кратчайшего регистра сдвига с линейной обратной связью для поданной на вход бинарной последовательности. Также алгоритм позволяет найти минимальный многочлен поданной на вход линейной рекуррентной последовательности над произвольным полем.
Эвристический алгоритм (эвристика) — алгоритм решения задачи, включающий практический метод, не являющийся гарантированно точным или оптимальным, но достаточный для решения поставленной задачи. Позволяет ускорить решение задачи в тех случаях, когда точное решение не может быть найдено.
Схема Эль-Гамаля (Elgamal) — криптосистема с открытым ключом, основанная на трудности вычисления дискретных логарифмов в конечном поле. Криптосистема включает в себя алгоритм шифрования и алгоритм цифровой подписи. Схема Эль-Гамаля лежит в основе бывших стандартов электронной цифровой подписи в США (DSA) и России (ГОСТ Р 34.10-94).
Хеш-табли́ца — это структура данных, реализующая интерфейс ассоциативного массива, а именно, она позволяет хранить пары (ключ, значение) и выполнять три операции: операцию добавления новой пары, операцию поиска и операцию удаления пары по ключу.
Формальная верификация или формальное доказательство — формальное доказательство соответствия или несоответствия формального предмета верификации его формальному описанию. Предметом выступают алгоритмы, программы и другие доказательства.
Алгоритм Витерби — алгоритм поиска наиболее подходящего списка состояний (называемого путём Витерби), который в контексте цепей Маркова получает наиболее вероятную последовательность произошедших событий.
Криптосистема Нидеррайтера — криптосистема с открытыми ключами, основанная на теории алгебраического кодирования, разработанная в 1986 году Харальдом Нидеррайтером. В отличие от криптосистемы McEliece, в криптосистеме Нидеррайтера используется проверочная матрица кода. Криптосистема Нидеррайтера позволяет создавать цифровые подписи и является кандидатом для постквантовой криптографии, поскольку устойчива к атаке с использованием алгоритма Шора.
Криптосистема Гольдвассер — Микали (GM) — криптографическая система с открытым ключом, разработанная Шафи Гольдвассер и Сильвио Микали в 1982 году. GM является первой схемой вероятностного шифрования с открытым ключом, доказуемо стойкая при стандартных криптографических предположениях. Однако, криптосистема GM является неэффективной, так как шифртекст может быть в сотни раз длиннее, чем шифруемое сообщение. Для доказательства свойств стойкости криптосистемы Голдвассер и Микали ввели широко используемое...
Оптимизация — в математике, информатике и исследовании операций задача нахождения экстремума (минимума или максимума) целевой функции в некоторой области конечномерного векторного пространства, ограниченной набором линейных и/или нелинейных равенств и/или неравенств.
Алгоритм сортировки — это алгоритм для упорядочивания элементов в списке. В случае, когда элемент списка имеет несколько полей, поле, служащее критерием порядка, называется ключом сортировки. На практике в качестве ключа часто выступает число, а в остальных полях хранятся какие-либо данные, никак не влияющие на работу алгоритма.
Криптогра́фия (от др.-греч. κρυπτός «скрытый» + γράφω «пишу») — наука о методах обеспечения конфиденциальности (невозможности прочтения информации посторонним), целостности данных (невозможности незаметного изменения информации), аутентификации (проверки подлинности авторства или иных свойств объекта), а также невозможности отказа от авторства.
Криптографические примитивы — низкоуровневые криптографические алгоритмы, которые часто используются для построения криптографических протоколов. В узком смысле это операции и процедуры, определяющие требуемые свойства криптосистемы.
Тео́рия алгори́тмов — наука, находящаяся на стыке математики и информатики, изучающая общие свойства и закономерности алгоритмов и разнообразные формальные модели их представления. К задачам теории алгоритмов относятся формальное доказательство алгоритмической неразрешимости задач, асимптотический анализ сложности алгоритмов, классификация алгоритмов в соответствии с классами сложности, разработка критериев сравнительной оценки качества алгоритмов и т. п. Вместе с математической логикой теория алгоритмов...
Метод опорных векторов (англ. SVM, support vector machine) — набор схожих алгоритмов обучения с учителем, использующихся для задач классификации и регрессионного анализа. Принадлежит семейству линейных классификаторов и может также рассматриваться как специальный случай регуляризации по Тихонову. Особым свойством метода опорных векторов является непрерывное уменьшение эмпирической ошибки классификации и увеличение зазора, поэтому метод также известен как метод классификатора с максимальным зазором...
Блочный шифр «
Кузнечик » (входит в стандарт ГОСТ Р 34.12-2015) — симметричный алгоритм блочного шифрования с размером блока 128 бит и длиной ключа 256 бит и использующий для генерации раундовых ключей сеть Фейстеля.
Псевдоко́д — компактный (зачастую неформальный) язык описания алгоритмов, использующий ключевые слова императивных языков программирования, но опускающий несущественные подробности и специфический синтаксис. Псевдокод обычно опускает детали, несущественные для понимания алгоритма человеком. Такими несущественными деталями могут быть описания переменных, системно-зависимый код и подпрограммы. Главная цель использования псевдокода — обеспечить понимание алгоритма человеком, сделать описание более воспринимаемым...
В области математики и теории информации линейный код — это важный тип блокового кода, использующийся в схемах определения и коррекции ошибок. Линейные коды, по сравнению с другими кодами, позволяют реализовывать более эффективные алгоритмы кодирования и декодирования информации.
Подробнее: Линейный код
Обуче́ние с учи́телем (англ. Supervised learning) — один из способов машинного обучения, в ходе которого испытуемая система принудительно обучается с помощью примеров «стимул-реакция». С точки зрения кибернетики, является одним из видов кибернетического эксперимента. Между входами и эталонными выходами (стимул-реакция) может существовать некоторая зависимость, но она неизвестна. Известна только конечная совокупность прецедентов — пар «стимул-реакция», называемая обучающей выборкой. На основе этих...
Теория автоматов — раздел дискретной математики, изучающий абстрактные автоматы — вычислительные машины, представленные в виде математических моделей — и задачи, которые они могут решать.
Целочисленное программирование является NP-трудной задачей. Специальный случай, 0-1 целочисленное линейное программирование, в которой переменные принимают значения 0 или 1, является одной из 21 NP-полных задач Карпа.
Целевая функция — вещественная или целочисленная функция нескольких переменных, подлежащая оптимизации (минимизации или максимизации) в целях решения некоторой оптимизационной задачи. Термин используется в математическом программировании, исследовании операций, линейном программировании, теории статистических решений и других областях математики в первую очередь прикладного характера, хотя целью оптимизации может быть и решение собственно математической задачи. Помимо целевой функции в задаче оптимизации...
Обучение без учителя (самообучение, спонтанное обучение, англ. Unsupervised learning) — один из способов машинного обучения, при котором испытуемая система спонтанно обучается выполнять поставленную задачу без вмешательства со стороны экспериментатора. С точки зрения кибернетики, это является одним из видов кибернетического эксперимента. Как правило, это пригодно только для задач, в которых известны описания множества объектов (обучающей выборки), и требуется обнаружить внутренние взаимосвязи, зависимости...
Маши́на Тью́ринга (МТ) — абстрактный исполнитель (абстрактная вычислительная машина). Была предложена Аланом Тьюрингом в 1936 году для формализации понятия алгоритма.
Случайный оракул является весьма мощным, поскольку обладает тремя свойствами: детерминированность, эффективность и обеспечение равномерного распределения результирующих значений.
Метод обратного распространения ошибки (англ. backpropagation) — метод вычисления градиента, который используется при обновлении весов многослойного перцептрона. Впервые метод был описан в 1974 г. А. И. Галушкиным, а также независимо и одновременно Полом Дж. Вербосом. Далее существенно развит в 1986 г. Дэвидом И. Румельхартом, Дж. Е. Хинтоном и Рональдом Дж. Вильямсом и независимо и одновременно С.И. Барцевым и В.А. Охониным (Красноярская группа). Это итеративный градиентный алгоритм, который используется...
Упоминания в литературе (продолжение)
Отметим сразу, что единственное устройство, позволяющее моделировать искусственный интеллект, – это компьютер, работающий под управлением
алгоритмов , представляющих собой последовательность команд, каждая из которых должна быть однозначно понимаема. Плюс к этому компьютер способен выполнять в одно и то же время только одну команду алгоритма. Существование параллельных вычислений в этом смысле мало что меняет. Возможность параллельных алгоритмов означает существование внутри алгоритма независимых частей, что-то вроде более простых алгоритмов. Эти технические ограничения мы обязаны иметь в виду при всех дальнейших рассуждениях. Системотехнические ограничения очерчивают жесткие границы возможного. А надо сказать, что архитектура вычислительной системы – на самом деле главный фактор эффективности. Настолько важный, что суперкомпьютеры стали таковыми не столько за счет высокой скорости работы процессоров, сколько за счет усложнения конструкции. Но пока даже нейронные сети – это не всегда реальные технические устройства, а лишь модели на базе традиционных компьютеров. И, несмотря на то что современная наука, электроника и теория алгоритмов уже уверенно видят новые горизонты производительности, старая добрая архитектура фон Неймана является основным техническим решением.
Эта книга отличается от большинства других по этой теме тем, что мы не углубляемся в суть математического обоснования или объяснения тех или иных моделей и
алгоритмов . На эту тему написано огромное количество хороших книг. Но вот книг о практическом применения этих методов очень мало, если не сказать, что почти нет ни на русском, ни на английском языках. Для этого есть ряд объективных причин. Дело в том, что пользователи Excel редко имеют представление о том, что такое базы данных и как ими манипулировать. Специалисты работающие с SQL-сервером не нуждаются в Excel для разработки данных, поскольку в самом SQL-сервере имеются серьезные инструменты для интеллектуального анализа данных (SSAS – SQL Server Analysis Service, аналитические сервисы SQL-сервера), требующие значительных профессиональных знаний. Тема же нашей книги лежит как раз на стыке этих двух приложений. В результате, многочисленные книги об Excel, концентрируются в основном на использовании встроенных статистических функций, формулах, на вопросах о том, как создавать макросы и писать их на языке VBA и, как правило, обходят тему разработки данных стороной. Книги же по SQL-серверу вообще ориентированы обычно на специалистов и довольно глубоко входят в тему интеллектульного анализа данных в рамках самого SQL-сервера. Но при этом делается упор на построении хранилищ данных (Data Warehouse), так называемых кубов, выбора моделей и алгоритмов, на которых затем и базируется разработка данных.
Один из наиболее сложных
алгоритмов , вычисление средневзвешенных величин, также постепенно менялся. Вначале существовало много различных реализаций этого алгоритма, разбросанных по всему коду. Однако позже, с появлением подсистемы отчетов, стало очевидно, что существует только одно место, где этот алгоритм должен быть реализован, – класс AveragedColumn. Именно этим классом и занялся Уорд.
Потому может показаться неожиданным тот факт, что современные компьютеры, решая сложную задачу, действуют совсем иначе. Сама по себе арифметика, разумеется, не представляет большой сложности для современного компьютера. Вот, например, взаимодействие с человеком, восстановление поврежденного файла или победа в игре го (задачи, в которых нет четких правил, частично отсутствует необходимая информация или же поиск единственно верного ответа требует рассмотрения астрономического числа вариантов) действительно бросают вызов компьютерному интеллекту. И
алгоритмы , разработанные учеными для решения задач самых сложных категорий, избавили компьютеры от необходимости всецело полагаться на всевозможные расчеты. На самом деле для разрешения реальных жизненных ситуаций необходимо смириться с тем, что в жизни есть место случаю или вероятности, что нам приходится максимально аккуратно использовать время и зачастую работать только с приближенными значениями величин. По мере того как компьютеры приближаются к решению повседневных проблем, они могут предложить не только алгоритмы, которые человек может использовать в жизни, но и более совершенный стандарт, по которому можно оценить когнитивные способности человека.
Тем более будут отличаться так называемая «теоретическая» грамматика языка и, скажем,
алгоритм автоматического анализа и синтеза того же языка при машинном переводе, даже если они в равной степени отражают свойства объекта (языка). Каждая из этих моделей оптимальна для определенной цели: будучи заложена в компьютерную программу, самая лучшая теоретическая грамматика окажется бесполезной. Другой характерный пример – описание языка в различных учебниках этого языка. Вообще в науке все больше утверждается принципиальное положение о множественности моделей одного и того же моделируемого объекта.
Практически каждое правило, сформулированное на научной основе, может быть формализовано с использованием разного количества параметров.
Алгоритмы расчета параметров могут быть самыми разными. И, наконец, порядок выбора числовых значений параметров означает выбор определенной схемы оптимизации.
2) в миварных сетях явно выделены две доли: "правила" и "объекты" ("переменные"), а за основу поиска
алгоритма логического вывода взяты именно "объекты", которые могут иметь только одно значение и их можно найти только один раз, что исключает циклы и полный перебор;
Заметим, что язык оптимизации (т. е. отыскания экстремальных значений некоторых функционалов или функций), с помощью которого мы описали
алгоритмы развития на нижних уровнях организации материи, сохраняет свое значение и для социальной реальности. Однако интеллект производит фильтрацию возможных решений, возможных типов компромиссов неизмеримо эффективнее и быстрее, нежели это делает механизм естественного отбора. Активное участие интеллекта в процессах развития позволяет расширить область поиска оптимума. Системы перестают быть рефлексными, т. е. такими, в которых локальный минимум разыскивается по четко регламентированным правилам. Поэтому для описания новых алгоритмов развития, возникших в социальных системах, простого языка оптимизации становится уже недостаточно. Мы вынуждены широко использовать и другие способы описания, принятые в теории исследования операций и системном анализе. В частности, это язык и методы анализа конфликтных ситуаций и многокритериальной оптимизации.
Для тех задач, для которых нет стандартной схемы решения или она ещё не выявлена, есть другие инструменты. В частности, для решения сложных задач разработаны
алгоритмы , включающие разные инструменты ТРИЗ, и рекомендации по последовательности их использования. При решении задачи по такому алгоритму изобретатель по установленным правилам корректирует первоначальную формулировку задачи, строит модель задачи, определяет имеющиеся ресурсы, формулирует идеальный конечный результат, выявляет и анализирует противоречия, применяет специальные приёмы против психологической инерции. Последним таким алгоритмом в классической ТРИЗ стал АРИЗ-85В[5].
Итак, действительное значение математической строгости не следует преувеличивать и доводить до абсурда; здравый смысл в математике не менее уместен, чем во всякой другой науке. Более того, во все времена крупные математические идеи опережали господствующие стандарты строгости. Так было с великим открытием XVII в. – созданием основ анализа бесконечно малых (т. е. основ дифференциального и интегрального исчисления) Ньютоном и Лейбницем. Введённое ими в обиход понятие бесконечно малой определялось весьма туманно и казалось загадочным современникам (в том числе, по-видимому, и самим его авторам). Тем не менее оно с успехом использовалось в математике. Разработанный Ньютоном и Лейбницем символический язык не имел точной семантики (которая в удовлетворяющей нас сейчас форме была найдена лишь через полтораста лет), но даже и в таком виде позволял описывать и исследовать важнейшие явления действительности. Так было и с такими фундаментальными понятиями математики, как предел, вероятность,
алгоритм , которыми пользовались, не дожидаясь их уточнения. Так обстоит дело и с «самым главным» понятием математики – понятием доказательства. «Со времён греков говорить "математика" – значит говорить "доказательство"» – этими словами открывается знаменитый трактат Николя Бурбаки «Начала математики»[5]. Однако читатель заметит, что знакомое ему ещё со школы понятие доказательства носит скорее психологический, чем математический характер. Доказательство (в общепринятом употреблении этого слова) – это всего лишь рассуждение, которое должно убедить нас настолько, что мы сами готовы убеждать с его помощью других. Несомненно, что уточнение этого понятия (во всей полноте его объёма) – одна из важнейших задач математики.
Решить проблему соотнесения накопленных экспериментальных и эмпирических данных может помочь такая модель, которая позволит учесть феноменологию и языки описания обеих конкурирующих теорий. Одним из решений может быть модель, описывающая вычисление с помощью системы операций,
алгоритмов и эвристик, с одной стороны, и нахождение решения с помощью неосознаваемых, интуитивных процессов (переструктурирование репрезентации, смещение фокуса внимания и др.) как режимы работы единого процесса мышления, режимы, переключение между которыми возможно в зависимости от особенностей задачи и этапа решения. Как раз такая модель была в свое время предложена Я. А. Пономаревым (Пономарев, 1957, 1976).
Заметим, что язык оптимизации, то есть отыскания экстремальных значений некоторых функционалов, с помощью которого мы описали
алгоритмы развития на нижних уровнях организации материи, сохраняет свое значение и для социальной реальности. Однако интеллект производит фильтрацию возможных решений, возможных типов компромиссов неизмеримо эффективнее и быстрее, нежели это делает механизм естественного отбора.
Любой фрактал может быть представлен как визуализация некоторого
алгоритма , набора математических процедур, имеющих характер последовательных итераций (многократных повторений заданных операций). Фрактальные итерации – рекурсивны, т. е. каждый результат предыдущего шага служит начальным значением для нового цикла самовоспроизводства фрактальной структуры (узора, конструкции, идеи).
Наконец, всеми любимый многие годы, межотраслевой баланс (МОБ). По-существу, его необходимо было бы запретить в экономической практике, так как МОБ применим к экономике по поговорке «в огороде бузина, а в Киеве дядька». Применение статического МОБ только гробит экономическое развитие. Этот математический инструмент по всем своим характеристикам к экономике не имеет никакого отношения. Его предназначение – обеспечить некий «баланс коэффициентов» в системе линейных алгебраических уравнений (сделать систему алгебраических уравнений совместимой, т. е. решаемой). Однако сбалансированные системы по своему имманентному существу не имеют необходимого экономики
алгоритма развития. Сбалансированные системы всегда «консервативны». Изменяться и, следовательно, развиваться может только система, которая имеет хотя бы одну разбалансированность. Кроме того, в МОБ слишком много ограничений, запрещающих его применение. Так, МОБ: не моделирует динамику экономики, не позволяет описать обратные связи, по своему существу не только не позволяет выполнить математическое описание изменений структуры экономического объекта, но и моделировать управление интенсивностью хаоса экономической динамики. В МОБ не представлены интегралы-накопители ресурсов, моделирующие накопления ресурсных резервов, часто используемые для генерации сигналов управления потоками ресурсов. И еще множество того, что говорит о непригодности этого инструмента для управления экономикой. Например, в МОБ невозможно выполнить математическое описание необходимых автоматических регуляторов экономической динамики.
Впрочем, в контексте общей увлеченности кибернетическим подходом появление подобных исходных установок не кажется удивительным: «Я думаю, что эти ловушки являются следствием применения в НЛП метафоры компьютерного программирования и ее нацеленностью на скорость. Поведение и способности не являются программным обеспечением, которое может быть скопировано на другой носитель (компьютер) и принести там те же результаты, потому что люди не компьютеры. Мозги не работают позаконам логических
алгоритмов . Они изменяются во время обучения даже на нейронном уровне».
Главные элементы технологии блокчейна, такие как криптография и
алгоритмы , основаны на сложных математических концепциях, которые, в свою очередь, предъявляют свои особые требования к их пониманию, а также приводят к необходимости изучения математических выкладок и формул, устрашающих на вид. И все же в книге намеренно не используются ни математические выкладки, ни формулы, чтобы избежать ненужной сложности и не создавать дополнительных затруднений для читателей с недостаточной технической подготовкой.
Программируемые решения – это решения повторяющихся и четко определенных проблем. Как правило, это стандартные задачи, неоднократно возникающие в организации, по поводу которых имеется достаточно надежная и достоверная информация, а также готовые, разработанные и успешно применявшиеся ранее правила и процедуры. Процедура устанавливает порядок, последовательность действий, права, обязанности участников взаимодействия в процессе принятия решения. В качестве примера можно привести задачу оформления периодического заказа инвентаря для одного из цехов предприятия. Для разработки и оптимизации программируемых решений используются формализованные методы, которые имеют четкий
алгоритм решения задачи в виде экономико-математических моделей, методик анализа и расчета данных, компьютерных программ, обеспечивающих высокую точность количественной оценки разрабатываемых вариантов.
Индуктивные определения. Индуктивным определением называется определение некоторого множества посредством использования общего приема (алгоритма), позволяющего построить любой элемент этого множества из некоторых исходных элементов.
Алгоритмом здесь называется точное предписание, выполнение которого ведет от начальных данных к искомому результату. Индуктивное определение и задает такой способ порождения элементов множества из некоторых исходных.
Конечно, это различие не полностью совпадет с различием между наукой и техникой, точнее – между научным знанием и знанием техническим. Между знанием результатов наблюдений, измерений, классификации природных явлений и законов ими управляющих; и знанием инструкций, руководств,
алгоритмов , которые превращаются в производственные, технологические действия. Рамки данной работы не позволяют мне далее углубляться в эту тему. Ограничусь лишь констатацией того факта, что одна из важнейших особенностей постнеклассической науки, как рекурсивно го, автпоэтического процесса самовоспроизведения и конвергентной симбиотической эволюции, состоит в синергийном взаимодействии Q-знания и A-знания. Это обстоятельство дает право некоторым авторам говорить о становлении нового способа производства научного знания, именуемого технонаукой. И это же обстоятельство дает основание другим авторам критиковать концепцию постнеклассической науки за то, что она якобы сводит ее к чисто прикладному аспекту. Тогда как другие полагают, что присутствие в ее контекстах фигуры наблюдателя, придает всей постнеклассике как мышлению в сложности (thinking in complexity) субъе?-ориентированный характер с неизбежно вытекающим из этого релятивизмом, отказом от поисков «окончательной реальности» и т. д. Однако критика этих критиков не входит в задачу этой работы. Да и вообще занятие само по себе малоинтересное.
Я по-прежнему убежден, что одной из важнейших способностей искусственного интеллекта, над которым мы работаем, является самостоятельное осознанное интенсивное развитие. Как показывает посторонний опыт, экстенсивное развитие, свойственное многим компьютерным системам, способно увеличить их производительность, но неспособно вывести за рамки изначально заложенных
алгоритмов . Если таким системам и свойственна качественная эволюция, то только путем внесения доработок извне. Таким образом, путь планомерного развития через поглощение новой информации и обработки имеющейся является тупиковым – во всяком случае, для наших задач, поскольку случайное «техническое» саморазвитие ядра методом перебора всех устойчивых алгоритмов и отбраковкой бесполезных поглотит все имеющиеся у системы ресурсы на сотни или даже тысячи лет. И я не возьмусь утверждать, что рано или поздно такой компьютер не скажет нам «сорок два»[2].
ТРИЗ-педагогика опирается на разработанные в рамках теории решения изобретательских задач методы: операторы снятия стереотипов, приёмы разрешения противоречий,
алгоритмы решения творческих задач и другие. В то же время ТРИЗ-педагогика не пренебрегает другими методами поиска новых идей[3], используя их как вспомогательные.
Со своей стороны, поддерживая эту критическую аргументацию, я остановлюсь на примере, который кочует из публикации в публикацию школы Гигеренцера, видимо, как самый неотразимый и который, насколько мне известно, не подвергался критическому анализу в работах оппонентов. Речь идет о ловле игроком летящего мяча. С долей иронии Г. Гигеренцер с соавторами цитирует Р. Докинза, который считает, что для решения такого типа задачи (поимки кого-то или чего-то движущегося) живое существо должно на уровне процессов в нервной системе (в нейронах, ганглиях и т. д.) решать системы дифференциальных уравнений. На самом деле, подчеркивают авторы, есть значительно более простая эвристика. Игроку надо зафиксировать глазом угол, под которым виден мяч в начальный момент относительно горизонта, и затем передвигаться по полю так, чтобы этот угол сохранялся постоянным. Тогда игрок, по мнению авторов, обязательно поймает мяч. Если этот угол будет увеличиваться относительно заданного, это означает, что мяч летит все выше, и игрок будет смещаться назад, чтобы сохранить прежний угол. Если же угол будет уменьшаться относительно заданного, это означает, что мяч снижается, и игрок будет смещаться вперед пока не сблизится с ним настолько, что поймает его. При этом игроку даже не обязательно понимать, что мяч летит выше или ниже. Предлагаемый
алгоритм способно выполнить и автоматическое устройство ловли мячей, как пишут авторы.
Текстовое описание формализованным языком – это описание БП с помощью заранее определенных словесных конструкций и оборотов, подобно словесному описанию
алгоритма программы (ЕСЛИ… ТО… ИНАЧЕ… и т. п.). Кроме того, при описании формализованным языком уже существует определенный глоссарий терминов предметной области, что немаловажно для правильного понимания процесса. Недостатки данного способа представления информации – сравнительно большой объем, что может затруднить понимание процесса.
Алгоритм – это точное предписание о выполнении в определенном порядке некоторой системы операций, которые ведут к решению всех задач (проблем) определенного типа. Данный метод, являясь по своей сути теоретическим, тесно связан с эмпирическими методами построения теорий.
6. Итак, через гласные человеку открывается проход в бесконечность возможных точек и систем отсчета, кодом гласных букв определяются границы новой греческой и впоследствии европейской ментальности, повлекшей развитие цивилизации (метапрограмма «процесс», «изменения»). Человек стремится к пределам бесконечного во времени. Каждое движение в этом процессе создает новую позицию (точку отсчета), относительно которой меняется картина мира. Эти движения, как поворот оси калейдоскопа, не имеют преимущества одно перед другим, они равноценны. Однако число гласных определено. Это означает, что новая ментальная модель предлагает
алгоритм изменений. В этом смысле бесконечность – не количественная, а качественная характеристика.