Эвристические методы увеличивают вероятность получения работоспособного - но не всегда оптимального - решения творческой задачи, возникшей, например, из-за неразработанности конкретной теории, неполноты или недостоверности исходных данных. Эвристические методы способны находить решения даже в очень сложных, непредвиденных ситуациях, однако здесь по эффективности они уступают точным алгоритмическим подходам.
ПРИМЕР. «Здесь мы должны ввести два термина и дать их определение, чтобы разобраться в только что поднятой проблеме. Первый из них — алгоритм. Алгоритм — это метод (или механизм), который предписывает, каким образом достичь поставленной цели. Типичный план полета самолета — это алгоритм. Инструкция: "Повернуть на перекрестке налево, повернуть направо на следующем, выехать на улицу Красного льва и мой дом будет в 120 метрах справа" — тоже алгоритм. Метод извлечения квадратного корня — тоже алгоритм, как и программа работы ЭВМ. Последнее очень важно, поскольку нам предстоит разобраться в некоторой путанице относительно возможностей компьютера. Компьютер может делать лишь то, что ему точно указано. Программист, следовательно, должен точно написать алгоритм, который бы точно определил работу компьютера в наборе имеющихся в нем данных и команд.
Другой термин, который нам понадобится, — эвристический. Это не столь часто употребляемое имя прилагательное означает "обеспечивающий открытие", нередко превращается в имя существительное при переходе от эвристического метода к "эвристике". Эвристика определяет метод поведения, помогающий достижению цели, но который не может быть четко охарактеризован, поскольку мы знаем, чего хотим, но не знаем, как этого достичь, где лежит решение. Предположим, Вы хотите достичь конусообразной вершины горы, закрытой облаками. У нее есть высшая точка, но у Вас нет точного маршрута. Указание "продолжайте подъем" приведет Вас к вершине, где бы она ни была. Это эвристика. "Смотри за пенсами, а фунты сами о себе позаботятся" — эвристическое указание "как стать богатым".
Эвристика предписывает общие правила для достижения общих целей и в типичных случаях не предписывает точного маршрута к обозначенной цели, как это делается в случае алгоритма. Прежде всего число маршрутов к вершине горы огромно и не столь уж важно, какой из них использован (хотя, может быть, другой и короче, чем все остальные)».
Стаффорд Бир, Мозг фирмы, М., «Едиториал УРСС», 2005 г., с. 58-59.
Достаточно полный список основных эвристических методов был опубликован в книге Джонс Дж. К., Методы проектирования, М., «Мир», 1986 г., с. 325-326 – далее приводим его с небольшими добавлениями:
- Упорядоченный поиск (применение теории решений)
Стоимостный анализ
Системотехника
Проектирование систем человек-машина
Поиск границ
Кумулятивная стратегия Пейджа
Стратегия коллективной разработки гибких архитектурных проектов (CASA)
Переключение стратегии
Фундаментальный метод проектирования Мэтчетта (FDM)
Формулирование задач
Поиск литературы
Выявление визуальных несоответствий
Интервьюирование потребителей
Анкетный опрос
Исследование поведения потребителей
Системные испытания
Методика ТРИЗ
Выбор шкал измерения
Накопление и свертывание данных
Мозговая атака, мозговой штурм (А. Осборн)
Синектика (У. Гордон)
Ликвидация тупиковых ситуаций
Морфологический анализ (морфологические карты, морфологический ящик)
Матрица взаимодействий
Сеть взаимодействий
Анализ взаимосвязанных областей решения (AIDA)
Трансформация системы
Проектирование нововведений путем смещения границ
Функциональный подход, ФСА
Определение компонентов по Александеру
Классификация проектной информации
Контрольные перечни или списки контрольных вопросов (Д. Пойа, А. Осборн, Т. Эйлоарт) – см., практический пример: Анализ предварительной информации об участниках тренинга, семинара
Выбор критериев
Ранжирование и взвешивание
Составление технического задания
Индекс надежности по Квирку