Dominateur
Dans le de l'informatique, dans les graphiques de flux de commande un du d du noeud domine un n de noeud si chaque noeud de chemin dès le début au n doit passer par le d . Notationally, ceci est écrit en tant que n de ). Par définition, chaque noeud se domine.
Il y a un certain nombre de concepts relatifs :
Le du noeud d du
A domine strictement un noeud n si d domine n et d n'égale pas le N.
Le dominateur immédiat de ou l'idom d'un n de noeud est le noeud unique qui domine strictement le n mais ne domine pas strictement n'importe quel autre noeud qui domine strictement le n .
La frontière de dominance de d'un noeud n est l'ensemble de tous les noeuds W tels que n domine un prédécesseur de W, mais n ne domine pas strictement le W.
Un du noeud z poteau-domine le noeud n de si après être passé par n, vous vont toujours passer par le Z.
Un arbre de dominateur de est un arbre où les enfants de chaque noeud sont ces noeuds qu'il domine immédiatement. Puisque le dominateur immédiat est unique, c'est un arbre. Le noeud de début est le dessus de l'arbre.
Histoire
La dominance a été présentée la première fois par Prosser dans un papier du 1959 sur l'analyse des organigrammes. Prosser n'a pas présenté un algorithme pour la dominance de calcul, qui a dû attendre dix ans Lowry et Medlock. Ron Cytron a rallumé l'intérêt pour la dominance dans le 1989 quand il l'a appliqué au calcul efficace du &phi ; fonctions, qui sont employées sous la forme statique de tâche simple de .
Applications
Les dominateurs, et les frontières de dominance de en particulier, ont des applications dans les compilateurs pour la forme statique de calcul de tâche simple de . Un certain nombre d'optimisations de compilateur peuvent également tirer bénéfice des dominateurs. Le graphique d'écoulement comporte dans ce cas-ci les blocs de base
Avantages automatiques de parallélisation des frontières de postdominance. C'est une méthode efficace de dépendance de commande de calcul, qui est critique à l'analyse.
Algorithmes
Les dominateurs d'un noeud n sont donnés par la solution maximale aux équations suivantes de flux de données : le
là où est le noeud de début.
Le dominateur du noeud de début est le noeud de début lui-même. L'ensemble de dominateurs pour n'importe quel autre noeud n est l'intersection de l'ensemble de dominateurs pour tous les prédécesseurs p de N. Le noeud n est également dans l'ensemble de dominateurs pour le N.
Un algorithme pour la solution directe est :
le dominateur de // du noeud de début est le début lui-même Les DOM (n_0) = {n_0} // pour tous autres noeuds, a placé tous les noeuds en tant que dominateurs pour chaque de n dans N - {n_0} Les DOM (n) = N ; // éliminent itérativement les noeuds qui ne sont pas des dominateurs tandis que change dans tous les DOM (n) pour chaque de n dans N - {n_0} : Les DOM (n) = union {n} avec l'intersection au-dessus de tout le p dans pred (n) des DOM (p)
La solution directe est quadratique dans le nombre de noeuds, ou le . Lengauer et Tarjan ont développé un algorithme qui est presque linéaire, mais son exécution tend à être complexe et longue pour un graphique de plusieurs centaines de noeuds ou de moins.
Le tonnelier de Keith D. Harvey, et le Ken Kennedy de l'université de riz décrivent un algorithme en leur papier intitulé '' un algorithme simple et rapide de dominance ''. Il résout essentiellement les structures bien machinées ci-dessus d'équations de flux de données mais de données d'utilisations pour améliorer l'exécution.
Voir également :
graphique de flux de commande
Forme statique de tâche simple de .
| Random links: | 1927 dans la musique | Kaldbak | Ordre des soeurs de la charité du Hôpital Général de Montréal | Mouvement de Marada | Dominator |