Jeux à plusieurs et coalitions



Documents pareils
Cours de Probabilités et de Statistique

Définitions. Numéro à préciser. (Durée : )

Statistiques II. Alexandre Caboussat Classe : Mardi 11h15-13h00 Salle : C110.

Calculs de probabilités

BACCALAURÉAT PROFESSIONNEL ÉPREUVE DE MATHEMATIQUES. EXEMPLE DE SUJET n 2

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Architecture des Systèmes d Information Architecture des Systèmes d Information

Qu est-ce qu une probabilité?

Probabilités conditionnelles Loi binomiale

Les nombres entiers. Durée suggérée: 3 semaines

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Suites numériques. Exercice 1 Pour chacune des suites suivantes, calculer u 1, u 2, u 3, u 10 et u 100 : Introduction : Intérêts simpleset composés.

Objets Combinatoires élementaires

Plus petit, plus grand, ranger et comparer

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

TS 35 Numériser. Activité introductive - Exercice et démarche expérimentale en fin d activité Notions et contenus du programme de Terminale S

BACCALAURÉAT GÉNÉRAL SESSION 2012 OBLIGATOIRE MATHÉMATIQUES. Série S. Durée de l épreuve : 4 heures Coefficient : 7 ENSEIGNEMENT OBLIGATOIRE

Seconde Généralités sur les fonctions Exercices. Notion de fonction.

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

FONDEMENTS MATHÉMATIQUES 12 E ANNÉE. Mathématiques financières

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

PROBABILITÉS CONDITIONNELLES

Indications pour une progression au CM1 et au CM2

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Algorithmique et Programmation, IMA

Entraînement au concours ACM-ICPC

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

EXCEL TUTORIEL 2012/2013

Probabilité. Table des matières. 1 Loi de probabilité Conditions préalables Définitions Loi équirépartie...

Algorithmes récursifs

Module 16 : Les fonctions de recherche et de référence

Université Paris-Dauphine DUMI2E 1ère année, Applications

STAGE IREM 0- Premiers pas en Python

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

L INTEGRATION D UN NOUVEAU COLLABORATEUR

Coefficients binomiaux

Probabilités. C. Charignon. I Cours 3

Poker. A rendre pour le 25 avril

LES DECIMALES DE π BERNARD EGGER

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

GOL502 Industries de services

1 Introduction au codage

Quelques algorithmes simples dont l analyse n est pas si simple

Concours National d Informatique. Sujet de demi-finale Montpellier et Toulouse

La fonction exponentielle

Décision Markovienne appliquée à un jeu de stop ou encore : Pickomino (Heckmeck Am Bratwurmeck)

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Exercices Corrigés Premières notions sur les espaces vectoriels

Exercices de dénombrement

Durée de L épreuve : 2 heures. Barème : Exercice n 4 : 1 ) 1 point 2 ) 2 points 3 ) 1 point

Initiation à la programmation en Python

Problèmes de Mathématiques Filtres et ultrafiltres

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Premiers exercices d Algèbre. Anne-Marie Simon

Création d'un questionnaire (sondage)

Conversion d un entier. Méthode par soustraction

Logiciel de Base. I. Représentation des nombres

1 Lecture de fichiers

Traduction des Langages : Le Compilateur Micro Java

Exe Livret Animateur_Exe Livret Animateur 01/02/11 11:10 Page1

Analyse Combinatoire

LES DÉTERMINANTS DE MATRICES

1 Recherche en table par balayage

Cours d Analyse. Fonctions de plusieurs variables

Initiation à Excel. Frédéric Gava (MCF)

Programmation Objet - Cours II

(Mis à jour : 7 déc. 12)

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Complément d information concernant la fiche de concordance

Petit lexique de calcul à l usage des élèves de sixième et de cinquième par M. PARCABE, professeur au collège Alain FOURNIER de BORDEAUX, mars 2007

Assistant d e tablissement de Tableaux

DÉTERMINATION DU POURCENTAGE EN ACIDE D UN VINAIGRE. Sommaire

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Le coloriage virtuel multiple et ses applications

