Фиксированная точка, что это значит в мире информатики

19

Я постоянно сталкиваюсь со ссылками на фиксированную точку в вопросах и ответах на stackexchange и просматриваю смысл в Интернете, очевидно, находя ссылки на таких сайтах, как Wikipedia. Однако ни одна из ссылок не отвечает на мой вопрос о том, что такое фиксированная точка и что это значит в мире информатики.

Гай Кодер
источник
1
Даже если понятие неподвижной точки обычно происходит от некоторой пары такой, что f ( x ) = x , существует множество различных структур, в которых термин используется с разными значениями и последствиями. f,xf(x)=x
Рафаэль
Это помогло мне. Рекурсивные типы в подарок!
Гай Кодер

Ответы:

17

В информатике, пожалуй, наиболее заметное использование фиксированных точек в теории решетки ¹. Решетка является частично упорядоченным множеством с дополнительным свойством, которое дает любые два элемента x , y S , множество { x , y } имеет как супремум, так и инфимум (в S ).(S,)x,yS{x,y}S

Теперь вы часто рассматривают монотонные функции на этой решетке, «сходиться», то есть для некоторого х S у вас есть п ( х ) = х . Важные результаты в этой области являются теорема о неподвижной точке Клини и теорема Кнастера-Тарского .fxSf(x)=x

Ярким примером является решетка для некоторого множества A и f, индуцированная индуктивным определением. Например, пусть А = { , Ь } * и определим язык L 2 { , Ь } * по(2A,)AfA={a,b}L2{a,b}

wLε,aLawLbawLbwLabw,bbwL

Это индуктивное определение соответствует монотонной функции

f(A)={ε,a}A{bawawL}{abw,bbwbwL}

По теореме Кнастера-Тарского, мы знаем , имеет наименьший неподвижной опоры , которая является гранью всех меньших «промежуточных результатов» (которые соответствуют конечным часто применяя конструкторы индуктивного определения), а наименьшая неподвижная точка является действительно L .fL

Кстати, самая большая точка фиксации также имеет применение; см. здесь для примера.


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

Пусть - нумерация Гёделя ³ и r : NN - полная вычислимая функция (интуиция: компилятор). Тогда существует такое i N , что φ r ( i ) = φ i .φr:NNiNφr(i)=φi

На самом деле, таких даже бесконечно много ; если бы там было только конечное число, мы могли бы залатать r (путем поиска в таблице), чтобы не иметь неподвижных точек, что противоречит теореме.ir


  1. Каждый использует это каждый день, даже если вы этого не понимаете.
  2. Мне не нравится эта статья в Википедии; Вам, наверное, лучше проверить книгу жанров.
  3. Специальный вид нумерации функций. Для интуиции, думайте об этом как о (полном по Тьюрингу) языке программирования.
Рафаэль
источник
13

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

fact 0     = 1
fact (n+1) = n*(fact n)

В настоящее время в некоторых рамках PL (а именно в расчетеλ ) не сразу понятно, как определить такую ​​функцию. Однако может быть легко определить следующую функцию более высокого порядка , так называемую, потому что она принимает в качестве входных данных другую функцию и натуральное число

Fact f 0     = 1
Fact f (n+1) = n * (f n)

В этом определении функции нет использования рекурсии. Однако, если есть какой - то способ найти починки точку в Fact, то есть, функция такая , что Fact φ п = φ п для каждого п , то легко проверить , что φ действительно является реализация функции факториала.ϕ

Fact ϕ n = ϕ n
nϕ

λ

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

Коди
источник
9

е:AAИксе(Икс)ИксИкс201Икс3имеет три фиксированные точки. Математически это определение.

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

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

Виджай Д
источник
7

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

Для функции равенства е(Икс)знак равноИкснабор входных значений равен набору фиксированных точек функции. Для функциие(Икс)знак равноИкс2 набор фиксированных точек ограничен {0,1},

Что касается информатики, мы много говорим о частичных функциях , но это не меняет определения фиксированных точек для нас.

Вы также можете быть озадачены совершенно другой темой: арифметика с фиксированной запятой - это концепция представления действительных чисел в памяти. Но название «фиксированные точки» не относится к этой теме в целом (потому что есть только 1 точка).

meisterluk
источник
-1

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

ВЗН
источник