Cтраница 3
В условиях функционирования АСУ будут созданы логические программы, освобождающие руководящий персонал от рутинной работы. [31]
Предыдущие наши примеры показывали, что логические программы могут давать целое множество вычислений. Это свойство является одним из аспектов недетерминированности логических программ. Оно ставит интерпретатор перед необходимостью осуществлять поиск для того, чтобы не пропустить ни одного решения. Ниже мы займемся изучением стандартной стратегии, применяемой для управления поиском, и объясним, какое влияние на нее может оказывать программист. [32]
При нетворческой задаче развитый интеллект реализует готовые логические программы. Однако при творческой задаче картина меняется. Провал избранной программы отбрасывает организацию деятельности решающего на нижние структурные уровни интеллекта. Он повторяет смену типов поведении, характерных для каждого из этапов развития. Человек как бы карабкается по лестнице структурных уровней интеллекта. А лестница эта построена из трансформированных этапов развития. Структурные уровни организации интеллекта выступают теперь как функциональные ступени решения творческой задачи. [33]
Значительные возможности для повышения скорости исполнения логических программ заключены в реализации механизма унификации. Наиболее часто для выполнения унификации используются различные варианты алгоритма Робинсона. [34]
Оказывается, что стандартная стратегия исполнения логических программ полностью согласуется со стратегией выбора правил, обычно предписываемой алгоритмам Маркова. Читатель, имеющий склонность к теории, может восполнить детали этой формулировки ( краткое и простое изложение алгоритмов Маркова дается Элсоном ( 1973)) и получить тем самым формальное доказательство ее эквивалентности алгоритмам Маркова и, следовательно, ее универсальности. [35]
Рассмотрим различные способы определения аргументационной семантики логических программ в соответствии с подходом Данга, Тони и Какаса. [36]
Поведение, получающееся в результате исполнения логической программы, образует алгоритм. Алгоритм можно не без пользы рассматривать как пару: ( логика, управление), логическая компонента которой - это множество утверждений, составляющих программу, а управляющая компонента - это стратегия исполнения. [37]
Многообразие получаемых хроматограмм чрезвычайно затрудняет создание стабильной логической программы, способной правильно ограничивать контуры хроматографического пика до того, как будет записан он сам и следующий за ним пик. Особенно это относится к неполностью разделенным пикам. Поэтому визуальный анализ полностью зарегистрированной хроматограммы и ручная корректировка контуров пиков до настоящего времени являются обязательным условием правильного расчета сложных хроматограмм. Именно это обстоятельство приводит к тому, что подавляющее большинство хроматограмм, особенно в исследовательских лабораториях, рассчитывают вручную. По этой же причине весьма желательно создание достаточно точного и дешевого автоматического планиметра, способного измерять контуры пиков, записанных на обычной диаграммной бумаге. [38]
Метод резолюций, получив на вход логическую программу с присоединенным к ней запросом в виде множества хорновских дизъюнктов, пытается построить вывод пустого дизъюнкта, обозначаемого символом D. Если это ему удается, тогда цель допускается, в противном случае отвергается. Реализуется метод резолюций с помощью двух правил: правила резолюции и правила склейки, которые во время работы вызывают процедуру унификации - сопоставления. [39]
Этот вид параллелизма соответствует OR-параллелизму в логических программах. [40]
Кроме того, классическое отрицание в логических программах не отвечает свойству поддерснсиваемости ( supportedness), которое требует, чтобы для каждой программы Р объективная литера L была истинной только в том случае, когда существует правило для L, чье тело истинно. Это свойство вызвано природой эпистемического знания. [41]
Всестороннее исследование семантики стратифицируемых ( общих) логических программ выполнено в работе [ Apt86 ], где также показано, как стратифицированные логические программы можно вычислять по нисходящей стратегии. [42]
В этой главе рассматриваются составление и модификация логических программ. [43]
Андрека и Немети показали далее, что логическую программу для вычисления функции над эрбрановским универсумом можно построить только с помощью тех констант и функторов, которые содержатся в алфавите этого универсума. [44]
С другой стороны, компиляция ( трансляция) логической программы в непосредственно исполняемые машинные коды предоставляет в принципе гораздо большие возможности для достижения ее эффективного исполнения. Как правило, однако, чем более общей является программа, тем менее эффективной она оказывается в конкретных ситуациях, поскольку в ней всегда должны быть предусмотрены средства для обстоятельств, которые на самом деле могут не возникнуть. Компилятор может обходиться без такой общей программы, а вместо этого образовывать для каждого заголовка входной процедуры сегмент унификации, представленный в машинных кодах и специально приспособленный для формальных параметров, входящих в заголовок. Основная система исполнения состоит тогда из управляющей программы, входных процедур вместе с их заголовками, скомпилированными в машинные коды, и каких-либо библиотечных программ, также в виде скомпилированных кодов. [45]