Сужение наборов алгебраических значений - Narrowing of algebraic value sets

подобно логическое программирование, сужение[1][2] алгебраических наборов значений дает метод рассуждений о значениях в нерешенных или частично решенных уравнениях. Где логическое программирование полагается на разрешающая способность, алгебра наборов значений опирается на правила сужения. Правила сужения позволяют исключить из набора решений значения, несовместимые с решаемыми уравнениями.

В отличие от логического программирования, сужение наборов алгебраических значений не использует возврат. Вместо этого все значения содержатся в наборах значений и рассматриваются параллельно.

Подход также похож на использование ограничения[3] в программирование логики ограничений, но без основы обработки логики.

Наборы вероятностных значений является естественным продолжением наборов значений до дедуктивная вероятность. Конструкция набора значений содержит информацию, необходимую для вычисления вероятностей вычисленных значений на основе вероятностей начальных значений.

История

Ранние языки программирования были императив. Они реализуют функциональные возможности, позволяя отображать изменения. Оператор присваивания позволяет переменной изменять свое значение.

В математике значение переменной не может меняться. Это фундаментально для математического подхода. Функциональный языки на основе лямбда-исчисление разрешить этот математический подход к программированию. Функциональные языки, разработанные путем реализации ленивая оценка, и позволяя передавать функции как параметры.

Ленивое вычисление - неотъемлемая черта современных функциональное программирование языки, такие как Haskell. Haskell - последний из серии языков, основанных на лямбда-исчисление и пусть выражения. Эти языки предоставляют широкие функциональные возможности за счет отложенного вычисления, а система полиморфных типов с помощью вывод типа. Языки функционального программирования также естественно поддерживают функции высшего порядка.

Логическое программирование на основе разрешение развивалась параллельно с функциональным программированием. Логическое программирование - это форма реляционное программирование это делает выводы о ценностях. Программирование логики ограничений расширяет логическое программирование, поддерживая ограничения. Языки программирования с ограничительной логикой, такие как Затмение дают возможность решать сложные логические задачи. Однако ECLiPSe не ленивый.

Языки логического программирования, хотя и обладают большей способностью к дедукции, никогда не обладали силой и гибкостью функциональных языков.

Сужение - это метод, позволяющий делать логические выводы с гибкостью функциональных языков.

Введение

В математика выражение представляет собой одно значение. А функция отображает одно или несколько значений на одно уникальное значение.

Обратные функции не всегда хорошо определяются как функции. Иногда требуются дополнительные условия, чтобы инверсия функции соответствовала определению функции.

Некоторые логические операции, в частности, не имеют инверсий, которые могут быть определены как функции. В частности дизъюнкция «или» имеет инверсию, допускающую два значения. На естественном языке «или» представляет собой альтернативные возможности.

Сужение основано на наборах значений, которые позволяют упаковать несколько значений и рассматривать их как одно значение. Это позволяет всегда рассматривать обратные функции как функции.

Для достижения этого набора значений необходимо записать контекст, которому принадлежит значение. Переменная может принимать только одно значение в каждом возможный мир. Наборы значений помечают каждое значение в наборе значений миром, которому оно принадлежит.

Возможные миры принадлежат мировым множествам. Мировой набор - это совокупность всех взаимоисключающих миров. Объединение значений из разных возможных миров невозможно, потому что это означало бы объединение взаимоисключающих возможных миров.

Применение функций к наборам значений создает комбинации наборов значений из разных миров. Сужение сужает эти миры за счет исключения комбинаций разных миров из одного набора миров. Сужающие правила также обнаруживают ситуации, когда оказывается, что некоторые комбинации миров невозможны.

При использовании сужения обратного отслеживания не требуется. Путем упаковки возможных значений в набор значений можно рассматривать все комбинации значений одновременно. Оценка выполняется так же, как и в случае функционального языка, комбинируя комбинации значений в наборах значений, с сужающимися правилами, исключающими невозможные значения из наборов.

