Point fixe, qu'est-ce que cela signifie dans le monde de l'informatique

19

Je continue à trouver des références à des points fixes dans les questions et réponses à stackexchange et je cherche la signification sur le Web en trouvant évidemment des références sur des sites tels que Wikipedia. Cependant, aucune des références ne répond vraiment à ma question de savoir ce qu'est un point fixe et ce que cela signifie dans le monde de l'informatique.

Guy Coder
la source
1
Même si la notion de virgule fixe provient généralement d'une paire telle que f ( x ) = x , il existe de nombreux cadres différents où le terme est utilisé avec des significations et des conséquences différentes. F,XF(X)=X
Raphael
Cela m'a aidé. Types récursifs gratuits!
Guy Coder

Réponses:

17

En informatique, l'utilisation sans doute la plus importante des points fixes se situe dans la théorie du réseau ¹. Un réseau est un ensemble partiellement ordonné avec la propriété supplémentaire que, étant donné deux éléments x , y S , l'ensemble { x , y } a à la fois un supremum et un infimum (en S ).(S,)x,yS{x,y}S

Maintenant, vous considérez souvent les fonctions monotones sur ce réseau qui "convergent", c'est-à-dire que pour certains x S vous avez f ( x ) = x . Les résultats importants dans ce domaine sont le théorème du point fixe de Kleene et le théorème de Knaster-Tarski .fxSf(x)=x

Un exemple frappant est le réseau pour A un certain ensemble, et f induit par une définition inductive. Par exemple, soit A = { a , b } et nous définissons un langage L 2 { a , b } par(2A,)UNEFA={a,b}L2{une,b}

wLε,aLawLbawLbwLabw,bbwL

Cette définition inductive correspond à la fonction monotone

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

Par théorème Knaster-Tarski, nous savons que a un plus petit point fixe qui est une borne supérieure de tous les petits « résultats intermédiaires » (qui correspondent à l' application souvent les finiment constructeurs de la définition inductive), et que le plus petit point fixe est en effet L .fL

Soit dit en passant, le plus grand point fixe a également des utilisations; voir ici pour un exemple.


Dans la théorie de la récursivité, il existe un autre théorème à virgule fixe, également dû à Kleene. Il dit ²,

Soit une numérotation de Gödel ³ et r : NN une fonction totale calculable (intuition: un compilateur). Il y a donc i N tel que φ r ( i ) = φ i .φr:NNiNφr(i)=φi

En fait, il existe même une infinité de tels ; s'il n'y en avait qu'un nombre fini, nous pourrions corriger r (par recherche de table) pour ne pas avoir de points fixes, contredisant le théorème.ir


  1. Tout le monde l'utilise tous les jours, même si vous ne vous en rendez pas compte.
  2. Je n'aime pas cet article Wikipedia; vous feriez probablement mieux de consulter un livre de genre.
  3. Un type spécial de numérotation des fonctions. Pour l'intuition, considérez-le comme un langage de programmation (Turing-complet).
Raphael
la source
13

Permettez-moi de développer un peu la réponse de meisterluk: Imaginez que nous essayons de définir la fonction factorielle: rappelez-vous la définition de la fonction factorielle:

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

Maintenant, dans certains cadres PL (à savoir le -calculusλ ), il n'est pas immédiatement évident de définir une telle fonction. Cependant, il peut être facile de définir la fonction d' ordre supérieur suivante , ainsi appelée car elle prend en entrée une autre fonction et un nombre naturel

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

Il n'y a pas d'utilisation de récursivité dans cette définition de fonction. Cependant, s'il y avait un moyen de trouver le point fixe de Fact, c'est-à-dire une fonction telle que Fact ϕ n = ϕ n pour chaque n , alors il est facile de vérifier que ϕ est bien une implémentation de la fonction factorielle.ϕ

Fait ϕ n = ϕ n
nϕ

λ

Il existe de nombreuses autres utilisations de la notion de points fixes en informatique, mais la plupart se résument à celle que j'ai montrée ci-dessus, c'est-à-dire prouver que certains points fixes existent pour pouvoir montrer que certaines fonctions ou constructions sont bien définies dans votre framework (ici nous avons montré que la fonction factorielle existe).

cody
la source
9

F:UNEUNE est un élément X Pour qui F(X) est égal à X. Par exemple, la fonctionX2 a deux points fixes, qui sont les valeurs 0 et 1et la fonction X3a trois points fixes. Mathématiquement, c'est la définition.

Now, depending on the mathematical structure you are dealing with, there are very many different reasons to be interested in fixed points. For example, if you consider a dynamic system that looks at the state of the world and changes it (like a thermostat) then a fixed point corresponds to a stable configuration. If you think of games in the mathematical sense of game theory, fixed points correspond to equillibria, if you think of the the behaviour of an optimization routine that iteratively improves its solution, a fixed point corresponds to an optimal solution. So the mathematical notion of a fixed point has a lot of applications in a lot of different contexts.

Une application très courante et fondamentale des points fixes en informatique est la modélisation mathématique de boucles et de programmes récursifs. Si nous essayons de modéliser un programme comme une fonction mathématique, les boucles et la récursivité ne sont pas évidentes à modéliser. En effet, le corps d'une boucle est un programme et peut être représenté comme une fonction mathématique. Comment dériver la fonction représentant le comportement de la boucle? Cela correspond à l'application répétée du corps de boucle, en liaison avec le protège-boucle, jusqu'à ce qu'aucun autre changement ne soit possible. De même, si nous modélisons mathématiquement des programmes récursifs, nous avons besoin d'une notion mathématique de ce que cela signifie pour une fonction de s'appliquer. Cette réponse est fournie par des points fixes.

Vijay D
la source
7

Une fonction en mathématiques est une correspondance entre les valeurs d'entrée et de sortie. Les points fixes sont des valeurs d'entrée (pour une fonction) qui correspondent à des valeurs de sortie satisfaisant l'égalité avec l'entrée.

Pour la fonction d'égalité F(X)=Xl'ensemble de la valeur d'entrée est égal à l'ensemble des points fixes de la fonction. Pour une fonctionF(X)=X2 l'ensemble des points fixes est limité à {0,1}.

En ce qui concerne l'informatique, nous parlons beaucoup de fonctions partielles , mais cela ne change pas pour nous la définition des points fixes.

Vous pouvez également être confus sur un sujet totalement différent: l' arithmétique à virgule fixe est un concept permettant de représenter des nombres réels dans la mémoire. Mais le nom "points fixes" ne fait pas référence à ce sujet en général (car il n'y a qu'un seul point).

meisterluk
la source
-1

la théorie des jeux est une sous-zone majeure de CS et un concept important est l' équilibre de Nash qui est un théorème de point fixe. il donne un moyen d'identifier les stratégies de jeu optimales étant donné que les autres joueurs sont conscients des stratégies des autres. elle peut être prouvée via le théorème du point fixe de Kakutani ou le théorème du point fixe de Brower . Nash a remporté le prix Nobel d'économie en partie pour avoir développé cette théorie.

vzn
la source