Логические исследования 2017. Т. 23. № 1. С. 121-139 УДК 16
Logical Investigations 2017, Vol. 23, No. 1, pp. 121-139 DOI: 10.21146/2074-1472-2017-23-1-121-139
В.И. ШАЛАК
Аналитический подход к решению задач
Шалак Владимир Иванович
Сектор логики, Институт философии РАН
Российская Федерация, 109240, г. Москва, ул. Гончарная, д. 12, стр. 1. E-mail: shalack@gmail.com
Настоящая работа посвящена формализации аналитического подхода к решению задач. Обычно считается, что задача включает две составляющие — условия и цели. Условия А — это то, что дано, а цели В — то, что требуется найти или построить. В этом случае при формальном анализе решение рассматривается как некоторый вывод А — В цели из условий задачи. Такое представление широко распространено, но слишком узко для применения в реальной практике. Возьмем, например, задачу построить железную дорогу между двумя городами. Очевидно, что существует много вариантов прокладки дороги, и условия реализации каждого из этих вариантов будут различаться. Это означает, что в момент постановки задачи нет точных формулировок ни цели, ни условий, чтобы ее можно было представить в стандартном виде. Необходим дополнительный аналитический этап решения задачи. Он заключается в последовательном уточнении цели и ее редукции к более простым подцелям, которые на заключительных шагах образуют совокупность достаточных условий решения задачи. В предлагаемой работе построено аналитическое исчисление, которое в определенной степени формализует этот процесс.
Ключевые слова: решение задач, логическая редукция, аналитические таблицы, теория определений
1. Преамбула
Вспомним школу и одну из типичных задач арифметики, которую в разных вариантах всем нам приходилось решать.
Есть бассейн объемом V кубических метров и две трубы. Через одну трубу в него поступает вода со скоростью п литров в минуту, а через вторую — вытекает со скоростью т литров в секунду. Требуется определить, через сколько минут бассейн будет наполнен до краев.
© Шалак В.И.
Мы составляем уравнение п х Ь — т х Ь х 60 = V х 1000 и из него находим время Ь = V х 1000/(п — т х 60). Задача решена. Если Ь > 0, то бассейн наполнится водой через Ь минут, а если Ь < 0, то никогда.
Задача довольно рафинированная. Для ее решения достаточно составить уравнение, связывающее указанные в условии задачи параметры, и после этого произвести вычисление.
Решение подобных задач, но в общем виде, исследуется в теории синтеза программ [2]. Есть описание А(х) предусловий выполнения программы, и есть описание постусловий В(х,у), при которых она должна завершиться. Средствами интуиционистской логики ищется доказательство формулы Ух(А(х) ^ ЗуВ(х,у)). Если доказательство найдено, то по его шагам синтезируется соответствующая программа. Это возможно благодаря реализуемостной интерпретации интуиционистской логики.
С момента возникновения интереса к Искусственному Интеллекту отдельным направлением исследований в его рамках стало планирование действий. Одной из стандартных тестовых задач является планирование действий в мире кубиков [8, с. 337-363], когда начальную конфигурацию кубиков необходимо преобразовать в целевую. При этом набор возможных элементарных действий ограничен. В качестве эвристики можно ввести функцию расстояния от текущего состояния мира до целевого и при перестановке кубиков стремиться минимизировать ее значение.
Подобные задачи интересны, но очень ограничены. Начальное и целевое состояния в них описаны полностью и остается лишь найти путь от первого ко второму в некотором пространстве промежуточных состояний. Гораздо больший интерес представляют задачи, решение которых требует выхода за рамки изначальных условий. Это один из отличительных признаков творческих задач.
Начнем с простого, вспомним, как мы планируем летний отпуск. Цель — хорошо его провести. Мы садимся и начинаем думать, как этого достичь? Цель расщепляется на альтернативы. У нас есть выбор между отдыхом дома на диване с книжкой, отдыхом на дачных грядках, пляжным отдыхом, отдыхом на природе, активным отдыхом, музейным и т. д. Наши предпочтения определяют, какой из ва-
риантов мы будем рассматривать в первую очередь. Допустим, мы выбрали пляжный отдых. После этого мы задумываемся о месте, где его лучше всего провести. Опять появляются альтернативы по странам и затем по городам, и опять наши предпочтения определяют, какие варианты мы будем рассматривать в первую очередь. После того как страна и город выбраны, мы должны выбрать тип размещения — отель или апартаменты. Выбор альтернатив большой и осуществляется на основе предпочтений по расположению, цене, объему предоставляемых услуг. Информация об этом берется из справочников и специализированных сайтов Интернета. На конечном шаге мы должны решить, либо самим бронировать места и авиабилеты, либо обратиться в туристическое агентство. Исходная цель сведена к простым действиям, которые мы уже знаем, как осуществить. Таким образом, планирование действий путем анализа сложной и недостаточно четко определенной цели сведено к простым действиям, которые ограничены рамками частичных описаний текущего состояния мира. Так же мы можем рассмотреть и другие варианты отдыха, сравнить их и выбрать наиболее предпочтительный.
Необходимо обратить внимание на важное отличие решения задач по планированию действий, связанных с преобразованием текущего состояния мира, от задач, которые можно назвать статическими. В последних задачах мы сводим их решение к решению более простых задач и в конечном счете к нахождению значений неизвестных параметров. После этого мы просто синтезируем решение. В задачах планирования действий мы тоже сводим решение сложных задач к решению более простых, но на конечном этапе приходим к элементарным ситуациям, которые пока что не имеют места в мире. И теперь, чтобы решить такую задачу, мы должны выполнить некоторые действия, направленные на то, чтобы эти элементарные ситуации, к которым мы свели задачу, имели место. Например, мы свели задачу об отдыхе к тому, чтобы забронировать места в отеле и купить билеты для поездки. Это мы и должны сделать, чтобы отдых состоялся.
Рассмотрим еще одну творческую задачу. Ночью на берегу моря мы нашли чугунную на вид гирю О и хотим узнать, может ли
внутри нее быть спрятано золото? Никакого очевидного решения не просматривается, на зуб не проверишь. Поэтому мы редуцируем начальную задачу к двум альтернативам, которые первыми пришли нам в голову. Первая альтернатива — распилить и посмотреть, а вторая — сравнить физические параметры О с параметрами гири Со в том случае, если бы она действительно была изготовлена из чугуна. Первую альтернативу выбрал Шура Балаганов, мы выбираем вторую. Из всех параметров наибольший интерес представляет вес гири, поскольку нам известно, что плотность золота почти в два с половиной раза больше плотности чугуна, и поэтому вес гирь О и Со должен заметно отличаться. Вес гири О легко определить путем взвешивания. Это мы сделать можем, у нас под рукой оказались весы-безмен. Второй такой же, но полностью чугунной гири у нас нет. Поэтому нам остается прибегнуть к теории. Весь гири Оо вычисляется по формуле Ро0 = то0 х д = V х рск х д. Плотность чугуна Рек и ускорение земного тяготения д мы помним со школьной скамьи, осталось лишь определить объем V. Но как это сделать? Одна альтернатива — набрать в кастрюлю воду до краев, опустить в нее гирю, собрать в мензурку воду, которая выльется из кастрюли, и узнать объем V. Но у нас на берегу моря нет ни кастрюли, ни мензурки. Значит, эта альтернатива нам не подходит. Но есть другая альтернатива. Мы опять подвешиваем гирю на безмене и опускаем ее в воду, чтобы измерить вес Рош гири в воде. Согласно закону Архимеда Ро- = Ро — V х рт х д. Отсюда мы получаем V = (Ро — Ро-)/(рш х д) и, подставив в первую формулу, узнаем вожделенное значение веса Ро0 = (Ро — Рош) х рск/рш, которое с точностью до погрешности измерений нашего безмена совпадает с Ро.
Задачи планирования отпуска и поиска золота в чугунной гире являются действительно творческими, поскольку для их решения требуется выйти за границы того, что дано изначально. При этом поиск решения не является бессистемным, а заключается в уточнении используемых понятий и их последующей логической редукции. Благодаря этому мы не удаляемся от цели случайным образом, а релевантно расширяем поле поиска вокруг нее. Очевидно, это сильно
отличается от методов синтеза программ и планирования действий в мире кубиков.
2. В поисках метода
Проблема поиска регулярных методов решения творческих задач имеет давнюю историю. Можно вспомнить знаменитые «Правила для руководства ума» Р. Декарта [1], где перечисляются и объясняются правила, которым должен следовать ученый в своей работе. Можно вспомнить Лейбница и его идею универсального исчисления, которое позволяло бы единообразным способом находить ответы на любые разумно поставленные вопросы.
В наше время на тему поиска общих методов решения задач много писал Д. Пойя. Широкую известность получили его книги «Математическое открытие» [4] и «Математика и правдоподобные рассуждения» [3]. Отталкиваясь от идей Декарта, он обращает внимание на эвристическое использование индуктивных рассуждений и рассуждений по аналогии, которые очень часто помогают в поиске решений.
Эта проблема интересовала В.А. Смирнова. В статье «Творчество, открытие и логические методы поиска доказательства» [7], он хотел «... обратить внимание на новые возможности использования логических методов и идей в исследовании исключительно сложной проблематики поиска, открытия и творчества» [7, с. 447], считая, что «одна из целей науки — создание типовых методов, позволяющих стандартным образом решать целые классы задач. В этом отношении характерно соотношение нестандартного, творческого и стандартного, рутинного моментов в поисках решения задач. Без наличия методов задача может быть сугубо творческой. Создание метода решения превращает творческую задачу в стандартную. Творческая деятельность переходит от решения самой задачи к созданию методов ее решения. Это характерно не только для познавательной, научной деятельности. Создание техники, орудий труда, технологии основано на том же "обращении" творческой деятельности» [7, с. 446].
Стремительное развитие современных технологий привело к тому, что поиск общих методов решения задач переместился из теоретической плоскости в практическую. В качестве примера можно привести работы Т. Саати [5, 6]. Он предложил метод анализа иерархий целей, который сразу привлек к себе внимание. Заслуга Саати заключается в том, что его метод позволяет одновременного учитывать многие критерии предпочтения при оценке иерархии целей [6, с. 24-27], но в нем не содержится никаких правил построения самих иерархий.
На практике не существует установленной процедуры генерирования целей, критериев и видов деятельности для включения в иерархию или даже в более общую систему. Это зависит от тех целей, которые мы выбираем для декомпозиции сложной системы. Обычно эта процедура начинается с изучения литературы для обогащения мыслями, и часто, знакомясь с чужими работами, мы как бы проходим через стадию мозгового штурма для составления перечня всех концепций, существенных для задачи, независимо от их соотношения или порядка [5, с. 20].
Несмотря на это, работы Саати получили широкую известность и множество практических приложений, что говорит о востребованности такого рода исследований.
3. Основная идея
Если цель, или задача, описана в виде предложения логики предикатов, то ее можно редуцировать к набору подцелей. Но в большинстве действительно интересных случаев цель не бывает описана настолько полно, чтобы для ее решения было достаточно одной лишь логической редукции. В первоначальном описании цели могут встречаться термины, которые нуждаются в дополнительном уточнении. Это приводит к расширению языка описания задачи новыми понятиями и терминами. Они добавляются в язык не случайным образом, а имеют то или иное отношение к основной цели или ее подцелям.
Логическим инструментарием, который позволяет совместить анализ целей с расширением радиуса поиска дополнительной информации, является теория определений. Определения позволяют уточ-
нять (эксплицировать) цели-предикаты, разлагая их на логически связанные подцели, затем на под-подцели и т. д. При этом допускается, чтобы в определяющей части присутствовали термины, которые в будущем также потребуют экспликации.
На шаге уточнения терминов языка происходит вмешательство субъективного фактора. От того, насколько удачно выбрано определение терминов, может зависеть успех в решении всей задачи.
Для простоты дальнейшего изложения мы ограничимся конечными предметными областями, в которых каждый индивид может быть поименован. При задании семантики языка это позволит использовать подстановочную интерпретацию кванторов [9].
4. Схема языка
Так как язык описания задачи в ходе ее решения может расширяться, мы зададим не сам язык, а схему, указав, что может входить в его состав.
Исходные символы
1. Sort — конечное множество сортов;
2. Var — конечное множество индивидных переменных;
3. Const — конечное множество индивидных констант;
4. Pred — конечное множество предикатных констант;
5. У, — — логические связки;
6. У, 3 — кванторы;
Каждой индивидной переменной xeVar и каждой константе c € Const сопоставлен их сорт s € Sort. При необходимости будем обозначать это посредством x/s и c/s.
Каждой n-местной предикатной константе Pn также сопоставлен сорт, имеющий вид кортежа сортов ее аргументных мест (si,..., sn). Это мы будем обозначать посредством Pn/(s1,..., sn).
Формулы
1. Если t1/s1,..., tn/sn € ConstU Var, P € Pred, P/{s1,..., sn), то P(t1,... ,tn) — (атомарная) формула.
2. Если A и B — формулы, то —A, (A&B), (A V B) — формулы.
3. Если x € Var и A — формула, то VxA, 3xA — формулы. В тех случаях, когда необходимо явное указание на сорт подквантор-ной переменной, мы будем использовать запись Vx/sA, 3x/sA.
4. Ничто другое формулой не является.
Определения
Если P/(si,..., sn) — предикатный символ, не имеющий вхождений в формулу A, все свободные индивидные переменные которой содержатся среди x = {x1/s1,... ,xn/sn), то определением будем называть формулы вида Vx(Px = A), где "Px = A" — обычное сокращение для (Px&A) V (—Px&—A).
Соглашение об обозначениях
1. Если S — множество формул языка, то посредством L(S) обозначим язык, который содержит лишь те сорта, индивидные переменные, константы и предикатные символы, которые имеют вхождения в формулы множества S.
2. Запись VxPx будет использоваться как сокращение для Vx1...VxnP(x1,... ,xn), а Pt — сокращение для P(t1,... ,tn).
5. Правила исчисления
Исчисление мы будем строить в виде аналитических таблиц, имеющих вид дерева. Это самый естественный способ представления редукции формул. Обычно различают аналитические таблицы в виде дерева формул, как у Смалльяна, и таблицы в виде дерева множеств формул, как у Фиттинга. В нашем случае более удобны таблицы, узлы которых имеют вид множеств формул. Кроме этого, множествам
формул узла будет сопоставлен их язык. Для этого нам потребуются три метапеременные, которые могут изменяться в процессе построения таблиц:
1. L — язык;
2. Def — множество определений;
3. M od — множество замкнутых атомарных формул или их отрицаний (модельное множество).
Для представления узлов мы будем использовать запись, содержащую указание на множество целей Aim и метапеременные L, M od и Def:
L, Mod, Def b Aim
Знак "b" используется, чтобы при записи просто отделить множество целей Aim от языка L, модельного множества Mod и множества определений Def. Никакого дополнительного смысла он не несет. Начальный узел дерева имеет вид L(Aim), 0, 0 b Aim. Формулы множества Aim замкнуты. Конечной задачей редукции является построение модели, в которой будут истинны все формулы Aim. Правила редукции делятся на четыре группы:
1. правила логических связок;
2. правила кванторов;
3. правила литералов;
4. правила замыкания.
В формулировках правил редукции мы будем указывать мета-переменные L, Mod и Def лишь в тех случаях, когда их значения являются условиями применения правил или изменяются в результате такого применения. При формулировке правил редукции запись b S, A следует понимать как b S U {A}, где S — множество формул
(возможно, пустое), а запись Бл следует понимать как сокращение для Б \ {А}.
Правила связок
Ь
Ь Б_а, А
Ь Б, (А&В) Ь Б, -(А&В)
(&) Т~Б-Г~Б (-&)
Ь Б(Л&Б),А,В ь б-(а&е), -А I Ь б-(а&е), -В
Ь Б, (А V В) . . Ь Б,-(А V В) (V) г^-,(, , В-Б (-V) ' ( )
Ь Б(луб),А 1 Ь б(луб) , В Ь Б-(ЛуБ)1 -А, -В
Правила для логических связок не требуют особых комментариев. Если нам нужно построить модель для множества формул Б и {(А&В)}, то для этого достаточно построить модель для множества формул Б(л&б)и{А, В}. Аналогично, если нам нужно построить модель для множества формул Би{(А,В)}, то узел дерева редукций расщепляется на две ветви, т. к. достаточно построить модель для множества формул Б(луб) и {А} или для множества Б(луб) и {В}.
Правила кванторов
Ь Ь Б, Ух/вА
(V)
(-У)
Ь и Ооивг/в Ь Бух/Зл и {А[с/х}}с&сст,8г/8 Ь Б, -УхА
Ь Б-ухЛ, Зх-А
(З) ...|Ьиы^'^лс,/х] I... Ств'/в = {с" ■ ■ ■'с"}
, Ь Б, -ЗхА
Ь Б-зхЛ, Ух-А
Смысл правила (V) заключается в том, что если мы хотим снять квантор всеобщности, то необходимо указать набор всех индивидных констант, которые имеют тот же сорт в, что и подкванторная переменная х/в, и добавить их к языку. Формула Ух/вА замещается множеством всех формул {А[е/х]}с&ст8г/8, получаемых подстановкой всех возможных констант сорта в вместо переменной х. После
первого случая добавления к языку L U Const/s всех констант сорта s они уже не изменяются. То есть при их повторном введении в результате применения правила (V) к другим формулам с подкван-торной переменной x/s имеет место L = L U Const/s.
Смысл правила (3) аналогичен предыдущему, но на этот раз дерево ветвится и потомками узла таблицы является не один, а множество узлов по числу индивидных констант сорта s. При этом нет необходимости добавлять к языку сразу все константы сорта s, а достаточно добавить L U{ci/s} лишь ту, на которую снимается квантор. Это очень важное замечание, т. к. служит лазейкой для работы с бесконечными предметными областями.
Правила литералов
Эти правила являются ключевыми в формализации аналитического метода анализа задач.
Mod, Def b Pt
(P.1)
(P.2)
Mod U{Pt},Def b Spt при условии Pt <// Mod и Vx(Px = A) <// Def
L, Mod, Def b S, Pt
(-P.1)
L U L(A), Mod, Def U {Vx(Px = A)} b S,Pt' при условии Pt <// Mod и Vx(Px = A) <// Def
Mod, Def b S, -Pt
(-P.2)
Mod U{-Pt}, Def b S-pt' при условии -Pt <// Mod и Vx(Px = A) <// Def
L, Mod, Def b S, -Pt
(D)
(-D)
L U L(A),Mod, Def U {Vx(Px = A)} b S, -Pt' при условии -Pt <// Mod и Vx(Px = A) <// Def
Def U {Vx(Px = A)} b S, -Pt
Def U {Vx(Px = A)} b S-pt, -A[t/x]
Mod U {A} b S, A
( ) MdU{A}VSA
Если в ходе редукции цели мы пришли к атомарной формуле Pt, для предикатного символа которой нет определения вида Vx(Px = A), т. е. два варианта дальнейшего построения дерева. В первом случае (P.1) мы считаем, что дальнейшая редукция не является необходимой, т. к. истинностное значение формулы может быть установлено путем непосредственного соотнесения с фактическим состоянием мира. Поэтому мы добавляем формулу к множеству Mod. Во втором случае (P.2) мы считаем необходимым редуцировать данную формулу и для этого принимаем определение предикатного символа Vx(Px = A). Приняв его, мы должны расширить язык сортами, индивидными переменными, константами и предикатными символами, которые имеют вхождения в дефиниенс определения, т. е. в формулу A.
Смысл правил (—P.1) и (—P.2) аналогичен предыдущим.
Правила (D) и (—D) — это замена предикатного символа на основании ранее принятого определения.
Правило (El) говорит, что если целевая формула A уже содержится в модельном множестве Mod, то ее можно удалить из множества целей.
Правила замыкания
b S, A, —A
(0.1) (0.2)
0
Mod U{Pt, —Pt} b S
0
Смысл правил замыкания достаточно очевиден. Если мы пришли к противоречию, то ветвь дерева считается замкнутой и исключается из дальнейшего рассмотрения.
Ветвь дерева, конечный узел которой имеет вид Ь, Мой, Бв/ Ь 0, будем называть завершенной, поскольку к нему не применимы никакие правила редукции.
Будем говорить, что цель достижима, если дерево редукций имеет хотя бы одну завершенную ветвь. Цель недостижима, если все ветви дерева редукций замкнуты.
6. Модели
Моделью будем называть пару вида M = {Mod, Def), где
1. Mod — некоторое множество замкнутых атомарных формул или их отрицаний;
2. Def — множество определений;
3. Если Vx(Px = A) € Def, то ни для каких термов t не верно, что Pt € Mod или -Pt € Mod .
Определим отношение M И A — «формула A истинна в модели M», где A не содержит свободных переменных.
1. {Mod, Def) И Pt ^ (Vx(Px = A) € Def и Pt € Mod) или
(Vx(Px = A) € Def и {Mod, Def) И A[t/x])
2. {Mod, Def) И -Pt (Vx(Px = A) € Def и -Pt € Mod) или
(Vx(Px = A) € Def и {Mod, Def) И -A[t/x])
3. M И (A&B) ^ M И A и M И B
4. M И -(A&B) ^ M И -A или M И -B
5. M И (A V B) M И A или M И B
6. M И -(A V B) ^ M И -A и M И -B
7. M И Vx/sA ^ M И A[c/x] для каждой константы c/s
8. M И -VxA M И 3x-A
9. M И 3x/sA ^ M И A[c/x] для некоторой константы c/s 10. M И ->3xA M И Vx-iA
7. Теорема адекватности
Теорема 1. Пусть L(Aim), 0,0 b Aim — начальный узел дерева, а L, Mod, Def b 0 — конечный узел одной из завершенных ветвей. Тогда для всякой формулы A € Aim имеет место (Mod, Def) И A.
Доказательство проводим индукцией по построению дерева.
Доказательство. Выделим ветвь дерева с конечным узлом L, Mod, Def b 0, и покажем, что для всякого узла L',Mod' ,Def ' b S' этой ветви и всякой формулы B € S' имеет место (Mod, Def) И B.
Базис индукции
Так как узел L, Mod, Def b 0 является конечным, то тривиальным образом для каждой формулы B € 0 имеет место (Mod, Def) И B.
Индукционный шаг
Рассмотрим узел L',Mod' ,Def ' b S' ,B в предположении, что для всех нижестоящих узлов наше утверждение выполняется.
Случай 1. Формула B имеет вид Vx/sD и к ней было применено правило (V)
_L, Mod, Def' b S', Vx/sD_
L' U Const/s, Mod' ,Def ' b S'Vx/sD U {D[c/x}}ceconst/s
Тогда непосредственно следующий узел для всех c € Const/s содержит формулы вида D[c/x], и по индуктивному опущению для каждой из них имеет место (Mod, Def) И D[c/x}. Отсюда по определению истинности в модели получаем (Mod, Def) И Vx/sD[c/x}.
Случай 2. Формула B имеет вид 3x/sD и к ней было применено правило (3).
_L', Mod' ,Def' b S ' , 3x/sD_
... | L' U {ci/s}, Mod' , Def ' b S '3x/sD, D[ct/x] | ...
Тогда анализируемой ветви дерева принадлежит один из непосредственно следующих узлов вида L' U {ci/s},Mod' ,Def ' b S' Зх/sD, D[ci/x] для некоторой константы ci/s. По индуктивному допущению имеет место {Mod, Def) И D[ci/x]. Отсюда по определению истинности в модели получаем {Mod, Def) И 3x/sD.
Случай 3. Формула B имеет вид Pt и к ней было применено правило (P. 1) при выполнении условия Pt € Mod и Vx(Px = A) € Def
Mod', Def' b S ',Pt Mod' U{Pt}, Def' b S'pt
Поскольку Mod' U {Pt} С Mod то {Mod, Def) И Pt.
Случай 4. Формула B имеет вид Pt и к ней было применено правило (P.2) при выполнении условия Pt € Mod и Vx(Px = A) € Def
L', Mod' ,Def ' b S' ,Pt
По индуктивному допущению {Mod, Def) И Pt.
Случай 5. Формула B имеет вид -Pt и к ней было применено правило (-P. 1). Рассматривается аналогично случаю 3.
Случай 6. Формула B имеет вид -Pt и к ней было применено правило (-P.2). Рассматривается аналогично случаю 4.
Случай 7. Формула B имеет вид Pt и к ней было применено правило (D).
L', Mod', Def ' U {Vx(Px = A)} b S' , Pt
По индуктивному допущению имеет место {Mod, Def) И A[t/x]. Поскольку Def' U {Vx(Px = A) С Def, то Vx(Px = A) € Def, и по определению истинности в модели получаем {Mod, Def) И Pt.
Случай 8. Формула B имеет вид -Pt и к ней было применено правило (-D). Рассматривается аналогично случаю 7.
Остальные случаи для логических связок, кванторов (-V), (-3) и (El) тривиальны. □
8. Заключение
Построенное исчисление является формализацией проблемы решения задач как последовательного уточнения предикатов и их редукции к подзадачам. В результате такой редукции мы приходим к моделям, которые либо являются решением задачи, либо содержат указание на то, как следует изменить текущее состояние мира, чтобы задача была решена.
Мы ограничились рассмотрением моделей с конечными индивидными областями, поскольку ориентировались в первую очередь на практические задачи, где такие ограничения оправданны. В то же время предложенный метод позволяет решать задачи, относящиеся и к бесконечным предметным областям. Это возможно в тех случаях, когда в ходе построения дерева редукции не применяется правило (V). Лишь оно может привести к узлу, содержащему бесконечное множество целевых формул по числу констант, именующих бесконечное множество индивидов предметной области. Если же это правило не применяется, то все узлы дерева редукции являются конечными объектами. Бесконечными могут быть лишь ветвления дерева в результате применения правила (З), но это не является препятствием, поскольку для решения задачи достаточно найти хотя бы одну завершенную ветвь, а это возможно методом поиска вглубь.
Все, кто знаком с методами логического программирования на языке Пролог, могли обратить внимание на то, что представленное исчисление редукций в достаточно общем виде формализует методологию написания логических программ. А именно, планирование и написание логических программ по методу сверху-вниз. Как и в исчислении редукций, программист дает определения предикатам, вводит в рассмотрение индивиды различных сортов, расширяет язык новыми предикатами, чтобы в дальнейшем дать определения уже им, как и в исчислении редукций, использует смысл логических связок для того, чтобы разбить программу на подпрограммы. Отличия лишь в деталях, связанных с эффективной реализацией на компьютере. Для этого в чистом Прологе используются Хорновы формулы, мы же взяли полный язык логики предикатов первого порядка. Множество определений, которые принимаются в ходе построения дерева
редукций, является прямым аналогом логической программы, которая в будущем может использоваться для решения подобных задач. Таким образом, изначально творческая задача переходит в разряд рутинных, которые будут решаться стандартным образом на основе набора однажды принятых определений.
Литература
[1] Декарт Р. Правила для руководства ума // Декарт Р. Соч.: в 2 т. Т. 1. М.: Мысль, 1988. С. 77-153.
[2] Непейвода Н.Н., Свириденко Д.Т. К теории синтеза программ // Математическая логика и теория алгоритмов М.: Наука, 1982. С. 159-175.
[3] Пойя Дж. Математика и правдоподобные рассуждения. М.: Наука, 1975. 464 с.
[4] Пойя Дж. Математическое открытие. М.: Наука, 1976. 448 с.
[5] Саати Т. Принятие решений. Метод анализа иерархий. М.: Радио и связь, 1993. 278 с.
[6] Саати Т., Кернс К. Аналитическое планирование. Организация систем. М.: Радио и связь, 1991. 224 с.
[7] Смирнов В.А. Творчество, открытие и логические методы поиска доказательства // Логико-философские труды В.А. Смирнова. М.: Эди-ториал УРСС, 2001. C. 438-447.
[8] Уинстон П. Искусственный интеллект. М.: Мир, 1980. 520 с.
[9] Целищев В.В., Бессонов А.В. Две интерпретации логических систем. Новосибирск: Наука, 1979. 269 с.
V.I. Shalack
Analytical Approach to Problem Solving
Shalack Vladimir Ivanovich
Department of logic, Institute of Philosophy of Russian Academy of Sciences 12/1 Goncharnaya Str., Moscow, 109240, Russian Federation E-mail: shalack@gmail.com
The work is devoted to the logical analysis of the problem solving. Typically, in each task we highlight the conditions and goals that we have to find or build. In this case the solution of the problem is seen as a kind of deduction from goals to the conditions. This representation of problems and their solutions is too narrow. In actual practice, a task or goal is often formulated in quite general terms as a wish. For example, the task to build a railway between the two cities. Sufficient conditions for the solution of this problem are initially unclear and should be found. For this kind of problems their solution can be represented as a gradual refinement of goals and their reduction to a simpler sub-goals. The methods by which we produce clarification of goals, we took from the theory of definitions. In this paper we construct a calculus in the form of analytical tables, which allows us to represent the whole process algorithmically.
Keywords: Problem solving, logical reduction, analytical tables, theory of definitions
References
[1] Dekart, R. "Pravila dlya rukovodstva uma" [Rules for the Direction of the Natural Intelligence], in: R. Dekart, Sochineniya v dvukh tomakh [Works in two volumes], T. 1. Moscow: Mysl', 1988, pp. 77-153. (In Russian)
[2] Nepeivoda, N.N., Sviridenko, D.T. "K teorii sinteza programm" [To the theory of program synthesis], in: Matematicheskaya logika i teoriya algoritmov [Mathematical logic and theory of algorithms]. Moscow: Nauka, 1982, pp. 159-175. (In Russian)
[3] Poiya, Dzh. Matematika i pravdopodobnye rassuzhdeniya [Mathematics and plausible reasoning]. Moscow: Nauka, 1975. 464 pp. (In Russian)
[4] Poiya, Dzh. Matematicheskoe otkrytie [Mathematical discovery]. Moscow: Nauka, 1976. 448 pp. (In Russian)
[5] Saati, T. Prinyatie reshenii. Metod analiza ierarkhii [The Analytic Hierarchy Process]. Moscow: Radio i svyaz', 1993. 278 pp. (In Russian)
[6] Saati, T., Kerns, K. Analiticheskoe planirovanie. Organizatsiya sistem [Analytical Planning; The Organization of Systems]. Moscow: Radio i svyaz', 1991. 224 pp. (In Russian)
[7] Smirnov, V.A. "Tvorchestvo, otkrytie i logicheskie metody poiska dokazatel'stva" [Creativity, discovery and logical methods for proof search], in: Logiko-filosofskie trudy V.A. Smirnova [The logical and philosophical works of V.A. Smirnov] Moscow: Editorial URSS, 2001, pp. 438-447. (In Russian)
[8] Winston, P. Iskusstvennyi intellekt [Artificial intellegence], Moscow: Mir, 1980. 520 pp. (In Russian)
[9] Tselishchev, V.V., Bessonov, A.V. Dve interpretatsii logicheskikh sistem [Two interpretations of logical systems], Novosibirsk: Nauka, 1979. 269 pp. (In Russian)