Retourneraucontenuassocié(journal:Résolutionnaïved'unjeudesociété) Re:VersionASP(AnswerSetProgramming) Postépareingrossfiloule21/07/15à01:25.EnréponseaujournalRésolutionnaïved'unjeudesociété. Évaluéà3(+3/-0). JeneconnaissaitpasASP,maisaprèsunerapiderecherche,c'estpurementdéclaratif,etdoncc'est«l'interpréteur» quis'occupedefairelavéritableexplorationsij'aibiencompris,alorsquemonobjectifétaitdefaireunparcoursen largeuràgroscoupdeconcat.map. C'estàpeuprèsça,mêmesionvadirequeladéfinitionfrançaiseproposéeparWikipédiaesttrèslimitée.La versionanglaise Westmieux. L'idée ici était surtout de te proposer une autre manière de rechercher des solutions à ricochet robots (essentiellement à des fin de comparaison, mais aussi parce ricochet robots c'est cool et qu'il n'y a pas beaucoupd'IApourcejeu) ASPestunformalismequipermetdefairedelaprogrammationparcontrainteetdel'optimisationautravers de la programmation logique. Généralement, on s'en sert pour résoudre de problème NP-complet. Ton programmeASPestunedescriptiondetonproblèmesousformelogique.Ensuitecherchedessolutionsàton problème en utilisant un solveur auquel tu donneras la définition du problème, les données, et éventuellementunestratégiederecherche(commeunparcoursenlargeurouenprofondeurdel'espacede rechercheparexemple). Silesujett'intéressedavantage,tupourrasconsulterlescoursdisponiblesiciquandsourceforgetomberaen marche. Ducoup,quelestl'avantaged'ASPparrapportàunebibliothèquederésolutionenpythonparexemple?Parcequ'ily aquandmêmedesdésavantages: ASP est prévu pour faire de la programmation logique, comme python est prévu pour faire de la programmationimpérative.Enfonctiondecequetucherchesàfaire,l'unestplusadaptéquel'autre,mais rien ne t'empêche de faire un solveur en python (ou haskell), c'est un bon exercice. D'ailleurs je trouve ta démarchesuperbien. 1. Pasd'interactionutilisateurpossibleenrestantdéclaratif Alors,çac'esthorsdelapartierésolutionduproblème.Généralement,tubrancheslesolveuràautrechose. ParexempletupeuxutiliserASP(gringoetclasp)avecpython.Après,enfonctiondetonsolveur,tuasdes fonctionsdecontrôlepourinteragiraveclesolveurlui-même(parexempleinterromprelecalculouobtenirun résultatintermédiairesuboptimal) 1. Ledebugduprogrammesefaitvialesoptionsfourniespasl'interpréteur Normalement, ton programme est un ensemble de définitions mathématiques. Pour vérifier que tout fonctionnebien,tufaisdespreuves.Aupiretuutilisesdesexemplesreprésentatifsdetesdifférentscasde figure.Situasunsoucisaveclesrésultats,c'estsoitquequ'ilyaunproblèmedanstesdéfinitions,soitquele solveurcontientuneerreur.Ilarriveaussiquetuteplantesdanslerésultatattendud'undetesexemples. 1. Quiddel'intégrationdansunvéritableprogramme(parexempleentantqu'IAdansunjeuinteractif)? Làencore,çanedépendquedecommenttumodélisestonIA.Lesolveurestjusteunebriqueàlaquelletute branchesàl'aidedebibliothèquesoudewrappersetàlaquelletuvafairedes"requêtes".Enfonctiondetes contraintes,tuchoisirasunsolveurplutôtqu'unautre.Danslecasdericochetrobots,tupeuxvisezunsolveur qui,pourchaquecible,tedonnesuneréponse(1)optimalequandilaparcourutoutl'espacederechercheou (2) une réponse suboptimale (et peut-être optimale) quand tu lui demandes (comme au bout des 50 secondesaprèslaréponsedupremierjoueur). Tupeuxaussienvisagerquetonsolveurneparcourspastoutl'espacederecherche,maisparcoursjusteton espacederecherchedefaçonaléatoire.Danscecas,tunepourrasjamaisdirequ'iln'apasdesolution,mais danslecasdericochetrobots,ilmesemblequ'ilexistetoujoursunesolution. J'espèrequec'estassezclair.