Введение в наборы значений

А набор значений - объект, который представляет набор значений, которые может иметь переменная. Набор значений математически ведет себя как одно значение, но внутренне представляет несколько значений. Чтобы достичь этого, набор значений отслеживает значение вместе с контекстом или миром, в котором они возникли.

Множественные решения уравнения

В математике выражение должно представлять одно значение. Например, рассмотрим уравнение

что означает,

Но это немного затянуто, и это не позволяет нам работать с несколькими значениями одновременно. Если к x добавляются дополнительные условия или ограничения, мы хотели бы рассмотреть каждое значение, чтобы увидеть, соответствует ли оно ограничению. Так наивно хотелось бы написать,

Тогда наивно,

но это неправильно. Каждый x должен представлять одно значение в выражении. Либо x равно 2, либо x = −2. Эту проблему можно решить, отслеживая два значения, чтобы убедиться, что значения используются последовательно, и это то, что делает набор значений.

Представление

Значение, установленное для 'x', записывается как,

Это контейнер V который имеет набор тегов, пар значений,

Значение 2 связано с возможный мир . Значение −2 связано с возможным миром . Это означает, что значение не может быть одновременно 2 и -2. В мире значение набора значений должно быть 2. В мире значение набора значений должно быть -2.

Решение уравнения,

является,

Возможные миры

Возможный мир используется здесь как неформальный термин. Формально возможный мир определяется логическим условием. Возможный мир можно рассматривать как набор возможностей для мира, который соответствует условию.

Термин «возможный мир» используется для упрощения описания наборов значений.

Мировые наборы

Набор миров - это набор возможных миров, которые представляют все возможности. Так является миром, установленным как x = 2 (в мире ) или x = −2 (в мире ). Других возможностей нет.

Миры из одного и того же набора миров являются взаимоисключающими, поэтому невозможно, чтобы утверждения для обоих миров и верны в то же время.

Применение функций

Правило для применения функций к наборам значений:

Например,

является,

Пересечение возможного мира с самим собой - это возможный мир,

Пересечение возможного мира с другим возможным миром из того же набора миров пусто,

Так,

Правило пустых миров позволяет отбрасывать помеченные значения из пустых миров.

давая

Дает результат, который как и ожидалось, равно −4 или 4.

Применение к логическим значениям

Связь между а, б и правда это означает, что оба а и б должно быть правдой.

Допускает несколько значений для а и б. Если а является,

тогда для б

Это означает, что если а является ложный тогда б должно быть правда.

Теперь рассмотрим,

дает,

и

объединение этих двух наборов значений дает,

Пара отбрасывается из-за правила "утверждать равное",

Его ценность не совпадает с .

Зависимые миры

Рассмотрим проблему,

Сначала рассчитайте значение, установленное для ,

Поскольку это утверждение считается истинным, все ложные значения отбрасываются, давая

Миры,

невозможно. Миры пусты.

Если набор миров включен в вычисление, тогда каждый мир из набора миров должен быть включен в результат. Если мир не найден, он называется зависимым миром и должен быть пустым. Мир не представлен в этом значении, поэтому должен быть пустым. Значение, установленное для теперь меньше,

Второе условие теперь проще из-за меньшего установленного значения.

Тогда наборы значений:

Расчет такой:

Но пусто. Так,

Так и пусты,

Сейчас же и не представлены и удаляются как зависимые миры. Так,

Каждое произведенное вычисление может уменьшить размер наборов значений путем удаления зависимых миров, но добавить новый набор значений, размер которого является произведением размеров наборов входных значений. Затем сначала должны быть выполнены расчеты, когда произведение размеров наборов входных значений является наименьшим.

Пицца, пиво, виски

После тяжелого рабочего дня в попытках уложиться в какой-то сумасшедший срок с адским проектом, в 22:00 наступает то отчаянное время, когда всем нам нужна пицца, пиво и виски. Пиццерия открыта по адресу,

