M ATHÉMATIQUES ET SCIENCES HUMAINES
E MMANUEL P ICHON P HILIPPE L ENCA F ABRICE G UILLET J IAN W EI W ANG
Un algorithme de partition d’un produit direct d’ordres totaux en un nombre minimum de chaînes
Mathématiques et sciences humaines, tome 125 (1994), p. 5-15
<http://www.numdam.org/item?id=MSH_1994__125__5_0>
© Centre d’analyse et de mathématiques sociales de l’EHESS, 1994, tous droits réservés.
L’accès aux archives de la revue « Mathématiques et sciences humaines » (http://
msh.revues.org/) implique l’accord avec les conditions générales d’utilisation (http://www.
numdam.org/conditions). Toute utilisation commerciale ou impression systématique est consti- tutive d’une infraction pénale. Toute copie ou impression de ce fichier doit conte- nir la présente mention de copyright.
Article numérisé dans le cadre du programme Numérisation de documents anciens mathématiques
http://www.numdam.org/
UN ALGORITHME DE PARTITION D’UN PRODUIT DIRECT D’ORDRES TOTAUX EN UN NOMBRE MINIMUM DE CHAINES
Emmanuel
PICHON1,2,3 Philippe LENCA1,3, Fabrice GUILLET1,3
et Jian WeiWANG3,4
RESUMÉ - Cette étude s’inscrit dans un prolongement
algorithmique
d’un travail de Bruno Leclerc,publié
dans cette revue, qui discute de la taille maximum d’une antichaîne dans unproduit
direct P d’ordrestotaux. On y présente un algorithme de partitionnement de P en un nombre minimum de chaînes. Enfin, on décrit
brièvement une application à l’extraction de connaissance.
SUMMARY - An algorithm for partitioning a direct product of linear orders into a minimum number of chains.
This paper concerns an
algorithmic
extension of a workby
Bruno Leclercpublished
in this Journal. He discusses the maximumcardinality of
an antichain in the directproduct
Pof
linear orders. We present an algorithm for partitioning P into a minimum number of chains. We alsobriefly
describe an application in thefield
ofknowledge
extraction.1. INTRODUCTION
Comment
deviner,
dans un ensemble ordonnéP,
une antichaine A enposant
un nombre minimum dequestions
dutype :
x est-il au-dessus de A?(réponse
Oui ouNon).
Unestratégie possible (et
pourvue dequelques
vertusrécursives)
consiste àpartitionner
P en un nombreminimum de chaînes sur
lesquelles
onapplique
uneprocédure
de recherchedichotomique.
Lacomplexité
de cetalgorithme
estmajorée
par aLog2 h
où a est lalargeur
de P(taille
minimum d’une
partition
enchaînes)
et h la hauteurde P (taille
maximum d’unechaîne).
Cetteborne ne tient
compte
ni de la diversité des chaînes dans unepartition optimale
deP,
ni deséliminations
produites,
sur les chaînessuivantes,
par l’examen de la chaîne courante. Elle estcependant
atteintelorsque
P est la sommedisjointe
d’une famille de chaînes de même taille(l’algorithme
fournit dans ce cas le nombre effectivement maximal dequestions
à poser ; ainsia
Log2 h
est lacomplexité théorique
duproblème).
La détermination de la taille minimum d’une
partition
en chaînes d’un ensemble ordonnéP,
ou defaçon équivalente,
de la taille maximum d’une antichaîne de P est, engénéral,
NP-difficile. Elle
peut
devenir facilelorsque
P vérifie lapropriété
deSperner (ses
élémentspeuvent être
rangés
en niveaux et un de ces niveauxcorrespond
à une antichaîne de taillemaximum), puisqu’il
suffit d’examiner les différents niveaux de P. Elle devient trivialelorsque
les
propriétés
de Ppermettent
dedésigner,
sansrecherche,
le niveaucorrespondant
à une1 Laboratoire d’Intelligence Artificielle et Systèmes
Cognitifs -
Télécom Bretagne2 Centre de Recherche public - Centre Llniversitaire -
Luxembourg
3 GDR 957 Sciences
Cognitives
de Paris4 Département
Informatique -
Télécom Parisantichaîne de taille maximum. On est dans ce cas
lorsque
P est unproduit
direct d’ordrestotaux.
Notons
qu’en général -
dans le cas d’un ensemble ordonné deSperner -
la connaissance d’une antichaîne de taille maximum nepermet
pas de déterminer unepartition
en chaînes detaille minimum. Elle
permet
tout auplus
de vérifierl’optimalité
d’une tellepartition.
C’est lavoie suivie dans cette étude : dans le cas d’un
produit
direct d’ordres totaux, unepartition
enchaînes est récursivement construite et on montre que sa taille est minimale.
Nous considérons le cas
particulier
d’unproduit
direct d’ordres totaux en raison du domained’application
où nous travaillons :l’acquisition
de connaissances etplus particulièrement
l’extraction derègles
de décision.Imaginez
desobjets
décrits par p attributs induisant chacun une échelle ordinale. L’univers despossibles
est alors unproduit
direct P dep ordres totaux.
Imaginez qu’un sujet
doive choisir certains de cesobjets
et que soncomportement
soit tel que six y(dans P)
et si x estchoisi,
alors y est choisi. Déterminer l’ensemble de tous lesobjets
choisis revient à déterminer l’ensemble desobjets qui
sontminimaux au sens de
P,
c’est-à-dire une antichaîne A de P. Les éléments de Apeuvent
êtrevus comme des
règles
de sélection dont la déterminationpermettra
d’automatiser leucomportement
de notresujet.
On cherche alors à les obtenir en lui posant le moins dequestions possible.
Après
avoirrappelé
les définitions et résultatsqui
sont nécessaires pour notreétude,
onprésente
unalgorithme
departition
d’unproduit
P de chaînes. Comme on le verra, le nombre de chaînes créées est minimum.Enfin,
unalgorithme
de recherche d’une antichaîne basé sur cettepartition
estprésenté.
2.
DÉFINITIONS
Les lecteurs souhaitant
plus
d’information peuvent se reporter aux livres et articles suivants : Anderson[1] chapitre 3,
Leclerc[6]
dont nous avonsadopté
les notations etGriggs [8].
Desrésultats
permettant
de démontrer quel’algorithme engendre
le nombre minimum de chaînesseront
présentés
dans leparagraphe
suivant.2.1.
Chaîne,
antichaînePour c entier non
négatif,
on note(c+1)
la chaîne(ensemble
totalementordonné) {0
1 2 ...c }
à c+1 éléments. Les éléments de(c+1)
sont donc codés par les c+1premiers
entiers.Soit P =
(ci+1)
x(c2+1 )
x... x(cn+1 )
leproduit
de n chaînesayant
éléments. Pour x EP,
on a x =(.xl rx2,
...,xn)
avec xi E(ci+ 1).
P est ordonné selon l’ordre
usuel : x,
y EPu
y ~ xi _ yi, pour tout i =1,...,
n.On
appelle
antichaîne de P tout sous-ensemble A de P dont les éléments sont deux à deuxincomparables.
Soita(P)
lalargeur
deP,
c’est-à-dire le cardinal maximum d’uneantichaîne ;
c’est aussi le nombre minimum de chaînesrequises
pourpartitionner
P(Théorème
deDilworth).
Pour toutentier t,
on définit une t-antichaîne comme un sous-ensembleAt
de Pdont au
plus t
éléments sont deux à deuxcomparables
et le nombre de Dilworthat(P)
commeétant le cardinal maximum d’une t-antichaîne.
EXEMPLE : soit P =
(c 1 +1 )
x(C2+ 1)
où CI = C2 = 3. Une 2-antichaîne de P est( (3,1 ), ( 1,3),
(0,2) } (Cf. figure 1).
Figure
1 :exemple
d’une 2-antichaîne2.2. Fonction de rang, niveaux de P
On dit
qu’un
ensemble ordonné P estrangé
s’il existe une fonction r,appelée
fonction de rang, entière nonnégative
sur P telle quer(x)
= 0 pour au moins un élément(minimal)
deP,
et que, si x couvre y(x
est minimal dans l’ensemble des élémentssupérieurs
ày)
dansP,
alorsr(x)
=r(y)
+ 1.Pour x on utilise la fonction de rang suivante : hauteur h de P est le rang maximum d’un élément de P :
La
Pour tout entier k E
[O,h],
le niveauPk
de P est l’ensemble des éléments x de P tels quer(x)
= k. On note nk le nombre d’éléments dePk bk
= 0 pour tout entier k{ [O,h])
et on posev = maxk nk.
Un
produit
de chaînes P est un ensemblefortement
deSperner,
c’est-à-dire queatP)
estégal
au cardinal de la réunion des tplus grands
niveaux deP ;
enparticulier
a = v.2.3. Produit direct d’un ensemble ordonné et d’une chaîne
Soit P = P’ x
(c+ 1 ),
où P’ est un ensemble ordonné et(c+1 )
une chaîne.Un élément x de P est noté x =
(x’,j),
avec x E P’et j
E(c+ 1 ).
Soit r’ la fonction de rang de P’ et r celle de P. La fonction r est donnée par
r(x)
=r’(x’)
+j ,
pour x =(x’, j).
La hauteur h de P est h’ + c. On note v’ le nombre maximum desn’k
etq’
lenombre de niveaux de P’ de cardinal
v’.
PROPOSITION 1 :
(Cf.
Leclerc[6])
Les
nombres nk
s’obtiennent en fonction des nombresn’k
par l’une ou l’autre des récurrenceséquivalentes :
DÉFINITION
1 :(Cf.
Leclerc[6])
on d’une suite non
On dit que P est unimodal si la suite finie no, nl, ..., nh est la concaténation d’une suite non
décroissante no,...,
np et
d’une suite non croissantenp+l,
..., nh.DÉFINITION
2 :(Cf.
Leclerc[6])
P est dit
symétrique
si on a np= nh S
ni =nh-i
... nk=nh-k ~
...DÉFINITION
3 :(Cf.
Anderson[ 1 ] )
Les éléments xl, ..., xk de P forment une chaîne
symétrique
si :(i)
xi+, couvre xi pour tout i k(ii) r(xl )
+r(xk)
=r(P)
oùr(P)
est le rang maximal dans P.REMARQUES
~ Si P est
symétrique
alors P est unimodal.~ Si P est unimodal alors les niveaux de P de cardinal v sont consécutifs
(Cf. figure 2).
~ Un
produit
de chaînes estsymétrique.
~ Savoir que P est
symétrique
nouspermet
de localiser directement l’antichaîne(ou
lesantichaînes)
de taille maximale : oc = v estégal
à nh~2 si h estpair
et à n(h+I)/2 si h estimpair.
L’antichaîne de taille oc se trouve donc au "milieu" del’espace.
EXEMPLE : soit P =
(cl +1)
x(c2+ 1 )
oùci = 4 et
c2 = 3.Sur la
figure 2,
onpeut
observer les différents niveauxPi
de P. Onpeut
aisément vérifierqu’un produit
de chaînes est unimodal(les
niveaux de cardinal maximal étant iciP3
etP4)
etsymétrique :
no =1,
nl= 2,
n2= 3, n3 = 4, n4=4,n5=3,n6=2,n7= 1.
Figure
2 : niveaux d’unproduit
de chaînes3. ALGORITHME
D’ÉNUMERATION
DES CHAINES 3.1.Principe
del’algorithme
On considère l’ensemble ordonné P
produit
direct de n chaînesreprésenté,
via soncodage,
dans un espace à n dimensions. On
parlera
donc depoints
pourdésigner
les éléments de P. Onveut
partitionner
P avec un nombre minimum de chaînes.La création des chaînes est récursive. Les chaînes créées dans
l’espace
à n-1 dimensionsvont servir à créer les chaînes en n dimensions. Les
objectifs
de cette création sont lessuivants :
engendrer
le nombre minimum dechaînes, parcourir
tous lespoints
de l’ensemble que nousappellerons
espace, neparcourir chaque point qu’une
fois.Chaque
chaînepossède
un élément minimumappelé point
de base. Lespremiers points
des chaînes en n - 1 dimensions sont utilisés comme
points
de base pour les chaînes en ndimensions. La construction d’une chaîne se
décompose
en deuxphases :
~ Les n - 1
premières
coordonnées sont celles dupoint
de base(point qui appartient
à unechaîne créée en n - 1
dimensions).
On fait évoluer laniéme
coordonnée de 0jusqu’au
maximum courant pour obtenir la
première partie
de la chaîne.~ La
niéme
coordonnée estbloquée
sur sa dernière valeur. Les autres coordonnées sontcelles des
points
suivant lepoint
de base sur la chaîne créée en n - 1 dimensions.Entre deux créations de
chaîne,
deux mises àjour
sont nécessaires :~ La valeur maximale de la
ni~me
coordonnée est réduite de1,
~ On passe au
point
de base suivant sur la chaîne de base en n - 1 dimensions.Deux conditions entraînent la création d’une nouvelle chaîne de base au niveau inférieur :
· La chaîne de base courante n’existe pas
(elle
estvide),
* On ne peut
plus
faire évoluer lanième
coordonnée(la
valeur maximale estnulle).
La chaîne
qui
sert à créer toutes les autres est la chaîne del’espace
à une dimension :(cl+1).
3.2.
Exemple
,Création des chaînes de
Cet espace contient 24
points
eta(P)
= 6. Pour faciliter lalecture,
les chaînes sontprésentées
niveau par niveau alors quel’algorithme parcourt
les niveaux enprofondeur
d’abord.
Création de la chaîne de base à une dimension à
partir
dePi,
cequi
donne :{0123}.
Création des chaînes de base à deux dimensions à
partir
dePi
xP2 :
~ La chaîne de base est
{ 0
1 23 } .
La seconde dimension est constituée de 3valeurs,
on va utiliser au maximum 3points
de base.~ Première
phase :
on part dupremier point
de base(c’est-à-dire 0).
La valeur maximale initiale de la seconde dimension est c. On fait évoluer la seconde coordonnée de savaleur minimale
jusqu’à
sa valeur maximale(c’est-à-dire
de a àc).
Cequi
donne lapremière partie
de la chaîne: obOc 1.
~ Deuxième
phase :
la valeur maximale estbloquée (ici,
sur la valeurc)
et onparcourt
lereste de la chaîne de base
(c’est
a dire1,
2 et3).
Cequi
donne la deuxièmepartie
de lachaîne :
{ lc 2c 3c}.
· La chaîne ainsi créée est Ob Oc 1 c 2c
3c } .
Pourgénérer
une nouvellechaîne,
on passe aupoint
de base suivant(c’est
à dire lepoint 1)
et la valeur maximale de la seconde coordonnée est diminuée(on
passe de c àb).
-
Lorsque
la valeur maximale atteint son minimum(ici,
la valeura),
lespoints
de basesuivants ne sont pas utilisés
(ici,
lepoint 3).
· La suite du texte
présente
les chaînes créées de lafaçon
suivante :Point de base
{ Première partie
de la chaîne 1 Secondepartie
de lachaîne }
Les trois chaînes de base sont les suivantes :
3 . n’est pas utilisé
Création des chaînes à trois dimensions à
partir
de(Pi
xP2)
xP3 :
- Utilisation de la
première
chaîne debase {Oa
Ob Oc 1 l c 2c3c }
Oc, le, 2c,
3c . ne sont pas utilisés- Utilisation de la deuxième chaîne de
base 1 la
1 b 1 2b3b }
2b,
ne sont pasutilisés
- Utilisation
de
la troisième chaîne de base{ 2a I 3a }
Les six chaînes ainsi créées sont les suivantes :
3.3.
Algorithme
d’énumération des chaînesToutes-les-chaines (n, maximum ) /* Création des chaînes de P */
début
faire chaîne = Chaîner ( n, maximum ) C =
Ajoute_chaîne
( chaîne, C ) tant_que Existe ( chaîne )résultat = C fin
fin_si
résultat = chaîne fin
3.4.
Propriétés
PROPOSITION 2
L’algorithme
d’énumération des chaînes construit unepartition
de P en chaînes.PREUVE
Tous les
points
de P sont couverts une fois et une seule parpropagation
d’une continuité locale :SUIVANT(pointl)
= point2 avec& - - -.. & ...,
sinon
’ ’ ’ ’ ’ ’ ’
pint2[ 1 ] = pointl [ 1 ] + 1 /* Pour la chaîne à une dimension */
Les deux
points
de niveaux extrêmes del’espace,
à savoir lepoint (0, 0, ...,0)
et(co,
cl, ...,cn),
sont traités immédiatement dans lapremière
chaîne. Ces deuxpropriétés (continuité
ettraitement des
extrema)
nousgarantissent
donc que tous lespoints
sont traités.Enfin,
l’unicitédu traitement est assurée par le fait que le numéro de coordonnée sur
laquelle
évolue lepoint
est strictement décroissante.
PROPOSITION 3
Le nombre de chaînes créées par
l’algorithme
est minimal.PREUVE
Il suffit de montrer que l’on obtient une
partition
de P en chaînessymétriques (Cf.
Définition3).
Comme toute chaînesymétrique
a un élément et un seul dans le niveaucentral,
le nombre de chaînesgénérées
est minimal carégal
à lalargeur
de P.(i)
est vérifiée car pour tout ik,
onpeut
écrire xi,l = SUIVANT(xi)
La
première
chaîne créée vérifie(ii)
car r(point_minimal)
=0,
r(point_maximal) =
Par construction de
l’algorithme,
pourchaque
nouvelle chaîne :Il existe un i
unique
avec o _ i _ n tel quemax[i]
diminue de 1 et donc r(xk),
· r
(xl ) augmente
de 1 car le nouveaupoint
de base vérifie la relation :Nouveau_point_de_base
= SUIVANT(Ancien_point_de_base).
La somme r
(xl )
+ r(xk)
reste donc constante etégale
à r(P).
La condition(ii)
est vérifiéepour toutes les chaînes créées. On
peut
conclure que lapartition
de P est constituée de chaînessymétriques
et doncqu’ elle
est de taille minimale.4. APPLICATION A LA RECHERCHE D’UNE ANTICHAINE
On se
place
dans le contexte de l’extraction derègles
de décision que nous avonsévoqué
dansl’introduction. On utilise le modèle de processus de décision
proposé
parBarthélemy
et Mullet(Heuristique
de la basemobile,
Cf.Barthélemy,
Mullet[2]
et[3])
et fondé sur des recherchesen
psychologie (Cf.
Mullet[7]).
Soit P =
(cl+1)
x ... x(cp+1)
leproduit
direct de p ordres totauxcorrespondant
àl’univers des
possibles.
Notresujet (qui
fonctionne à seuil : si unobjet x
est sélectionné et si yest
supérieur
à x alors y estégalement sélectionné)
doitcatégoriser
les éléments de Pqui
luisont
présentés parmi
deuxcatégories possibles (CI catégorie
desobjets
sélectionnés etC2 catégorie
desobjets rejetés).
Déterminer lesobjets
choisis revient à calculer une antichaîne de P dont les éléments sont lesrègles
de sélection desobjets.
Soit A l’antichaîneséparant Ci
etC2 ( Ci
étant lapartie
finissante admettant A pour ensemble d’élémentsminimaux).
Onprésente
ci-dessous leprincipe
et deux méthodes de recherche deA, l’objectif
étant deminimiser la taille du
questionnaire.
4.1.
Principe général
de recherche de AAlgorithme simplifié
de recherche de A :début i=0
Po
=Pi
tant_que Pi > 0
Choisir
(Un Objet, Pi)
Proposer_au_Sujet (Un Objet, Réponse_Sujet) Propager Réponse
(Un Objet,Réponse_Sujet,
Pi)i=c+ 1
fin_tant_que
Afficher_Antichaîne (Pi)
Ecrire ("Nombre de questions posées : ", i)
fin
Procédures :
~
Choisir() :
c’est laprocédure qui
choisitl’objet
àprésenter
ausujet parmi
l’ensemblePi
des
objets
noncatégorisés.
C’est laprocédure
laplus importante
del’algorithme :
lataille du
questionnaire
endépend beaucoup.
~
Proposer_au_Sujet() :
propose unobjet
et lit laréponse
dusujet.
~
Propager_Réponse() : catégorise
les éléments dePi
en fonction del’objet présenté
et dela
réponse
dusujet.
Si x élément dePi
est classé dansCi (respectivement
dansC2)
alors tous les
points supérieurs
au sens de la relation d’ordre usuelle(respectivement inférieurs)
à x sontégalement
dansCl (respectivement
dansC2) :
on élimine àchaque étape
leplus
depoints possibles.
Ainsi on
distingue
les méthodes de recherche de A par lafaçon
dont on choisitl’objet
courant à
présenter
ausujet.
4.2. Recherche
dichotomique
Une
approche simple
consiste à effectuer une recherchedichotomique
sur les chaînes(les
unes
après
lesautres). L’espace
P étantpartitionné
en achaînes,
la taille maximale d’une chaîne étant la hauteur h de P onpeut
en déduire lacomplexité
de cetype
de recherche : aLog2
h.On
peut
heureusement fairebeaucoup
mieux. Eneffet,
cettecomplexité
ne tientabsolument pas
compte
de lapropagation
du classement de x sur l’ensemble P tout entier. Deplus,
on seplace
dans lepire
des cas où toutes les chaînes sont de taille maximale h.4.3.
Recherche "optimale"
La meilleure
stratégie possible
est cellequi
choisit l’élément x tel que,quel
que soit sonclassement,
onpuisse
classer leplus
depoints possibles
de P parpropagation.
La recherche de l’élément à proposer àchaque étape
se fait en maximisant le critère :min( p(x), q(x) )
oùp(x)
est le nombre d’éléments non classés
plus grands
que x etq(x)
le nombre d’éléments nonclassés
plus petits
que x(critère
maximisé sur tous les éléments dePi).
Nous n’avons pas d’estimation de lacomplexité
de cetype
de recherche. Cettestratégie
de recherche est illustrée dansl’exemple
ci-dessous.4.4. Un
exemple
de recherche d’antichaîne(Cf. figure 3)
On considère un espace P
comportant
deux dimensions(attributs) pouvant prendre
chacune 5valeurs. Cet espace contient 25
objets possibles.
Salargeur
est 5 et sa hauteur 9. Le nombremaximal
théorique
dequestions
à poser est donc 16. On simule lecomportement
dusujet
enrépondant
de tellefaçon
que l’antichaîne A à trouver soit(3,1)
+(1,2).
C’est a dire que tout élément de Payant
au moins la valeur 3(ou 1)
sur lepremier
attribut et 1(ou 2)
sur le secondattribut
appartient
àCl
sinon il est dansC2.
La recherche de A se fait alors en 10questions.
Figure
3 :exemple
de recherche d’antichaîneBIBLIOGRAPHIE
[1]
ANDERSONI.,
Combinatoricsof Finite
sets,Oxford,
Clarendonpress,1987.
[2]
BARTHELEMYJ.P.,
MULLETE.,
"Choice basis: A model for multi-attributepreference",
Britishjournal of
Mathematical and StatisticalPsychology,
39(1986),
p. 106- 124.[3]
BARTHELEMY J.P., MULLET E.(1992),
"A model of selectionby aspects",
ActaPsychologica, 79, 1-19.
[4]
BEHRENDTG.,
"The lattice of antichain cutsets of apartially
orderedset",
Discretemath.,
89(1991),
p. 201-202.[5]
De BRUIJNN.G.,
TENGBERGENC.,
KRUYSWIJKD.,
"On the set of divisors of anumber",
Nieuw Arch.Wiskd.,
23(1951), p. 191-193.
[6]
LECLERCB.,
"Sur le nombre d’éléments des niveaux desproduits
de chaînes et des treillispermutoèdres",
Math.Inf.
Sci.Hum., 112 (1990),
p. 37-48.[7]
MULLETE., L’intégration
desinformations
dans lejugement
et ladécision,
Thèse deDoctorat d’Etat