2

David Silver décrit une propriété de Markov Chains comme:Est-ce que la programmation fonctionnelle et les chaînes de Markov sont liées?

L'avenir est indépendant du passé étant donné les présents

https://www.youtube.com/watch?v=lfHX2hHRMVQ (4 minutes en vidéo)

Cette frappe un accord avec moi parce que j'apprends actuellement sur la programmation fonctionnelle (FP). Dans FP, vous pouvez également ignorer le passé car vos fonctions n'ont besoin que de l'état actuel pour effectuer certaines actions et générer un nouvel état. Cela n'est pas nécessairement vrai avec Object Oriented car votre sortie peut dépendre de plusieurs états dans des endroits différents.

Y a-t-il une connexion plus profonde entre FP et les chaînes de Markov que je ne connais pas?

Est-il exact de dire, par exemple, que les fonctions écrites dans FP sont des chaînes de Markov déterministes?

+1

Vous pouvez simplement penser aux machines d'état (AKA, automates finis). –

+2

"différents lieux"! = "Le passé". En outre dans OOP l'état futur dépendra seulement de l'état courant, pas sur les actions précédentes. C'est une propriété fondamentale du temps, ce qui rend les chaînes de Markov appropriées pour la modélisation. Cela n'a rien à voir avec la PF, sauf que les deux sont étroitement liés aux mathématiques. – Bergi

+0

Depuis que Markov est mort en 1922, je dirais que ses pensées sur les chaînes de Markov n'incluaient pas la programmation fonctionnelle. – duffymo

Répondre

4

Il existe en effet une connexion entre une chaîne de Markov et une programmation fonctionnelle. Une chaîne de Markov est un type de Finite-State Machine non-déterministe (FSM), tandis que le chaînage pur fonctions produirait un FSM déterministe. La mise en garde ici est que dans le monde réel (par exemple, les applications Web), vous avez souvent besoin également de fonctions qui ne sont pas pures (par exemple, modifier ou interroger une base de données externe).

J'ai trouvé très utile de modéliser un état de programme en tant que machine à états finis (FSM), à la fois comme une métaphore et comme une façon concrète de modéliser des états et des transitions. Par exemple, un FSM représente bien which actions are allowed at which state lors de l'implémentation des interfaces utilisateur (Web).

+0

Excellent - J'aime l'idée de voir des programmes fonctionnels purs comme des FSM déterministes. Et je pense qu'il est très cool que le fait d'ajouter simplement de la stochasticité à un FSM donne une chaîne de Markov qui semble au premier abord totalement indépendante de la programmation fonctionnelle. – COOLBEANS