Mines Informatique MP 2002

Thème de l'épreuve Formules de Horn, problème du sac-à-dos et langages conjugués
Principaux outils utilisés algorithmes et complexité, récursion, logique, automates et langages

Corrigé

 :
👈 gratuite pour tous les corrigés si tu crées un compte
👈 l'accès aux indications de tous les corrigés ne coûte que 1 € ⬅ clique ici
👈 gratuite pour tous les corrigés si tu crées un compte
- - - - - - -
👈 gratuite pour ce corrigé si tu crées un compte
- - - - - - - - - - - - - -

Énoncé complet

(télécharger le PDF)
                       

Rapport du jury

(télécharger le PDF)
        

Énoncé obtenu par reconnaissance optique des caractères


J . 2062

A 2002 -- INF -- MP

ÉCOLE NATIONALE DES PONTS ET CHAUSSÉES,
ÉCOLES NATIONALES SUPÉRIEURES DE L' AÉRONAUTIQUE ET DE L'ESPACE,
DES TECHNIQUES AVANCÉES, DES TELECOMMUNICATIONS,
DES MINES DE PARIS, DES MINES DE SAINT--ÊTOENNE, DES MINES DE NANCY,
DES TÉLÉCOMMUNÏCATIONS DE BRETAGNE
ÉCOLE POLYTECHNIQUE
(Filière T.S.I.)

CONCOURS D'ADMISSION 2002

ÉPREUVE D'INFORMATIQUE

Filière MP
(Durée de l'épreuve: 3 heures)

Sujet mis à la disposition des concours Cycle International, ENSTIM et TPE-EIVP.

Les candidats et les candidates sont priés de mentionner de façon
apparente sur la première page de la copie :

« INFORMATIQUE - Filière MP »

RECOMMANDATIONS AUX CANDIDATS ET CANDIDATES

. L'énoncé de cette épreuve, y compris cette page de garde, comporte 8 pages.

0 Si, au cours de l'épreuve, un candidat ou une candidate repère ce qui lui 
semble être une erreur
d'énoncé, il ou elle le signale sur sa copie et poursuit sa composition en 
expliquant les raisons
des initiatives qu'il ou elle a décidé de prendre.

0 Tout résultat fourni dans l'énoncé peut être utilisé pour les questions 
ultérieures même s'il n'a
pas été démontré.

. Il ne faut pas hésiter à formuler les commentaires qui semblent pertinents 
même lorsque
l'énoncé ne les demande pas explicitement.

. L'utilisation d'une calculatrice ou d'un ordinateur est interdite.

COMPOSITION DE L'ÉPREUVE

L'épreuve comprend trois parties indépendantes :

0 un exercice de logique des propositions, n° 1 page 2, à résoudre en 30 mn 
environ ;
0 un problème d'algofithmique, n° 2 page 3, à résoudre en 120 mn environ ;
- un exercice sur les automates, n° 3 page 7, à résoudre en 30 mn environ.

page I/8
Tournez la page S.V.P.

Épreuve d'Informatique

1 Exercice de logique des propositions ---- 30 mn environ

Définitions et notations

On considère un ensemble fini de n variables propositionnelles V : {p1, . . . 
,pn}, et l'ensemble 3"v des
formules construites à partir des variables propositionnelles de V, des 
connecteurs usuels de conjonction

(noté A) et de disjonction (noté V), et de la négation (--.), On considère que 
la formule sans aucune variable

propositionnelle (formule vide), notée T, est un élément de S'y.
Toutes les formules considérées dans cet exercice sont des formules de 3'v.
Pour toute formule F, VF désigne l'ensemble des variables propositionnelles qui 
apparaissent dans F.
On appelle littéral une variable propositionnelle ou bien la négation d'une 
variable propositionnelle. Le

littéral est dit positif dans le premier cas, et négatif dans le second cas.
On appelle clause toute formule de la forme 11 V . . . V lq, où q ; 1 et 11, . 
. . ,lq sont des littéraux deux

à deux distincts.
On dit qu'une formule est sous forme normale conjonctive si elle est sous la 
forme C1 /\ . . . A C..., où

m > 0 et C1, . . . ,C... sont des clauses (pour m = 0, on obtient T).
Une formule de Ham est une formule sous forme normale conjonctive telle que 
chacune de ses clauses

comporte au plus un littéral positif.
Enfin, rappelons qu'une formule est satisfiable s'il existe une valuation à 
valeurs dans {vrai, faux}

de ses variables propositionnelles qui rende la formule vraie. La formule T est 
considérée comme étant
satisfiable.

Énoncé de l'exercice

1 -- Dans les exemples suivants, préciser si les formules sont satisfiables ou 
non. Quand cela est possible,
donner un exemple de valuation des variables propositionnelles qui rende la 
formule vraie.
i) ("Pi VP2) A(P1 V "1292 V "P3)
ii) (P2) /\ ("'P1 V "'P3) /\ ("'P2) A (P1 V "'P3 V "'P4)
iii) (P2) A ("1171 V "';02) A (Pi V "*P2) /\ (P1 V '"P2 V "*P3)