Пиво можно достать,

Виски,

Копы уже на месте, а мы не молодеем. Куда идти?

Если ограничения применяются в порядке слева направо,

Затем нам нужно объединить это с

Это создаст 24 комбинации, из которых совпадают,

Наконец, нам нужно объединиться с виски.

Что дает 6 комбинаций. Соответствующий:

Всего было сгенерировано 30 комбинаций.

Если ограничения применяются в порядке справа налево,

Затем нам нужно объединить это с

Это создаст 8 комбинаций, из которых соответствует одна,

Наконец, нам нужно объединиться с пиццей.

Что дает 6 комбинаций. Соответствующий:

Результат тот же, но только 14 комбинаций были сгенерированы, чтобы прийти к заключению.

Каждый расчет объединяет наборы значений для создания набора значений, который является продуктом размеров наборов входных значений. Затем установленное значение будет уменьшено. И каждый расчет имеет равные шансы сузить расчет. Таким образом, контролируя порядок и продолжая вычисления с наименьшим размером продукта, будет меньше вычислений и меньше комбинаторный взрыв.

Пусть выражения и несколько значений

Требуется общее решение проблемы обратных функций, которые не являются функциями. Требуется представление значения, которое должно быть членом набора значений. А пусть выражение может использоваться для представления значения, которое является членом набора,

В этом выражении это ограничение. Ограничение - это логическое выражение, которому должна удовлетворять переменная. В позволять Expression позволяет представить ограничение в виде выражения. Если бы существовало общее правило для применения выражений ограничений к функциям, то ограничение можно было бы рассматривать как значение.

При применении функции одного выражения let к другому,

Но для применения выражения let к самому себе применяется другое правило. Выражение let не ограничивает область действия переменной x, поэтому x - это одна и та же переменная в двух выражениях let.

Не существует простого правила для объединения выражений let. Требуется общая форма выражения, представляющая переменную, значение которой является членом набора значений. Выражение должно быть основано на переменной и наборе.

Приложение функции, примененное к этой форме, должно давать другое выражение в той же форме. Таким образом, любое выражение функций с несколькими значениями может рассматриваться как имеющее одно значение.

Недостаточно, чтобы форма представляла только набор значений. Каждое значение должно иметь условие, определяющее, когда выражение принимает значение. Результирующая конструкция представляет собой набор пар условий и значений, называемый «набором значений».

Теория наборов ценностей

"Набор значений" K определяется как набор пар, каждая пара состоит из значения и набора зависимых условий. Набор зависимых условий используется «функцией условия», чтобы определить, принимает ли набор значений это значение.

Функция условия определяется тремя аксиомами:

  1. Каждая пара означает, что значение установленного значения является v если функция условия применена к списку, , правда.
  2. Одно из условий верно.
  3. Только одно из условий верно.

Условие представлено как функция, применяемая к набору зависимых условий, чтобы позволить управлять структурой условия. Также набор условий используется в сужение за счет исключения зависимых значений. Однако для большинства целей набор значений можно рассматривать как набор пар значений и условий. Функция условия переводит набор в условие.

Формально,

имяОпределение
Функция условия
Условие значения
Полный комплект
Исключение

Функция значения

Используя условие значения и аксиомы полного набора,

Как выражение let это становится,

Одно значение

Значение, установленное для представления единственного значения:

Вывод:

Элемент набора

Набор значений для представления элемента набора:

Это довольно странное определение добавляет значение, установленное как часть зависимого условия. Это используется в сужение за счет исключения зависимых значений.

Значение выражения равно

.

И то и другое р и Икс необходимо включить в зависимое условие, потому что р определяет набор значений, которому принадлежит зависимое условие, и Икс предоставляет переменную, используемую для переноса значения в выражении let.

Если добавление р к зависимому условию игнорируется, выражение принимает более простой и понятный вид,

