{"id":10958,"date":"2025-10-27T11:58:42","date_gmt":"2025-10-27T10:58:42","guid":{"rendered":"https:\/\/spgoo.org\/?page_id=10958"},"modified":"2025-10-28T09:56:07","modified_gmt":"2025-10-28T08:56:07","slug":"tournoi-axelrod-explications","status":"publish","type":"page","link":"https:\/\/spgoo.org\/?page_id=10958","title":{"rendered":"Tournoi Axelrod : explications"},"content":{"rendered":"<script type='text\/javascript'>\nvar id = \"10665\";<\/script>\n<script type='text\/javascript' src='https:\/\/spgoo.org\/wp-content\/uploads\/winp-css-js\/10665.js?ver=1761576421'><\/script>\n\n\n<script type='text\/javascript'>\nvar id = \"10667\";<\/script>\n<script type='text\/javascript' src='https:\/\/spgoo.org\/wp-content\/uploads\/winp-css-js\/10667.js?ver=1762078084'><\/script>\n\n\n<link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/jsxgraph\/distrib\/jsxgraph.css\">\r\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/jsxgraph\/distrib\/jsxgraphcore.js\"><\/script>\r\n<link rel=\"stylesheet\" type=\"text\/css\" href=\"https:\/\/cdn.jsdelivr.net\/gh\/bitmaks\/cm-web-fonts@latest\/fonts.css\">\r\n\r\n<!-- MathJax -->\r\n<script>\r\n\twindow.MathJax = {\r\n\t\ttex: { inlineMath: [['\\\\(', '\\\\)'], ['$', '$']] },\r\n\t\tsvg: { fontCache: 'global' }\r\n\t};\r\n<\/script>\r\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/mathjax@3\/es5\/tex-svg.js\"><\/script>  \r\n<style>\r\n\t .detail {\r\n\t\t \tcolor:black;\r\n            background: rgba(255, 255, 255, 0.95);\r\n            padding: 15px 20px;\r\n            border-radius: 10px;\r\n            box-shadow: 0 4px 6px rgba(0,0,0,0.3);\r\n            margin-bottom: 20px;\r\n            font-size: 18px;\r\n            color: #667eea;\r\n            font-weight: bold;\r\n            min-width: 300px;\r\n        }\r\n\tli {\r\n\t\tcolor:white;\r\n\t}\r\n\t\r\n<\/style>\r\n\r\n\r\n<h1>\\(\\textrm{Explication des tournois d&#8217;Axelrod}\\)<\/h1>\r\n\r\n<p>\r\nLa th\u00e9orie des jeux est apparue \u00e0 la fin de la seconde guerre mondiale dans l\u2019effort hors du commun de John von Neuman et Oscar Morgenstern pour d\u00e9velopper une th\u00e9orie des interactions entre agents. Une mauvaise appellation au d\u00e9part a cr\u00e9\u00e9 une certaine confusion. La th\u00e9orie des jeux s\u2019int\u00e9resse essentiellement aux conflits sociaux, et les jeux sont effectivement des conflits sociaux.\r\n<br\/>\r\n<br\/>\r\nAvec l\u2019introduction du dilemme du prisonnier, il a sembl\u00e9 qu\u2019il n\u2019\u00e9tait jamais rationnel de coop\u00e9rer (en  1950, Melvin Dresher et Merill Flood pr\u00e9sent\u00e8rent ce jeu sous une forme math\u00e9matique qui fut, par la suite, envelopp\u00e9e dans une formulation litt\u00e9raire par Albert W. Tucker, le directeur de th\u00e8se de John Nash). On obtient un \u00e9quilibre dit de Cournot-Nash quand les deux joueurs trahissent. Bien s\u00fbr, ils pourraient am\u00e9liorer tous les deux leur situation (on parle d\u2019\u00e9quilibre de Pareto)  s\u2019ils coop\u00e9raient, mais la menace de la trahison les en emp\u00eache.\r\n <br\/>\r\n<br\/>\t\r\nMalgr\u00e9 les r\u00e9flexions profondes de David Hume qui, d\u00e8s le XVIIIeme si\u00e8cle, justifiait la coop\u00e9ration dans les interactions r\u00e9p\u00e9titives et l\u2019observation dans la Nature de la coop\u00e9ration entre individus de m\u00eame esp\u00e8ce mais sans lien de parent\u00e9 (la chauve-souris vampire d\u2019Amazonie)ou d\u2019esp\u00e8ces oppos\u00e9es comme le requin et le labre n\u00e9ttoyeur comme le pluvian et le crocodile, entre les fleurs polinis\u00e9es par les abeilles, entre les bact\u00e9ries qui peuplent notre microbiote intestinal (dans lequel nous pouvons modifier les interactions en fonction de notre alimentation), il a fallu attendre longtemps pour que l\u2019on s\u2019int\u00e9resse aux interactions intertemporelles.\r\n<br\/>\r\n<br\/>\t\r\nPourtant d\u00e8s 1964, William Hamilton apporte une solution \u00e0 la question de l\u2019existence de comportements altruistes dans la Nature : ils sont favoris\u00e9s par la s\u00e9lection naturelle si les co\u00fbts op\u00e9ratifs de ces comportements sont inf\u00e9rieurs aux avantages escompt\u00e9s. Hamilton d\u00e9couvre avec d\u2019autres comme John Maynard Smith et Georges Price en 1973 que le th\u00e9orie des jeux est aussi un langage de la Nature. \r\n<br\/>\r\n<br\/>\t\r\nCependant la coop\u00e9ration demeure partiellement une \u00e9nigme parce que ce qui est int\u00e9ressant c\u2019est de comprendre pourquoi des individus fondamentalement \u00e9go\u00efstes vont \u00eatre amen\u00e9s \u00e0 coop\u00e9rer. En effet depuis les \u00ab Discours sur les origines et les fondements des in\u00e9galit\u00e9s entre les hommes \u00bb de J.-J. Rousseau en 1755, on sait que des individus rationnels et \u00e9go\u00efstes abandonneront le gain important collectif pour un gain plus petit mais individuel.\r\n<br\/>\r\n<br\/>\t\r\nEn 1981, Robert Axelrod et William Hamilton publi\u00e8rent un article qui allait se transformer en un livre apr\u00e8s que le premier, un sp\u00e9cialiste de science politique, eut demand\u00e9 dans un grand nombre de revues en Sciences Humaines, qu\u2019on lui transmette des strat\u00e9gies qu\u2019il pourrait opposer les unes aux autres dans un tournoi bati sur un dilemme du prisonnier r\u00e9p\u00e9t\u00e9. L\u2019id\u00e9e \u00e9tait de v\u00e9rifier quelle serait la strat\u00e9gie qui dans un nombre fini d\u2019interactions l\u2019emporterait dans un tournoi de type Round-Robin (toutes les strat\u00e9gies sont confront\u00e9es les unes aux autres et la vainqueure est celle qui accumule le plus grand nombre de victoires).\r\n<br\/>\r\n<br\/>\t\r\nLe r\u00e9sultat fut l\u2019\u00e9mergence de la strat\u00e9gie bienveillante la plus simple : Donnant-Donnant (ou en anglais Tit-for-Tat) qui trahit si elle a \u00e9t\u00e9 trahie dans le tour pr\u00e9c\u00e9dent mais revient \u00e0 \u00e0 la coop\u00e9ration imm\u00e9diatement apr\u00e8s. L\u2019avantage d\u2019une telle strat\u00e9gie est qu\u2019elle incite \u00e0 la coop\u00e9ration peut \u00eatre pour une mauvaise raison (la peur d\u2019\u00eatre trahie si on trahit).\r\n<br\/>\r\n<br\/>\t\r\nCette page reconstruit les deux tournois d\u2019Axelrod, mais elle permet aussi de s\u2019interroger sur la forme du tournoi. De plus, elle permet de se poser une autre question : si l\u2019association entre une strat\u00e9gie et une entit\u00e9 vivante est logique en biologie, l\u2019est-elle quand il s\u2019agit d\u2019individus ?\r\n\r\n<\/p>\r\n\r\n<div>\r\n\t<h2>Liste des m\u00e9thodes <\/h2>\r\n\t<h4>Premier Tournois (1980)<\/h4>\r\n\t<div style=\"display:flex;justify-content:space-around;\">\r\n\t\t<p style=\"width:200px;\">Key<\/p>\r\n\t\t<p style=\"width:200px;\">Intitul\u00e9<\/p>\r\n\t\t<p style=\"width:300px;\">Signature<\/p>\r\n\t<\/div>\r\n\t<div id=\"liste_methodes\">\r\n\t<\/div>\r\n<\/div>\r\n<hr\/>\r\n<div>\r\n\t<h2>Explications de l&#8217;impl\u00e9mentation<\/h2>\r\n\t<p> Les signatures des fonctions ont \u00e9t\u00e9 harmonis\u00e9es. Les arguments pass\u00e9s \u00e0 la fonction sont d\u00e9finis de la mani\u00e8re suivante <\/p>\r\n\t<ul>\r\n\t\t<li>choixAdv : valeur de l&#8217;adversaire au coup pr\u00e9c\u00e9dent  C ou T <\/li>\r\n\t\t<li>choixMe :  valeur du candidat au coup pr\u00e9c\u00e9dent   C ou T<\/li>\r\n\t\t<li>histoAdv : historique des choix  de l&#8217;adversaire [&#8216;C&#8217;,&#8217;T&#8217;]<\/li>\r\n\t\t<li>histoMe : historique des choix du candidat [&#8216;C&#8217;,&#8217;T&#8217;]<\/li>\r\n\t<\/ul>\r\n\t<p> Lors de l&#8217;ex\u00e9cution des fonctions il nous suffit de remplacer les arguments par les variables en cours Choix1, Choix2, Histo1 ou Histo2 ce qui permet de fournir le contexte d&#8217;ex\u00e9cution \u00e0 la fonction et de retourner la r\u00e9ponse <\/p>\r\n\t\r\n<\/div>\r\n\r\n<script>\r\n\tconst chargement_strategies=function() {\r\n\t\t\/\/ alimentation des methodes dans la zone liste_methodes\r\n\t\tconst Zone=document.getElementById(\"liste_methodes\");\r\n\t\ttableau_strategies[\"Premier Tournois (1980)\"].forEach(strateg=> {\r\n\t\t\t\/\/ key text signature \r\n\t\t\tconst Zdiv=document.createElement(\"div\");\r\n\t\t\tZdiv.setAttribute(\"style\",\"display:flex;justify-content:space-around;\");\r\n\t\t\tZone.appendChild(Zdiv);\r\n\t\t\t\/\/ on ajoute le d\u00e9tail \r\n\t\t\tconst Zkey=document.createElement(\"p\");\r\n\t\t\tZkey.setAttribute(\"style\",\"width:200px;\");\r\n\t\t\tZkey.innerHTML=strateg[\"key\"];\r\n\t\t\t\r\n\t\t\tconst Ztext=document.createElement(\"p\");\r\n\t\t\tZtext.setAttribute(\"style\",\"width:200px;\");\r\n\t\t\tZtext.innerHTML=strateg[\"text\"];\r\n\t\t\t\r\n\t\t\tconst Zsignature=document.createElement(\"p\");\r\n\t\t\tZsignature.setAttribute(\"style\",\"width:300px;\");\r\n\t\t\tZsignature.innerHTML=strateg[\"signature\"];\r\n\t\t\t\r\n\t\t\tZdiv.appendChild(Zkey);\r\n\t\t\tZdiv.appendChild(Ztext);\r\n\t\t\tZdiv.appendChild(Zsignature);\r\n\t\t\t\/\/ ajout du detail de la m\u00e9thode \r\n\t\t\tconst Zdetail=document.createElement(\"details\");\r\n\t\t\tZdetail.setAttribute(\"class\",\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\");\r\n\t\t\tconst Zdsummary=document.createElement(\"summary\");\r\n\t\t\tZdsummary.setAttribute(\"style\",\"color:white;margin:-40px 0px 0px 0px;\");\r\n\t\t\tZdsummary.innerHTML=\"<i class='fa fa-eye'><\/i>\";\r\n\t\t\tconst Zcontenu=document.createElement(\"p\");\r\n\t\t\tZcontenu.setAttribute(\"class\",\"detail\");\r\n\t\t\t\/\/ il faut ajouter le titre du comments et le text[]\r\n\t\t\tconst title=document.createElement(\"span\");\r\n\t\t\ttitle.setAttribute(\"style\",\"color:black\");\r\n\t\t\ttitle.innerHTML=comments[strateg[\"key\"]].title;\r\n\t\t\tZcontenu.appendChild(title);\r\n\t\t\tconst text=comments[strateg[\"key\"]].text;\r\n\t\t\ttext.forEach(txt=> {\r\n\t\t\t\tconst stxt=document.createElement(\"p\");\r\n\t\t\t\tstxt.setAttribute(\"style\",\"color:black\");\r\n\t\t\t\tstxt.innerHTML=txt;\t\t\t\t\r\n\t\t\t\tZcontenu.appendChild(stxt);\r\n\t\t\t})\r\n\t\t\tZdetail.appendChild(Zcontenu);\r\n\t\t\tZdetail.appendChild(Zdsummary);\r\n\t\t\tZone.appendChild(Zdetail);\r\n\t\t\t\r\n\r\n\t\t})\r\n\t}\r\n\tchargement_strategies();\r\n\t\r\n<\/script>\r\n\r\n\n\n\n<pre class=\"wp-block-code\"><code>        \/\/ ---------------------------------------------------\n        \/\/ gestion des parties: \n        \/\/ ---------------------------------------------------\n        async function game_start(fighter1,fighter2) {\n\t    pas_score=1\/nb_duels;\n            game_init();\n\t    pas=0;\n            fct1=fighter1.strategie.signature;\n            fct1=fct1.replace(\"choixAdv\",\"choix2\").replace(\"HistoAdv\",\"histo2\").replace(\"HistoMe\",\"histo1\");\n            fct2=fighter2.strategie.signature;\n            fct2=fct2.replace(\"choixAdv\",\"choix1\").replace(\"HistoAdv\",\"histo1\").replace(\"HistoMe\",\"histo2\");\n            return await execute(fighter1,fighter2);\n        }\n        async function execute(fighter1,fighter2) { \n\t    let res1=0,res2=0;\n            while (pas&lt;nb_duels) {\n                eval(\"choix1=\"+fct1);\n                histo1.push(choix1);\n                eval(\"choix2=\"+fct2);\n                histo2.push(choix2);\n                \/\/ calcul des scores score1 et score2 \n                &#91;score1,score2]=resultat&#91;choix1+\"-\"+choix2];\n                \/\/ calcul des cumuls Cscore1 et Cscore2\n                res1+=score1;res2+=score2;\n                if (choix1==\"C\")  {CptC1++;pc10_Glider.setGliderPosition(-0.25+CptC1*pas_score);}\n                else   {CptT1++;pc11_Glider.setGliderPosition(-0.25+CptT1*pas_score);}\n                if (choix2==\"C\")  {CptC2++;pc20_Glider.setGliderPosition(-0.25+CptC2*pas_score);}\n                else   {CptT2++;pc21_Glider.setGliderPosition(-0.25+CptT2*pas_score);}\n                pas++;\n                await new Promise(resolve => setTimeout(resolve, 200));\n            } \n\t    fighter1.score+=res1;\n\t    fighter2.score+=res2;\n\t    return res1>res2?1:res2&lt;res1?2:0;\n        }<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-10958","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/spgoo.org\/index.php?rest_route=\/wp\/v2\/pages\/10958","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/spgoo.org\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/spgoo.org\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/spgoo.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/spgoo.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10958"}],"version-history":[{"count":14,"href":"https:\/\/spgoo.org\/index.php?rest_route=\/wp\/v2\/pages\/10958\/revisions"}],"predecessor-version":[{"id":11039,"href":"https:\/\/spgoo.org\/index.php?rest_route=\/wp\/v2\/pages\/10958\/revisions\/11039"}],"wp:attachment":[{"href":"https:\/\/spgoo.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10958"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}