2 -- Soit H une formule sous forme normale conjonctive telle que chacune de ses 
clauses contienne au
moins un littéral négatif. Montrer que H est satisfiable en exhibant une 
valuation de V.

3 -- Soit H une formule de Horn telle qu'une de ses clauses soit restreinte à 
un littéral positif Pk (où le est
dans {l, . . . , n}), et qu'aucune autre de ses clauses ne soit restreinte à 
fipk. Montrer que l'on peut
construire à partir de H une formule de Horn H' telle que:

-- VH' Ç VH\{Pk},
-- H est satisfiable si et seulement si H ' est satisfiable.

4 -- Déduire des deux questions précédentes un algorithme permettant de 
déterminer si une formule de
Horn H est satisfiable ; la complexité dans le pire des cas de cet algorithme 
doit être majorée par un
polynôme en n et m (où n et m désignent respectivement le nombre de variables 
propositionnelles et
le nombre de clauses de H), propriété que l'on justifiera. Cet algorithme sera 
explicité sans utiliser un

langage de programmation.
5 -- Appliquer l'algorithme de la question 4 à l'exemple iii) de la question ].

FIN DE L'EXERCICE DE LOGIQUE DES PROPOSITIONS

page 2/8

Épreuve commune 2002

2 Problème d'algorithmique -- 120 mn environ

Préüminaire. Il faudra écrire des programmes à l'aide d'un langage de 
programmation qui pourra être
soit Pascal, soit Caml, tout autre langage étant exclu. Indiquer le langage de 
programmation choisi.

Attention! Il est interdit de modifier ce choix au cours de l'épreuve.

Le problème du sac à dos

On considère le problème suivant : Madame X doit partir en voyage ; elle 
emporte un sac à dos qui peut
supporter au maximum un poids Q, poids qui est un entier strictement positif. 
Par ailleurs, elle dispose de
n objets numérotés par 0, l, , n -- 1. Pour tout z' appartenant à O, 1, , n -- 
l, l'objet de numéro
z' possède deux caractéristiques : son utilité notée u,-- et son poids noté 
p,-- qui sont des entiers strictement
positifs. Madame X désire emporter certains de ces objets dans son sac à dos; 
le poids total des objets
emportés ne doit pas dépasser Q ; elle cherche à maximiser la somme des 
utilités des objets qu'elle emporte

parmi les contenus possibles ne dépassant pas au total le poids Q.

Attention: pour la programmation que vous aurez à faire ultérieurement:

-- le nombre n est mémorisé dans une variable entière nommée aussi n;

-- les quantités u,-- et p,-- sont mémorisées dans des tableaux d'entiers 
nommés respectivement u et p et
indicés de 0 à n -- 1 ;

-- la quantité Q est mémorisée dans une variable entière nommée aussi Q.

Quand on écrira une fonction (ou une procédure) dans le langage de 
programmation choisi, les tableaux u
et p ainsi que les variables Q et n seront supposés déjà définis comme 
variables globales et initialisés avec

les données du problème. Après l'initialisation, à l'indice i du tableau u 
(resp. p) se trouve la valeur u,--
(fEURSP- Pi)-

Notaüon. Si a: est un nombre réel, Læj désigne la partie entière par défaut de 
a: (c'est--à--dire le plus grand
entier inférieur ou égal à a:) tandis que [a:] désigne sa partie entière par 
excès (c'est--à--dire le plus petit
entier supérieur ou égal à a:).