Вывод:

Применение функций

Функциональное применение наборов значений определяется выражением

Вывод,

Затем, используя,

получить,

Исключение

Исключение - это правило, определяющее, когда условия должны быть ложными,

Это может быть получено из

Упрощение

Правило упрощения позволяет отбрасывать значения, условие которых ложно.

Вывод

Резюме результатов

имяПравило
Функция значения
Одно значение
Установить элемент
Приложение функции
Исключение
Упрощение
Утверждать равное

Ценность устанавливает идентичность

Определив применение функций для наборов значений также было переопределено определение равенства наборов значений. Старое определение равенства все еще существует, потому что наборы значений строятся как набор пар. Два набора равны, если они содержат одинаковые элементы. Это определение равенства для наборов значений в лучшем случае вводит в заблуждение.

Что необходимо, так это использовать имя или идентификатор переменной, из которой создается набор значений, как часть структуры набора значений. Это сделало бы наборы значений разными, если только они не основаны на одной и той же переменной.

В математике количественная оценка - это значения, а не формулы. Чтобы продолжить точное определение наборов значений, необходима количественная оценка по формулам таким образом, чтобы можно было сравнить идентичность формул. Различие между формулой, представляющей значение, и ее сущностью заключается в использование – упоминание различия. Обозначение,

вводится для обозначения количественной оценки по формуле Икс где Икс относится к стоимости, как использованию, и ты относится к идентичности формулы, как представлено или упомянуто.

Используя эти обозначения, элемент набора определение было бы,

Затем каждую ссылку на набор значений необходимо будет изменить, чтобы учесть дополнительный уровень структуры в наборе значений, что затрудняет чтение описания. Для удобства чтения этот дополнительный уровень структуры не включен в определение наборов значений.

Сужение

«Сужение» определяет, когда должны быть выполнены условия для значений. ложный. Сужение начинается, когда утверждается, что значения двух наборов значений равны.

Сужение за счет утверждения равенства

Утверждение, что два набора значений равны, дает правило сужения,

Для вывода начнем с

Условие ценности дает,

Сужение соединением

Если какое-либо базовое условие ложно, все условия, полученные из него, ложны.

Это происходит из определения функции Condition,

Базовое условие для (r, z, u):

Итак, если это ложь ложно.

Сужение перекрещенными условиями

Если список зависимых условий имеет два разных базовых условия из одного и того же набора значений, он должен быть ложным.

Чтобы вывести это, начните с правила исключения:

Тогда для любого набора зависимых условий л,

Таким образом, если список зависимых условий основан на двух условиях из одного и того же набора значений, значение условия этого списка зависимых условий будет ложным.

Сужение за счет исключения зависимых значений

Каждый набор значений накладывает ограничение на базовый набор значений, из которого он построен. Если набор базовых значений включает значения, которые не представлены в качестве зависимых значений в наборе значений, условия для этих значений должны быть ложными.

Чтобы вывести это, начните с правила полного набора,

Функция условия:

Может быть выбрано конкретное зависимое условие, подразумеваемое всем условием,

Так

Вот . Выражение может быть изменено, чтобы определить набор значений, которые может взять,

и так,

Затем, используя правило исключения,

дает,

Это сужающееся правило исключения. это набор значений в базовом значении L набор, который представлен в наборе значений K. Условия для других значений должны быть ложными.

Наборы вероятностных значений

Набор значений записывает зависимые условия, к которым может применяться функция условия, чтобы вывести истинность предположения о том, что набор значений имеет конкретное значение. Та же самая структура может использоваться, чтобы дать вероятность того, что набор значений будет равен определенному значению. Функция условия:

Функция вероятности:

Это вероятность того, что каждый базовый случай имеет определенное значение, если события независимы.

