Cтраница 3
Мораль стала такая: по-видимому, невозможно делать индукцию по высоте. Вы получаете длинные разложения, в которые входят только точки меньшей высоты, но промежуточные неассоциативные слова выкидывают вас далеко вперед. Разглядывание этой таблицы убедило меня в том, что стандартная стратегия, работающая для эллиптических кривых, здесь неприменима. [31]
Принцип создания сложных конструкций прост. Первый базируется на том, чтобы изначально заложить основные позиции, рассматривая их как отдельные элементы либо как стандартные стратегии, а потом подвергнуть анализу, в том числе и раскладывая стратегии на составные элементы, типа спрэдов или синтетических конструкций. Второй подход идет в обратном направлении. Здесь изначально берутся отдельные элементы, типа спрэдов или синтетических конструкций ( синтетическая акция или синтетический опцион), которые затем уже складываются в общее целое, после чего полученная конструкция подвергается анализу, и делаются выводы о том, насколько эффективной является торговая идея. [32]
Предыдущие наши примеры показывали, что логические программы могут давать целое множество вычислений. Это свойство является одним из аспектов недетерминированности логических программ. Оно ставит интерпретатор перед необходимостью осуществлять поиск для того, чтобы не пропустить ни одного решения. Ниже мы займемся изучением стандартной стратегии, применяемой для управления поиском, и объясним, какое влияние на нее может оказывать программист. [33]
В противном случае функционирование системы неэффективно и требуются специальные алгоритмы, чтобы арбитр не тратил все время только на себя. К настоящему времени разработаны и опробованы на практике различные стратегии увеличения эффективности работы арбитра [ de Kleer, 1989 ], которые используются и в данном случае. Но не менее важно иметь гибкие средства описания этих стратегий с уровня входного языка. Тогда пользователь, в зависимости от требований его задачи, сможет отказаться от стандартных стратегий и описать свою собственную, которая адекватна его конкретному случаю. [34]
Во всяком случае важно понимать, что даже Пролог-системы значительно отличаются друг от друга из-за наличия в них различных дополнительных средств, предусмотренных для обогащения ресурсов программиста. В большинстве интерпретаторов, например, допускаются разнообразные способы модификации стратегии управления. Иногда такие усиления стандартной стратегии приводят к вычислениям, которые нельзя полностью обосновать, исходя только из логического вывода, и в этом случае интерпретаторы называют потенциально нечистыми; примером подобного интерпретатора является первоначальный Пролог, реализованный в Марселе. В противном случае, когда интерпретатор всегда ведет себя в соответствии со строгим логическим выводом ( основанным, быть может, и не на резолюции), его называют чистым; система IC-Пролога в лондонском Имперском колледже, написанная Кларком и Маккейбом ( 1979а), является чистой, несмотря на то что в ней имеется несколько довольно сложных механизмов, дополняющих стандартную стратегию. [35]
С помощью таких же рассуждений, как и выше, можно показать, что рекурсивные вызовы процедуры Р2 не могут продолжаться бесконечно долго. Итак, мы доказали, что все вызовы процедур пустое, е и подмнож должны обрабатываться за конечное время. Отсюда вытекает, что вычисление Г обязано быть конечным. Этот вывод имеет место для всех вычислений Г, и, стало быть, полное пространство вычислений нашей программы конечно. Следовательно, исполнение программы 29 при стандартной стратегии управления или при любой другой исчерпывающей стратегии завершается. Доказательство завершаемости можно без труда провести более формально с помощью структурной индукции. [36]