PREMIÈRE PARTIE
Sac à dos fractionnaîre

Dans cette partie, les objets sont fractionnables. On note a:,-- la quantité de 
l'objet de numéro z' emportée par
Madame X. Le problème s'écrit:

n---1
Maximiser z = z u,--æ,--
i=0
avec les contraintes :
n--1
ZPi--"OE < Q i=0 et pouri EUR {0,1, . .. ,n ---1}, an, EUR [0,1] page 3/8 Tournez la page S.V.P. Épreuve d'Informatique l -- On suppose que, pour tout i appartenant à {l, . . . , n -- 1} : Ui--l Ui Pi-1 Pi On définit un entier z'* compris entre 0 et n par: n--1 si Zp,- < Q, alors z'* : i=0 sip0, > Q, alors lz'*- -- 0
i ----1

sipo ,

i=0 i=0

a -- Montrer qu'une solution maximale pour le problème est donnée par:

pourivérifiant0 --3 sont
Pi--1 Pi

vérifiées, écrire, dans le langage de programmation choisi, une fonction qui 
calcule z' *.

2 -- Remarque: le reste du problème ne dépend pas de cette question 2.

a -- On cherche à déterminer la solution du problème du sac à dos fractionnaire 
sans faire l'hypothèse

que, pour tout z' appartenant à {l, . .. , n -- l} :
U'_1 'U.'
3 > _1 .
Pi--1 Pi

En revanche, on suppose que l'on a Z?____1_0 p,--> , Q.

page 4/8

Épreuve commune 2002