Функция вероятности определяется тремя аксиомами:

  1. Каждая пара означает, что вероятность установленного значения является v - функция вероятности, примененная к списку, .
  2. Сумма вероятностей по всему набору значений равна 1.
  3. Вероятность появления любых двух пар в наборе значений равна нулю.

Функция вероятности дает вероятности результатов, основанные на начальных вероятностях, заданных формулой Логический индуктивный вывод.

Формально,

имяОпределение
Функция вероятности
Условие значения
Полный комплект
Допустимые значения
Исключение

Вероятности для каждого значения в наборе значений могут быть вычислены из вероятностей в базовых наборах значений с использованием функции вероятности и условия значения. Наборы базовых значений предназначены либо для одного значения, либо для набора значений с несколькими значениями.

Вероятность единственного значения

Значение, установленное для представления единственного значения:

Правило полного набора:

Что согласуется с аксиомой.

Вероятности для нескольких значений

Для представления нескольких значений установлено следующее значение:

Вероятность определяется правилом допустимых значений,

что упрощает,

Если даны предварительные оценки вероятностей для значений, то они будут пропорциональны апостериорным вероятностям, если значение находится в наборе значений.

Если значение не входит в набор значений, вероятности будут равны нулю,

Так,

Если все априорные вероятности одинаковы, вероятности равны

Вероятности общих наборов значений

Общий набор значений создается на основе применения наборов базовых значений. Правило условия значения и функция вероятности могут быть объединены для получения,

Доступ к набору значений

Сужение позволяет исключить значения, не удовлетворяющие ограничениям переменной. Это сужение, рассматриваемое как основа для алгоритма решения уравнений, дает набор значений, согласующихся с ограничениями на переменную. Однако в математике нет возможности получить доступ к этому набору значений.

Если это выражение, ограничивающее переменную Икс тогда набор значений, которые может принимать переменная:

Определить gset из Икс быть набором значений, которые удовлетворяют ограничениям на Икс. Рассмотрите возможность определения gset так как,

Это определение зависит от знания выражения E, что является условием, дающим все ограничения на Икс. В математике E не может быть получено из Икс. Таким образом, нет математической функции, которую можно применить к переменной для запроса набора значений. Так пусть gset функцию добавить в математику?

Мета-математическое определение

Мета-математическое определение gset может быть возможно. Представьте себе, что то, что мы знаем как математику, на самом деле реализуется мета-функция называется математика. математика занимает абстрактное синтаксическое дерево и придает значение переменным и математическим структурам и добавляет кванторы существования для переменных, которые не определены явно.

математика будет выражением в метаматематической среде со своими собственными переменными. Чтобы отличить эти метапеременные от математических переменных, представляйте их заглавными буквами, а математические переменные - строчными буквами.

Теперь предположим, что существует расширенная реализация математики, реализованная xmath функция, определяемая как,

С помощью xmath, gset может быть определено как,

Вот очередной раз обозначение,

используется для обозначения количественной оценки переменных Икс где Икс относится к значению, а ты относится к уникальному идентификатору переменной.

пример

Например, возьмите выражение ограничения . Потом,

Тогда xmath выражение,

Тогда где u - уникальный идентификатор переменной x, представленной здесь как число 1 (для первой переменной, используемой при вызове gset),

Вот призывает Т с M как N.

Смотрите также

использованная литература

  1. ^ Киршнер, Элен; Рингайссен, Кристоф (1994). «Решение ограничений путем сужения в комбинированных алгебраических областях». Proc. 11-я Международная конференция по логическому программированию. Пресса Массачусетского технологического института. С. 617–31.
  2. ^ Аренас, Пури; Арталехо, Марио Родригес (1997). «Ленивое сужающее исчисление для функционально-логического программирования с алгебраическими полиморфными типами». Proc.Международного симпозиума по логическому программированию (ILPS'97). MIT Press. С. 53–67.
  3. ^ Marriott, Ким; Стаки, Питер Дж. (1998). Программирование с ограничениями: введение. MIT Press.