AGRÉGATION «ÉCONOMIE ET GESTION»

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

S initier aux probabilités simples «Question de chance!»

Les structures. Chapitre 3

Baccalauréat ES Amérique du Nord 4 juin 2008

Les probabilités. Guide pédagogique Le présent guide sert de complément à la série d émissions intitulée Les probabilités produite par TFO.

Recherche dans un tableau

Chaînes de Markov au lycée

Probabilités conditionnelles Exercices corrigés

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

Problèmes de dénombrement.

Accompagnement en Chantier d insertion

UNE EXPERIENCE, EN COURS PREPARATOIRE, POUR FAIRE ORGANISER DE L INFORMATION EN TABLEAU

V- Manipulations de nombres en binaire

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Les deux points les plus proches

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

Partie 1. Fonctions plus complexes dans Excel. Fonctions Si(), Et(), Ou() et fonctions imbriquées. Opérateurs logiques. I.1.

Transcription:

Jeux à plusieurs et coalitions Épreuve pratique d algorithmique et de programmation Concours commun des écoles normales supérieures Durée de l épreuve: 3 heures 30 minutes Juillet 2005 Important. Lorsque la description d un algorithme est demandée, vous devez présenter son fonctionnement de façon schématique, courte et précise. Vous ne devez en aucun cas recopier le code de vos procédures! Quand on demande la complexité en temps ou en mémoire d un algorithme en fonction d un paramètre n, on demande l ordre de grandeur en fonction du paramètre, par exemple: O(n 2 ), O(n log n),... Il est recommandé de commencer par lancer vos programmes sur de petites valeurs des paramètres et de tester vos programmes sur des petits exemples que vous aurez résolus préalablement à la main.

1 Préambule Soit (u n ) n N la suite définie par : u 0 est le numéro inscrit sur votre table d examen, et u n+1 = (101u n + 269) mod 4 890 367 Question 1 Que valent u 1? u 100? u 1 000? d) Quel est le nombre de i avec 1 i 4 999 tels que u i + u 5 000 i u 1 + u 4 999? 2 Opérations ensemblistes Définir une structure de données permettant de représenter des ensembles finis de n-uplets d entiers naturels. (L entier n variera d un ensemble à l autre, mais deux éléments d un même ensemble seront toujours des n-uplets avec le même n inférieur ou égal à 6.) On pourra par exemple représenter l ensemble fini { x 1,..., x k } sous forme d une liste, triée ou non, contenant x 1,..., x k sans répétition ( x i x j pour tous i j). En général, le choix de la structure de données utilisée est laissée à l appréciation du candidat. Question 2 En utilisant cette structure de données, écrire des fonctions : s_egal prenant deux ensembles finis en argument, et retournant vrai si et seulement si les deux ensembles sont égaux. Par exemple, si les deux ensembles sont codés sous forme de deux listes [ x 1,..., x k ] et [ x 1,..., x k ], ils sont égaux si et seulement si la deuxième liste est une permutation de la première. s_vide calculant l ensemble vide. s_singl prenant un élément x et retournant le singleton { x}. s_union calculant l union de deux ensembles en argument. s_inter calculant l intersection de deux ensembles en argument. s_card calculant le cardinal de l ensemble en argument. (Vous pourrez avoir à en écrire d autres dans la suite.) Vous présenterez à l oral les algorithmes que vous avez utilisés, ainsi que leurs complexités. Question 3 Testez vos programmes en répondant aux questions suivantes. Combien y a-t-il d éléments dans {(0, 0, 1)} {(0, 2, 1)}? {(0, 0, 1)} {(0, 0, 1)}? l intersection des deux ensembles précédents? Question 4 Combien y a-t-il d éléments dans A, défini par A = {(x, y, z) 0 x, y, z 10, x 2 + y 2 = z 2 }? B, défini par B = {(u 3n mod 11, u 3n+1 mod 11, u 3n+2 mod 11) 0 n 100}? l intersection A B des deux ensembles précédents? d) Lister explicitement les éléments de A B. 1 / 6

