Dominator i grafteori är en binär relation på noderna i en riktad graf med en framstående ingångsnod, som visar fördelen när man passerar vägen från ingångsnoden: grafnoden dominerar noden (skriven som eller ) om någon väg från grafen ingångsnod till passerar genom . I synnerhet dominerar varje nod sig själv.
Den mest utbredda användningen är i kontrollflödesdiagram som används i teorin om kompilatorkonstruktion.
Ett användbart sätt att representera information om dominatorer är ett träd som kallas ett dominatorträd , där ingångsnoden är roten, och varje nod dominerar endast sina barn i trädet [1] .
Dominans inom datavetenskap introducerades först av Reese T. Prosser 1959 [ 2] , dominansberäkningsalgoritmen publicerades först 10 år senare av Lowry och Medlock ( ES Lowry , CW Medlock ) [3] . Förnyat intresse för användningen av dominansrelationen kommer från Ron Cytrons papper från 1989, som använder denna relation för att effektivt beräkna φ-funktionerna som används i SSA-representationen [4] .
Den viktigaste observationen om dominatorer är att om vi tar någon acyklisk väg från ingångsnoden till noden , kommer alla dominatorerna att vara placerade på denna väg, dessutom kommer de att vara placerade i samma ordning längs vilken väg som helst.
Om och och är dominatorer av , då antingen , eller . Det följer att varje nod utom ingångsnoden måste ha en enda omedelbar dominator, det vill säga dominatorn närmast längs någon acyklisk väg från ingångsnoden till [5] .
Dominans används i kompilatorer för att bilda SSA-representationen . Ett antal kompilatoroptimeringar kan också dra nytta av användningen av dominatorer. För automatisk parallellisering är det fördelaktigt att känna till alla noder som domineras av en given nod. Minnesanvändningsanalys kan dra nytta av ett dominatorträd, vilket gör det enkelt att hitta läckor och identifiera överdriven minnesanvändning. I mjukvarusystem används de för att minska storleken på testsetet [6] .
Dominatorn för implikationsgrafen söks efter i CDCL-lösare av tillfredsställbarhetsproblem för booleska formler vid analys av konfliktstrukturen [7] .