В отличие от моделирования на уровне нейронных сетей, эвристическое программирование исследует другой уровень организации поведения, называемый операционным. На этом уровне поведение рассматривается как последовательность мыслительных, может быть не всегда осознаваемых человеком операций, выполнение которых приводит к успешному решению той или иной задачи.
Обычная процедура построения моделей методом эвристического программирования строится следующим образом. Испытуемым предлагается решать некоторую задачу, сопровождая свои размышления устными комментариями хода своих рассуждений. Все высказывания испытуемых тщательно протоколируются. Затем протоколы подвергают анализу с целью выявления хода решения, характера применяемых операций, догадок, приемов и т. п. Полученный в ходе анализа материал используется при составлении компьютерной программы — модели данного вида поведения. Таким образом, программа является моделью не испытуемого, а протокола. Такая модель должна выполнять то, что делает испытуемый и так, как это делает он.
Следующий этап процедуры связан с исследованием работы модели при решении задач того же типа, которые предлагались испытуемым. Если процесс решения отклоняется от зафиксированного в протоколе, программа дорабатывается. Для этого могут быть поставлены новые эксперименты с испытуемыми, получены новые протоколы и т. д.
Использование описанной методики связано с рядом затруднений. При самоотчете испытуемый не в состоянии выделить и прокомментировать все без исключения шаги выполненного им решения, особенно если они связаны с догадками, неосознаваемыми заключениями и т.п. Соответственно такие шаги не попадают в протокол и исследователь должен самостоятельно заполнять разрывы, опираясь на собственные знания и догадки. Поэтому правильнее будет говорить, что окончательная программа моделирует гипотезу исследователя об изучаемом процессе — гипотезу, основанную на протоколе и определенных данных из области психологии.
Ряд трудностей заключается также в проведении анализа и интерпретации протокольных записей. Здесь необходима типизация приемов анализа и разработка мер, ограничивающих произвольность интерпретаций.
Развитие эвристического программирования связано с построением разнообразных моделей, таких, как модели поведения при выборе, при определении стратегии размещения ценных бумаг и др. Однако наибольшие успехи теоретического и прикладного характера достигнуты при создании систем ИИ, называемых решателями задач.
Разработка программ — решателей задач преследует две основные цели: во-первых, являясь моделью поведения человека в определенных условиях, решатель обладает некоторой объяснительной силой и может быть использован для предсказания действий человека в ходе решения; во-вторых, решатель может быть использован как составная часть в системах автоматизации управления сложными объектами, в частности — роботами.
Обычно решатели строятся для задач, связанных с преобразованиями ситуаций. В таких задачах задаются исходная и желаемая ситуации, а также набор операторов или действий, которые могут строго определенным образом изменять ситуации. Класс таких задач довольно широкий. В него входят, например, задачи формальной логики, планирования целенаправленных действий и др.
История создания решателей начинается в 50-х годах циклом и следований по разработке общего решателя задач — GPS (Genera Problem Solver). Авторы GPS — А. Ньюэлл, Дж. Шоу и Г. Саймон первоначально ставили перед собой задачу создания эффективного решателя для работ в области искусственного разума. Затем они попытались рассмотреть GPS как общую теорию человеческого мышления. Эта попытка не удалась: как психологическая теория GPS отписывал слишком узкий круг феноменов мышления. Не оправдание также и надежды авторов на универсальный характер GPS как решателя: класс доступных ему задач оказался весьма узок. Позитивный вклад GPS в проблематику ИИ состоит в разработке ряда стратегии решения задач, которые используются и в современных, более совершенных решателях. Были также сформулированы основные задачи и подходы к созданию моделей мышления, решен ряд проблем методологического характера, отработаны приемы эвристического программирования и создана основа для дальнейшего совершенствования решателей задач.
Предложенные для GPS стратегии были использованы при построении ряда решателей, в том числе и для роботов. Такие решатели используются, в частности, в системе STRIPS и в ряде близких к ней систем, предназначенных для управления интегральными роботами.
Наряду с эвристическим программированием в области работ по созданию искусственного разума оформилось еще одно направление исследований, получившее название эвристического моделирования.