3 Jeux On considère des jeux, définis comme suit. Un jeu est un quadruplet (J, C, t, δ), où : J est un ensemble fini, dont les éléments sont appelés les joueurs. C est un ensemble dit de positions du jeu. La fonction t : C J attribue à chaque position le joueur dont c est le tour de jouer. La fonction δ : C P(C) associe à chaque position c l ensemble δ(, possiblement vide, des positions vers lesquelles le joueur t( peut aller en jouant un coup du jeu. Un exemple est le jeu de Nim. Dans ce jeu, deux joueurs doivent enlever à tour de rôle une à trois allumettes d un tas d allumettes donné commun aux deux joueurs. Le premier joueur qui n a plus d allumette à enlever perd. Ici, l ensemble des joueurs J est l ensemble {1, 2}, et l ensemble des positions C est l ensemble des couples (j, k), où j J est le numéro du joueur dont c est le tour de jouer, et k N est le nombre d allumettes restantes. La fonction t envoie (j, k) vers j, et on a : δ(j, k) = {(j + 1 mod 2, k ) k N, k 3 k k 1}. En général, un jeu peut avoir plus de deux joueurs. Le jeu que nous allons étudier est une généralisation du jeu de Nim, noté Nim(N, n, K, r), où N, n, K, r N sont des paramètres. Il contient N joueurs notés 1, 2,..., N ; autrement dit J = {1, 2,..., N}. Les positions sont des (n + 1)-uplets c = (j, k 1,..., k n ), signifiant que c est au joueur j de jouer, et qu il y a k i allumettes dans la colonne i, avec 0 k i K, pour tout i, 1 i n. Ainsi, t(j, k 1,..., k n ) = j. Dans la variante étudiée ici, l ensemble des coups possibles δ( est défini comme suit : δ(j, k 1,..., k n ) = { ((j mod N) + 1, k 1,..., k n ) k 1,..., k n N, tels que (d 1,..., d n ) R avec k 1 + d 1 = k 1 et... et k n + d n = k n } où R est l ensemble des n-uplets suivant, appelé ensemble des règles : R = {(u in mod 5, u in+1 mod 5,..., u in+n 1 mod 5) 0 i r 1} {(0, 0,..., 0)} Question 5 Lister les règles de R lorsque : n = 2, r = 2 ; et n = 3, r = 3. Question 6 Écrire un programme calculant δ( pour chaque configuration c de C, l ensemble des configurations de Nim(N, n, K, r). Que vaut δ( lorsque N = 2, n = 2, K = 20, r = 2, c = (1, 5, 9)? N = 2, n = 3, K = 20, r = 3, c = (2, 3, 7, 2)? N = 3, n = 5, K = 20, r = 6, c = (1, 1, 9, 3, 4, 7)? Question 7 Écrire un programme pre qui prend en entrée un ensemble J J de joueurs et un ensemble de positions τ, et retourne l ensemble des positions telles que c est à un joueur de J de jouer et qu il existe un coup qui mène dans τ, c est-à-dire : pre (J, τ) = {c C t( J et c δ( tel que c τ} 2 / 6

Que vaut pre (J, τ) lorsque N = 2, n = 2, K = 20, r = 2, J = {1}, τ = {(2, 1, 5)}? N = 2, n = 2, K = 3, r = 2, J = {1}, τ = {(2, 1, 1)}? N = 2, n = 3, K = 5, r = 3, J = {1}, τ = {(2, 1, 2, 3), (1, 3, 2, 1)}? Question 8 Écrire un programme pre qui prend en entrée un ensemble J J de joueurs et un ensemble de positions τ, et retourne l ensemble des positions telles que ce n est pas à un joueur de J de jouer, mais que quel que soit le coup joué, la position suivante est dans τ : pre (J, τ) = {c C t( J et c δ(, c τ} Combien y a-t-il d éléments dans pre (J, τ) lorsque N = 2, n = 2, K = 4, r = 2, J = {1}, τ = {(2, 0, 0)}? N = 2, n = 2, K = 3, r = 2, J = {1}, τ = {(2, 1, 1)}? N = 2, n = 3, K = 5, r = 3, J = {1}, τ = {(2, 0, 0, 0)}? Question 9 Écrire un programme pre qui prend en entrée un ensemble J J de joueurs et un ensemble de positions τ, et retourne pre(j, τ) = pre (J, τ) pre (J, τ) Pour N = 2, n = 2, K = 20, r = 2, combien y a-t-il de positions c dans pre({1}, {(j, k 1, k 2 ) j J, k 1 2, k 2 2})? combien y en a-t-il telles que t( = 2? Pour N = 3, n = 3, K = 5, r = 3, que valent les cardinalités de pre({1}, {(j, 0, 0, 0) j J}? d) pre({1, 2}, {(j, 0, 0, 0) j J}? e) pre(, {(j, 0, 0, 0) j J}? Question 10 Écrire un programme until qui prend en entrée un ensemble J J de joueurs, deux ensembles σ et τ de positions, et calcule until(j, σ, τ) = n N until n (J, σ, τ) où until 0 (J, σ, τ) = τ until n+1 (J, σ, τ) = until n (J, σ, τ) (pre(j, until n (J, σ, τ)) σ) Indication : on observera que (until n (J, σ, τ)) n N forme une suite croissante d ensembles de positions, pour l ordre d inclusion. L ensemble de toutes les positions étant fini, cette suite est stationnaire : il existe un entier n tel que until k (J, σ, τ) = until n (J, σ, τ) pour tout k n. En particulier, until n (J, σ, τ) = until n+1 (J, σ, τ) pour cet n. Réciproquement, il est facile de 3 / 6

voir que si until n (J, σ, τ) = until n+1 (J, σ, τ) pour un certain entier n, alors until k (J, σ, τ) = until n (J, σ, τ) pour tout k n. Pour N = 3, n = 3, K = 5, r = 3, que valent les cardinalités de until({1}, {(j, k 1, k 2, k 3 ) C j J, k 2 k 3 }, {(j, k 1, k 2, k 3 ) C j J, j 1, (d 1, d 2, d 3 ) R, i, 1 i 3 tel que d i > k i })? until({1, 2}, {(j, k 1, k 2, k 3 ) C j J, }, {(j, k 1, k 2, k 3 ) C j J, j 2, (d 1, d 2, d 3 ) R, i, 1 i 3 tel que d i > k i })? 4 Logique du temps alternant Étant donné un jeu (J, C, t, δ), on définit des formules F comme suit. La logique résultante s appelle ATL ( alternating time logic ). Ces formules spécifient des propriétés de positions du jeu, et on définira ce que veut dire que F est vraie à la position c C, en notation c = F, en même temps que l on définira les formules F elles-mêmes. Le symbole tour J est une formule pour tout J J. On a c = tour J si et seulement si t( J c est au tour d un joueur de J de jouer. Si F et G sont deux formules, alors F G, F G, F, F G,, sont des formules. On a c = F G ( F et G ) si et seulement si c = F et c = G ; c = F G ( F ou G ) si et seulement si c = F ou c = G ; c = F ( non F ) si et seulement si c = F ; c = F G ( si F alors G ) si et seulement si c = F ou c = G ; c = toujours ( vrai ) ; c = jamais ( faux ). Si F est une formule et J J un ensemble de joueurs, alors J F est une formule. On a c = J F si et seulement si, informellement, les joueurs de J peuvent former une coalition, de sorte que quoi que fassent les autres joueurs, la position atteinte après un coup vérifie F. Formellement, c = J F si et seulement si t( J et il existe un coup que t( peut jouer, c est-à-dire il existe c δ(, tel que c = F, ou bien t( J et quoi que t( joue, c est-à-dire pour tout c δ( on a c = F. Si F et G sont deux formules et J J un ensemble de joueurs, alors J F Until G est une formule. Informellement, J F Until G est vraie si et seulement si les joueurs de J peuvent se coaliser pour que, quoi que fassent les autres joueurs, on finisse par arriver en un nombre fini arbitraire de coups à une position où G est vraie, et en attendant, F est restée vraie à toutes les positions intermédiaires. Formellement, c = J F Until G est vraie si et seulement si il existe un entier n N tel que c = J F Until n G, où la formule J F Until n G est définie par J F Until 0 G = G J F Until n+1 G = ( J F Until n G) (F ( J ( J F Until n G))) Par exemple, la formule tour J J signifie informellement qu il y a un joueur de J qui peut jouer tout de suite (c est son tour, tour J, et les joueurs de J peuvent former une coalition de sorte à pouvoir jouer un coup). 4 / 6

Encore à titre d exemple, la formule Until tour J signifie que quoi que l on fasse, au bout d un moment ce ne sera plus le tour de jouer d aucun joueur de J (quoi que fassent les joueurs, au bout d un moment tour J deviendra faux). La formule Until (tour J ( J )) signifie que quoi qu il arrive, au bout d un moment un joueur de J pourra jouer : en effet, quoi que fassent les joueurs, au bout d un moment la formule tour J J vue plus haut sera vraie. Notre dernier exemple sera la formule tour J\J ( J ), où \ désigne la différence ensembliste. Elle exprime que c est le tour d un opposant, c est-à-dire un joueur hors de la coalition J, mais que tous les opposants sont bloqués. En effet, J signifie que les joueurs de J peuvent les empêcher de jouer. Question 11 Écrire un programme prenant en entrée quatre entiers N, n, K, r, ainsi qu une formule F, et retourne l ensemble des positions c du jeu Nim(N, n, K, r) telles que c = F. On pourra s aider des fonctions pre et until de la partie 3. Soit F J la formule J ( J ) Until (tour J\J ( J )) qui exprime que les joueurs de J peuvent se coaliser de sorte à faire perdre un joueur de J \ J, après un nombre fini indéterminé de coups. Dans le jeu Nim(N, n, K, r), on dira qu une position initiale est une position de la forme (j, k 1,..., k n ) avec k 1 = k 2 =... = k n = k, où k K. Pour N = 3, n = 2, K = 20, r = 3, Quelles sont les positions initiales où le joueur 1 est sûr de gagner? (les c initiaux tels que c = F {1}?) Combien y a-t-il de positions c à partir desquelles 1 est sûr de gagner (combien y a-t-il de c tels que c = F {1}?) Combien y a-t-il de positions c à partir desquelles 1 et 2 peuvent s allier pour être sûr que 3 perde (combien y a-t-il de c tels que c = F {1,2}?) d) Parmi celles-ci, combien sont initiales? Question 12 On va essayer de déterminer s il vaut mieux jouer tout seul, jouer en collaborant avec d autres joueurs, ou bien d abord collaborer avec d autres pour mieux les trahir ensuite. On définit les formules : Gagne j = {j} ( J ) Until (tour J\{j} {j} ) P erd j = Gagne j T raitre 1 = {1, 2} ( J ) Until (P erd 3 Gagne 1 ) où Gagne j exprime que le joueur j peut jouer seul et gagner (en faisant perdre un autre joueur), P erd j exprime que le joueur j est à une position où il ne peut plus gagner seul, et T raitre 1 exprime que le joueur 1 peut gagner en collaborant d abord avec 2 jusqu au moment où l on est sûr que 3 va perdre s il joue seul, à partir duquel 1 rompt son alliance avec 2 et joue seul. Combien y a-t-il de positions c telles que c = T raitre 1 pour N = 3, n = 2, K = 20, r = 3? Combien de ces positions sont-elles initiales? 5 / 6

6 / 6

Jeux à plusieurs et coalitions Nom, prénom, u 0 :......................................... Question 1 d) Question 2 Question 3 Question 4 d) Question 5 Question 6 Question 7 Question 8 Question 9 d) e) Question 10 Question 11 d) Question 12 I / I