Algorithme de Markov
En informatique théorique, un algorithme de Markov est un système de réécriture de chaîne qui utilise des règles de grammaire pour agir sur une chaîne de…
En informatique théorique, un algorithme de Markov est un système de réécriture de chaîne qui utilise des règles de grammaire pour agir sur une chaîne de symboles. Il a été démontré que les algorithmes de Markov étaient Turing-complets, ce qui signifie qu'ils constituent un modèle de calcul suffisamment général. Les algorithmes de Markov ont été nommées d'après le mathématicien Andreï Markov.
Refal est un langage de programmation basé sur les algorithmes de Markov.
Algorithme
Les règles sont une suite de couples de chaînes, habituellement présentées sous la forme schéma → remplacement. Certaines règles peuvent en outre être qualifiées de terminales.
Étant donné une chaîne d'entrée :
- Vérifier les règles dans l'ordre, du haut vers le bas, jusqu'à en trouver une dont le schéma peut être trouvé dans la chaîne d'entrée (ainsi, si plusieurs schémas conviennent, seule la première règle rencontrée sera prise en compte).
- Si une telle règle n'est pas trouvée, l'algorithme s'arrête.
- Sinon, l'occurrence la plus à gauche du schéma dans la chaîne d'entrée est remplacée par la chaîne de remplacement donnée par la règle.
- Si la règle est terminale, l'algorithme s'arrête.
- Recommencer à la première étape.
Exemple
Les règles suivantes réécrivent un nombre binaire en version unaire ; par exemple, 101 sera réécrit comme une chaîne de 5 barres consécutives.
Règles
- "|0" → "0||"
- "1" → "0|"
- "0" → ""
Chaîne d'entrée
"101"
Exécution
L'application de l'algorithme donne successivement les chaînes :
- "0|01"
- "00||1"
- "00||0|"
- "00|0|||"
- "000|||||"
- "00|||||"
- "0|||||"
- "|||||"
Références
- Caracciolo di Forino, A. String processing languages and generalized Markov algorithms. In Symbol manipulation languages and techniques, D. G. Bobrow (Ed.), North-Holland Publ. Co., Amsterdam, The Netherlands, 1968, pp. 191–206.
- Andreï Markov 1960. The Theory of Algorithms. American Mathematical Society Translations, series 2, 15, 1-14.
Liens externes
- « Online Markov algorithm interpreter »(Archive.org • Wikiwix • Google • Que faire ?)
- Markov algorithm interpreter
- Markov algorithm interpreter
- Joran Bigalet, « Algorithmes de Markov » (consulté le )
- Vincent Laviron, « Algorithmes de Markov » (consulté le )
- (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Markov algorithm » (voir la liste des auteurs).
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.