Table de décision

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

Cet article ne cite pas suffisamment ses sources ().

Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références ».

En pratique : Quelles sources sont attendues ? Comment ajouter mes sources ?
Exemple de données pour table de décision

Une table de décision est un outil logique permettant de modéliser facilement un ensemble de choix d’une certaine complexité. Au lieu d’obtenir une série de conditions imbriquées par une succession de SI..., ALORS..., SINON..., il est possible de créer une table les contenant. Ce type de table est particulièrement utile en programmation informatique.

Exemple d'utilisation

Considérons la prise de décision suivante :

Cela peut s’écrire de la sorte :

Conditions
Il fait beau oooonnnn
La mer est chaude oonnoonn
Il y a des requins onononon
Actions
Je vais à la plage xxxx
Je reste au lit xxxx
Je bronze xxx
Je me baigne x(x)

Il y a d'une part, en haut de la table, les conditions, et d'autre part, en dessous, le groupe des actions à mener.

Un rapide examen de la table permet de mieux comprendre les conditions, de supprimer celles qui sont paradoxales (par exemple je reste au lit et je bronze), ou inutiles (s'il ne fait pas beau je ne ferais que rester au lit). Il devient alors possible de compresser la table de décision afin de la rendre plus simple à lire, et donc à traiter.

Compression

La table de décision est maintenant compressée et il devient plus aisé de voir les règles du processus de décision. Chaque colonne peut être comprise comme une règle.

Par exemple la première règle est : « Il fait beau et il y a des requins, donc je vais à la plage et je bronze. »

Conditions
Il fait beau oooon
La mer est chaude oonn-
Il y a des requins on---
Actions
Je vais à la plage xxxx
Je reste au lit x
Je bronze xxx
Je me baigne x

Applications

Le grand avantage de cette représentation matricielle est que la table de décision peut s'écrire sous forme de base de données. Cela permet au programmeur de gérer les conditionnalités depuis une requête (SQL par exemple).

Ainsi, pour recenser les actions à exécuter, il devient possible de lancer ce type de requête :

select je_vais_a_la_plage,je_reste_au_lit,je_bronze, je_me_baigne from table_de_decision

where il_fait_beau like '%o%' and la_mer_est_chaude like '%n%' and il_y_a_des_requins like '%o%';

La table de décision est créée de la manière suivante :

create table table_de_decision (

je_vais_a_la_plage varchar(3),

je_reste_au_lit varchar(3),

je_bronze varchar(3),

je_me_baigne varchar(3),

il_fait_beau varchar(3),

la_mer_est_chaude varchar(3),

il_y_a_des_requins varchar(3)

) ;

La table est ensuite alimentée ainsi :

insert into table_de_decision (je_vais_a_la_plage,je_reste_au_lit,je_bronze, je_me_baigne,il_fait_beau,la_mer_est_chaude,il_y_a_des_requins) values ('x',null, 'x',null, 'o','o/n','o');

insert into table_de_decision (je_vais_a_la_plage,je_reste_au_lit,je_bronze, je_me_baigne,il_fait_beau,la_mer_est_chaude,il_y_a_des_requins) values ('x',null, null, 'x','o', 'o','n');

insert into table_de_decision (je_vais_a_la_plage,je_reste_au_lit,je_bronze, je_me_baigne,il_fait_beau,la_mer_est_chaude,il_y_a_des_requins) values ('x',null, 'x',null, 'o', 'n','o');

insert into table_de_decision (je_vais_a_la_plage,je_reste_au_lit,je_bronze, je_me_baigne,il_fait_beau,la_mer_est_chaude,il_y_a_des_requins) values ('x',null, null, null, 'o', 'n','n');

insert into table_de_decision (je_vais_a_la_plage,je_reste_au_lit,je_bronze, je_me_baigne,il_fait_beau,la_mer_est_chaude,il_y_a_des_requins) values (null,'x', null,null, 'n','o/n','o/n');

Cette table de décision ainsi renseignée, le type de requête suivant devient alors possible :

select je_vais_a_la_plage,je_reste_au_lit,je_bronze, je_me_baigne from table_de_decision

where il_fait_beau like '%o%' and la_mer_est_chaude like '%n%' and il_y_a_des_requins like '%o%';

Les tables de décision possèdent quelques similitudes avec les tables de vérité utilisées dans l'algèbre de Boole, en particulier la faculté de se compresser, et de s'économiser des règles.