On cherche à déterminer i* appartenant à {0,1, . .. ,n -- 1} et une partition 
de l'ensemble
{0,1, . . . ,n -- l} \ {i*} en deux sous--ensembles I ' et I " de façon à avoir 
simultanément:
pourtoutz EUR I', --3 2 '
Pi Pi*
pour tout] EUR I", ' ; --l
Pi* PJ"
21%" < Q ieI' Fr + 21%" 2 Q ieI' On dit qu'un algorithme est linéaire en une variable 11 liée aux données traitées s'il existe une fonction linéaire de v majorant le nombre d'opérations élémentaires (opérations arithmétiques, comparaisons...) effectuées par cet algorithme pour traiter ces données. On admet qu'on dispose d'un algorithme A qui, étant donné un ensemble E de m éléments ayant chacun une valeur, partitionne cet ensemble en deux sous--ensembles E' et E" de cardinaux res- pectifs L%_| et [%'-l de telle sorte que toutes les valeurs des éléments de E' soient supérieures ou égales à toutes les valeurs des éléments de E" ; on suppose de plus que A est linéaire en m. Expliciter, sans utiliser de langage de programmation, un algorithme récursif (qu'il ne sera pas nécessaire de prouver) utilisant l'algorithme A qui détermine z'*, I ' et I " ; cet algorithme devra être linéaire en n. b -- Prouver la linéarité en n de l'algorithme proposé ci--dessus. Pour simplifier cette preuve, on pourra se restreindre aux valeurs de n qui sont des puissances de 2; on admettra alors que l'algorithme est aussi linéaire lorsque n est quelconque. c -- Déduire des questions 1 - a, 2 -- a et 2 - b qu'on peut résoudre le problème du sac à dos fractionnaire portant sur n objets en un temps majoré par une fonction linéaire de n même si les objets ne sont u- . . , . pas au préalable classés pour que les rapports ---'-- (2 EUR {0,1, . . . ,n ---- 1}) sownt decrmssants. Pi SECONDE PARTIE Sac à dos en 0--1 Dans cette partie, les objets ne sont plus fractionnables : chaque objet est pris ou laissé. Le problème s'écrit : n--1 Maximiser z = 2 u,-æ,-- i=0 avec les contraintes : n----l z Pi$i < Q i=0 et pourz' EUR {0,1, . .. ,n -- 1}, a:,-- E {0,1} On dit que EE : (î5, :::--1, . . . , a:n__1) EUR {0,1}" est réalisable si on a Z?_Çâ p,--îä,'- { Q. On appelle valeur d'une telle solution la valeur correspondante de la fonction 2 ou, autrement dit, la quantité ZÎQJ u,--àÎ,--. Le page 5/8 Tournez la page S.V.P. Épreuve d'Informatique problème consiste donc à déterminer la meilleure solution réalisable, c'est--à--dire celle qui a la plus grande valeur. 3 -- Montrer que le maximum du problème du sac à dos en 0--1 est inférieur ou égal au maximum du 4.. problème de sac à dos fractionnaire ayant les mêmes données numériques. Méthode par séparation Écrire, dans le langage de programmation choisi, un algorithme fondé sur la stratégie diviser pour régner qui exhibe tour à tour toutes les solutions réalisables et mémorise la meilleure. Cet algorithme utilisera le principe esquissé ci-après : la meilleure solution réalisable peut être cherchée successivement parmi les solutions réalisables avec 500 = 1 (s'il en existe) puis parmi celles avec a:0 : 0. La meilleure solution réalisable pour laquelle m0 = 1 peut être cherchée successivement parmi les solutions réalisables avec :r1 : 1 (s'il en existe) puis parmi celles avec oe1 : 0, etc. Avant d'écrire l'algorithme en langage de programmation : - on donnera la signification des différentes variables utilisées (autres que celles introduites par l'énoncé) ; -- on précisera le rôle des fonctions ou procédures utilisées. Indiquer la complexité dans le pire des cas de la méthode par séparation. Méthode par séparation et évaluation Remarque : cette question peut être traitée sans avoir résolu les deux questions précédentes. La méthode par séparation et évaluation améliore la méthode par séparation en utilisant la résolution du problème de sac à dos fractionnaire ; elle se place dans l'hypothèse où, pour tout z' appartenant à u -_ u-- {1,... ,n--1},onaz ' 1) --'- _ pi--l Pi On ne fera qu'esqursser cette méthode à travers un exemple. On associe au problème de sac à dos en 0--1 un arbre binaire décrit ci-dessous. La racine de l'arbre représente l'ensemble de toutes les solutions réalisables. À un sommet (noeud ou feuille) quelconque de l'arbre correspondent un indice z'0 (0 < z'0 < n) et un io-uplet (îîÿ,îzîî, . . . , cc,--0-1) EUR {0,1}io ; ce sommet représente l'ensemble, qui doit être non vide, des solutions réalisables (550,331, . . . ,xn_1) pour lesquelles on a: 550 : EEE, xl : "ff, . . . , æ,0_1 : æ,--0_1 ; ces solutions réalisables seront dites contenues par ce sommet. Si io # n, un tel sommet possède 1 ou 2 fils: un fils correspondant à l'indice du + 1 et à (î'5,âî, . . . ,:r,--0_1, O) et, si p,-O + ZÊ°=BI p,-î{ < Q, un second fils correspondant à l'indice io + 1 et à (55, îî, . . . , su,-0-1, 1). On appelle évaluation d'un sommet un majorant commun aux valeurs de toutes les solutions réalisables contenues par ce sommet. On considère dans toute la fin du problème l'exemple suivant, qui sera appelé le problème ("P) : Maximiser z = 16550 + 21351 + 19332 + 15563 + 13504 + 7335 avec les contraintes : 15OE0 + 22m1 + 20332 + 1733 + 15124 + 9325 < 51 et pourz' E {O, 1,2,3,4,5}, a:,-- E {0,1} (79) page 6/8 Épreuve commune 2002 Une partie de l'arbre associé est dessinée ci--dessous : a -- Déterminer directement la meilleure solution réalisable contenue par le sommet C (obtenu en fixant 1130 = 121 = 1). b -- Déterminer directement la meilleure solution réalisable contenue par le sommet E (obtenu en fixant a:0 : 1, 551 = 0, mg =1). c -- Résoudre le problème de sac à dos fractionnaire ci--dessous : Maximiser 15553 + 13354 + 7335 avec les contraintes : 175133 + 15274 + 9235 < 36 et pouri EUR {3,4, 5}, a:,-- E [0,1] En déduire une évaluation du sommet F (obtenu en fixant 1120 = 1, 931 : æ2 : 0). La solution réalisable optimale du problème (P) peut--elle être contenue dans F ? d -- Montrer, en utilisant la même démarche que dans la question précédente, que la solution réalisable optimale du problème (P) n'est pas contenue dans le sommet G (obtenu en fixant m0 = 0). e -- Déduire des questions précédentes la solution optimale du problème (P). FIN DU PROBLÈME D'ALGORITHMIQUË 3 Exercice sur les automates finis -- 30 mn environ Rappels pour fixer les notations Un alphabet A est un ensemble fini d'éléments, appelés lettres. L'ensemble des suites finies de lettres de A, appelées mots, est noté A'". Le mot vide est noté 1A*. Un langage est une partie de A'". Un automate fini A est un graphe orienté et étiqueté, noté par un quintuplet < Q,A,E,I,T > : A est

un alphabet; Q est l'ensemble (fini) des états de A: ce sont les sommets du 
graphe; I et T, deux sous-
ensembles de Q, sont respectivement l'ensemble des états initiaux et des états 
terminaux de A. Enfin, E,
sous--ensemble de Q >< A >< Q, est appelé ensemble des transitions de A. Une transition (p,a,q) est un arc du graphe, allant de l'état p à l'état q et étiqueté par a ; on la note également p --°> q.

Un calcul de A est un chemin c dans le graphe: (: : pg --cÏï--> p1 --a2--> pg - 
-- &) p... où, pour tout i,

0 < z' { n -- 1, p,-- & p,--+1 appartient à E. L'état pg est l'origine du calcul c, pn l'extrémité de c. La page 7/8 Tournez la page S.V.P. Épreuve d'Informatique longueur du calcul est donnée par le nombre n d'arcs de c. L'étiquette de c est le mot f formé par la suite des étiquettes des transitions successives du calcul c: f : a1a2 . . . an. Le calcul 0 peut aussi être noté pg --î--> p,, ; il est réussi si pg est initial et p,, terminal.

Un mot de A* est reconnu ar l'automate A si c'est l'éti nette d'(au moins) un 
calcul réussi de A. Le
P q

langage reconnu par A, noté L(A), est l'ensemble des mots reconnus par A. Un 
langage est reconnaissable
s'il est reconnu par un automate fini.

On dira qu'un automate A = < Q,A,E,I,T > est normalisé si:
i) 1 est un singleton, I = {2}, qui n'est l'extrémité d'aucune transition de A;
ii) T est un singleton, T = {t}, qui n'est l'origine d'aucune transition de A.

Un automate normalisé est donc naturellement représenté par le schéma 
ci-dessous (noter que certaines
transitions peuvent aussi aller de i à t, même si elles n'apparaissent pas sur 
le schéma).

Énoncé de l'exercice

Si un mot f de A* se factorise en f : uv, avec u et U dans A'", le mot 9 = ou 
est un conjugué de f.
Soit Con j: A* --> P(A*) l'application qui à un mot f fait correspondre 
l'ensemble de ses conjugués :

Conj(f) : {ou | (u,v) EUR (A')2 avec uv : f}.
En particulier, pour tout f, f E Conj(f) puisque f = 1,4- f : f1A- et, pour 
tout f E A U {1A.},
Conj( f ) = {f}. L'application s'étend par additivité : si L est un langage, 
Conj(L) : U fe L Conj( f ).

Dans tout l'exercice, L est un langage reconnu par un automate fini. L'objet de 
l'exercice est de
montrer que Conj (L) est reconnaissable.

l -- Montrer que L \ {l A--} est reconnu par un automate (fini) normalisé.
2 -- Soient A = < Q,A,E,{i},{t} > un automate normalisé qui reconnaît le 
langage L \ { 1 A--} et q un
état de A distinct de z' et t. A chaque calcul réussi de A qui passe par q (et 
donc de longueur au moins

égale à 2) d'étiquette f : f1f2: z' --Ê--> q --â--> t, on associe le conjugué g 
: f2f1 de f et on note G'q

l'ensemble des mots obtenus de cette façon:

GQ = {g : f2f1 | i --Î--l--> q --Ë> test un calcul réussi de A}.

Construire un automate qui reconnaît le langage G.,.
3 -- Montrer que Conj(L) est reconnaissable.

FIN DE L'EXERCICE SUR LES AUTOMATES

FIN DE L'ÉPREUVE

page 8/8