1. Trang chủ
  2. » Công Nghệ Thông Tin

Digitale Hardware/ Software-Systeme- P19 ppsx

30 421 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 30
Dung lượng 304,83 KB

Nội dung

534 B Bin ¨ are Entscheidungsdiagramme • f ¨ ur jeden Nichtterminalknoten v ∈ V N weist eine Funktion child : V N ×{1, ,   Δ (A index(v) )   }→V dem Knoten v seine Nachfolger zu, d. h. (v,child(v,k)) ∈ E, mit 1 ≤ k ≤   Δ (A index(v) )   , • eine Funktion value : V T → B weist jedem Terminalknoten einen Wert aus der Zielmenge B zu. Ein Entscheidungsdiagramm besitzt genau einen ausgezeichneten Quellknoten, d. h. einen Knoten ohne Vorg ¨ anger, von dem aus alle Knoten v ∈ V erreichbar sind. Terminalknoten sind Bl ¨ atter und besitzen die Eigenschaft, dass sie keine Nachfol- ger haben. Die Gr ¨ oße eines Entscheidungsdiagramms ist gegeben durch die Anzahl seiner Knoten, d. h. size(G)=|V |. Ein Entscheidungsdiagramm heißt komplett, wenn jede Variable a i auf jedem Pfad vom Quellknoten zu einem Terminalknoten genau einmal auftritt. Ein Entschei- dungsdiagramm heißt frei, falls jede Variable a i auf jedem Pfad vom Quellknoten zu einem Terminalknoten h ¨ ochstens einmal auftritt. Ein Entscheidungsdiagramm G heißt geordnet, falls G frei ist und auf jedem Pfad vom Quellknoten zu einem Termi- nalknoten die Variablen in der selben Reihenfolge auftreten. B.2 Bin ¨ are Entscheidungsdiagramme Boolesche Funktionen k ¨ onnen als bin ¨ are Entscheidungsdiagramme repr ¨ asentiert werden. Grundlage hierzu bildet die Shannon-Zerlegung [393], welche auf dem Kon- zept von Kofaktoren basiert. Gegeben sei ein Boolesche Funktion f : B n → B mit Va- riablen x 1 , ,x n . Die Funktion f | x i :=F = f (x 1 , ,x i−1 ,F,x i+1 , x n ) heißt negati- ver Kofaktor bez ¨ uglich x i . Die Funktion f | x i :=T = f (x 1 , ,x i−1 ,T,x i+1 , x n ) heißt positiver Kofaktor bez ¨ uglich x i . Sowohl f | x i :=F als auch f | x i :=T sind unabh ¨ angig von der Variablen x i . Jede Boolesche Funktion f l ¨ asst sich mit Hilfe der Shannon- Zerlegung wie folgt mit Kofaktoren schreiben: f =(¬x i ∧ f | x i :=F ) ∨ (x i ∧ f | x i :=T ) (B.2) Falls nun in einem Entscheidungsdiagramm in jedem Nichtterminalknoten v ∈ V N die Shannon-Zerlegung nach der mit den Knoten assoziierten Variablen x index(v) durchgef ¨ uhrt wird, so erh ¨ alt man ein bin ¨ ares Entscheidungsdiagramm (engl. Binary Decision Diagram, BDD). Mit ∀v ∈ V N : Δ (B)={ Δ 0 (B)={F}, Δ 1 (B)={T}} kann dieses wie folgt definiert werden [135]: Definition B.2.1 (Bin ¨ ares Entscheidungsdiagramm). Gegeben sei eine Boolesche Funktion f : B n → B mit den Variablen x 1 , ,x n .Daszugeh ¨ orige bin ¨ are Entschei- dungsdiagramm (V, E) mit Quellknoten v 0 ist ein Entscheidungsdiagramm mit fol- genden Eigenschaften: • Der Quellknoten v 0 repr ¨ asentiert die Funktion f , d. h. seine Interpretation φ (v 0 ) ist f . • F ¨ ur jeden Knoten v ∈ V gilt: B.2 Bin ¨ are Entscheidungsdiagramme 535 – Falls v ∈ V T und value(v)=F, dann repr ¨ asentiert v die entsprechende kon- stante Boolesche Funktion, d. h. φ (v)=F. – Falls v ∈ V T und value(v)=T, dann repr ¨ asentiert v die entsprechende kon- stante Boolesche Funktion, d. h. φ (v)=T. – Falls v ∈ V N , dann repr ¨ asentiert v die Funktion φ (v)=(¬x index(v) ∧ φ (child(v,1)) ∨ (x index(v) ∧ φ (child(v,2))) mit φ (child(v,1)) = φ (v)| x index(v) :=F und φ (child(v,2)) = φ (v)| x index(v) :=T . BDDs sind eine vollst ¨ andige Repr ¨ asentation der Booleschen Funktionen. Ein BDD heißt geordnetes bin ¨ ares Entscheidungsdiagramm (engl. Ordered Binary D e- cision Diagram, OBDD), falls es frei ist und auf jedem Pfad vom Quellknoten zu einem Terminalknoten die Variablen in der selben Reihenfolge auftreten. Bei einer gegebenen Variablenordnung kann eine Boolesche Funktion noch durch unterschied- liche OBDDs repr ¨ asentiert werden. Reduzierte OBDDs Um zu einer kanonischen Repr ¨ asentation der Booleschen Funktionen zu gelangen, werden OBDDs reduziert. Das Ergebnis sind reduzierte geordnete bin ¨ are Entschei- dungsdiagramme (engl. Reduced Ordered Binary Decision Diagram, ROBDD). Zur Reduktion eines OBDD gibt es zwei Regeln: 1. Eliminationsregel: Sind child(v,1)=child(v,2)=v  , so kann v aus dem Ent- scheidungsdiagramm eliminiert werden, und seine eingehenden Kanten zeigen auf v  . 2. Verschmelzungsregel: Knoten mit gleichem Index und gleichen Nachfolgern, d. h. index(v)=index(v  ) und child(v,1)=child(v  ,1) sowie child(v,2)= child(v  ,2),k ¨ onnen verschmolzen werden, indem alle ausgehenden Kanten von v gel ¨ oscht und alle eingehenden Kanten von v auf v  zeigen. Ein OBDD, welches nicht weiter durch die Eliminations- oder Verschmelzungsre- gel reduziert werden kann, heißt reduziertes OBDD. Die Anwendung beider Regeln ist in Abb. B.1 dargestellt. Ausgehende gestrichelte Kanten zeigen x index(v) = 0 an, ausgehende durchgezogene Linien repr ¨ asentieren x index(v) = 1. ROBDDs sind f ¨ ur eine gegebene Variablenordnung kanonische Repr ¨ asentatio- nen Boolescher Funktionen, d. h. zu jeder Booleschen Funktion existiert genau ein eindeutiges ROBDD f ¨ ur diese Variablenordnung. Damit gilt: Zwei Boolesche Funk- tionen sind genau dann ¨ aquivalent, wenn ihre ROBDDs f ¨ ur eine gegebene Varia- blenordnung isomorph sind [62]. Zwei ROBDDs G 1 =(V 1 ,E 1 ) und G 2 :=(V 2 ,E 2 ) heißen genau dann isomorph, wenn eine bijektive Funktion m : V 1 → V 2 existiert, so dass f ¨ ur alle Terminalknoten v ∈ V 1,T gilt value(v)=value(m(v)) und f ¨ ur alle Nicht- terminalknoten v ∈ V 1,N gilt m(child(v,1)) = child(m(v),1) und m(child(v,2)) = child(m(v),2). 536 B Bin ¨ are Entscheidungsdiagramme b) a) x 2 x 1 x 1 x 2 x 2 x 2 x 1 x 2 x 1 x 2 Abb. B.1. a) Eliminationsregel und b) Verschmelzungsregel Auswirkung der Variablenordnung Die Gr ¨ oße size(G) eines ROBDD G kann exponentiell mit der Anzahl der Varia- blen der repr ¨ asentierten Booleschen Funktion wachsen und h ¨ angt zudem von der Variablenordnung ab. Sie ist zwischen linear und exponentiell zu der Anzahl sei- ner Variablen, abh ¨ angig von der verwendeten Variablenordnung [62]. Es gibt zwar Funktionen, deren Darstellung unabh ¨ angig von der Variablenordnung immer eine Knotenanzahl exponentiell zu der Anzahl ihrer Variablen hat, z. B. die Multiplikati- on [63], aber f ¨ ur die meisten Funktionen l ¨ asst sich eine g ¨ unstigere Ordnung finden. Eine optimale Variablenordnung zu finden, die mit der geringstm ¨ oglichen Anzahl an Knoten in dem Entscheidungsdiagramm auskommt, ist in den meisten in der Praxis vorkommenden F ¨ allen zu rechenintensiv. F ¨ ur BDDs gibt es verschiedene Ans ¨ atze, eine gute Variablenordnung zu finden, die entweder statisch festgelegt oder dyna- misch zur Laufzeit bestimmt wird. Ein statischer Ansatz ist etwa FORCE [6], der die Knotenreihenfolge eines Hypergraphen und eine damit verbunden Ordnung der Va- riablen nach Vorbild physikalischer Kr ¨ afte ¨ andert. Beispiele f ¨ ur dynamische Ans ¨ atze sind das sog. engl. window permutation (siehe auch [239]) und das sog. engl. sifting [383]. Beim window permutation werden f ¨ ur k Variablen die m ¨ oglichen k! Permuta- tionen in der Variablenordnung getestet und das Ergebnis mit dem kleinsten ROBDD ¨ ubernommen. Hingegen wird beim sifting eine einzelne der n Variablen betrachtet und diese versuchsweise an jede m ¨ ogliche der n Positionen in der Variablenordnung platziert. Wiederum wird das beste Ergebnis, also dasjenige ROBDD mit geringster Gr ¨ oße, ¨ ubernommen. B.3 Verallgemeinerte bin ¨ are Entscheidungsdiagramme 537 Rechnen mit ROBDDs Zur Durchf ¨ uhrung von Rechenoperationen (un ¨ are oder bin ¨ are) auf ROBDDs wird ¨ ublicherweise auf den if-then-else-Operator (ITE-Operator) zur ¨ uckgegriffen [57, 211]. Seien f , g,h Boolesche Funktionen. Der ITE-Operator ist wie folgt definiert: ITE( f , g,h) :=(f ∧ g) ∨ (¬ f ∧ h) (B.3) Die wichtigsten Booleschen Rechenoperationen sind in Tabelle B.1 dargestellt. Tabelle B.1. Berechnung wichtiger Boolescher Operationen mit dem ITE-Operator Operator ITE-Form ¬x ITE(x,F, T) x 1 ∧ x 2 ITE(x 1 ,x 2 ,F) x 1 ∨ x 2 ITE(x 1 ,T, x 2 ) x 1 ⇒ x 2 ITE(x 1 ,x 2 ,T) x 1 ⇔ x 2 ITE(x 1 ,x 2 ,¬x 2 ) f (x,g(x)) ITE(g(x), f (x, T), f (x,F)) ∃x : f (x) ITE( f (T),T, f (F)) ∀x : f (x) ITE( f (T), f (F), F) Die Kofaktorberechnung bez ¨ uglich x i erfolgt durch Umlenken aller zu einem Knoten v mit index(v)=i eingehenden Kanten auf den Nachfolgerknoten child(v, 1) bzw. child(v,2). Ob eine Boolesche Funktion fg ¨ ultig oder erf ¨ ullbar ist, kann in konstanter Zeit mit Hilfe des zugeh ¨ origen ROBDD entschieden werden. Hierzu wird gepr ¨ uft, ob dass BDD lediglich aus einem Terminalknoten v besteht, der mit value(v)=T bzw. value(v)=F markiert ist. B.3 Verallgemeinerte bin ¨ are Entscheidungsdiagramme Neben der Shannon-Zerlegung gibt es die positive und negative Davio-Zerlegung einer Booleschen Funktion. Die positive Davio-Zerlegung ist wie folgt definiert: f := f | x i :=F ⊕ (x i ∧ ( f | x i :=T ⊕ f | x i :=F )) (B.4) Dabei stellt ⊕ die Exklusiv-Oder-Verkn ¨ upfung dar (x 1 ⊕ x 2 :=(¬x 1 ∧ x 2 ) ∨ (x 1 ∧ ¬x 2 )). Verwendet man in einem bin ¨ aren Entscheidungsdiagramm an Stelle der Shannon- Zerlegung die positive Davio-Zerlegung, so erh ¨ alt man ein sog. positives funktiona- les Entscheidungsdiagramm (engl. positive Functional Decision Diagram, pFDD) [253]. Die Interpretation φ eines Nichtterminalknoten v ∈ V N eines pFDD ist gege- ben durch φ (v) := φ (child(v, 1)) ⊕ (x i ∧ φ (child(v, 2))). Die Interpretation der Ter- minalknoten bleibt unver ¨ andert. 538 B Bin ¨ are Entscheidungsdiagramme Neben der Shannon- und positiven Davio-Zerlegung gibt es noch die negative Davio-Zerlegung: f := f | x i :=T ⊕ (¬x i ∧ ( f | x i :=T ⊕ f | x i :=F )) (B.5) Wird die negative Davio-Zerlegung in einem BDD verwendet, erh ¨ alt man ein negatives funktionales Entscheidungsdiagramm (engl. negative Functional Decisi- on Diagram, nFDD). Die Interpretation φ eines Nichtterminalknoten v ∈ V N eines nFDD ist gegeben durch φ (v) := φ (child(v, 1)) ⊕ (¬x i ∧ φ (child(v, 2))). Die Inter- pretation der Terminalknoten bleibt unver ¨ andert. Falls negative und positive Davio-Zerlegung in einem Entscheidungsdiagramm zugelassen ist, spricht man von einem funktionalen Entscheidungsdiagramm (FDD) [139]. In diesem Fall muss zu jeder Variable x i der verwendete Zerlegungstyp fest- gelegt werden. Ein geordnetes FDD (engl. Ordered FDD, OFDD) besitzt die Ei- genschaft, dass auf jedem Pfad vom Quellknoten zu einem Terminalknoten die Variablen in der selben Reihenfolge auftreten. Ein reduziertes OFDD (engl. Re- duced OFDD, ROFDD)erh ¨ alt man durch wiederholte Anwendung der bereits be- kannten Verschmelzungsregel in Abb. B.1b) und einer neuen Eliminationsregel: Ist child(v,2)=F, so kann v aus dem Entscheidungsdiagramm eliminiert werden, und seine eingehenden Kanten auf child(v,1) umgeleitet werden (siehe Abb. B.2). x 2 x 1 x 2 F Abb. B.2. Eliminationsregel f ¨ ur OFDDs Die drei Klassen bin ¨ arer Entscheidungsdiagramme, BDD, pFDD und nFDD, lassen sich zu einer neuen Art von Entscheidungsdiagramm kombinieren: Krone- cker FDDs basieren auf den drei Funktionszerlegungen Shannon-Zerlegung, positive Davio- und negative Davio-Zerlegung [138]. Hierbei muss f ¨ ur jede Variable festge- legt sein, welcher Zerlegungstyp verwendet wird. Shannon-, positive und negative Davio-Zerlegung sind die einzigen drei Zerlegungstypen die bei der Repr ¨ asentation von Booleschen Funktionen durch Entscheidungsdiagrammen ber ¨ ucksichtigt wer- den m ¨ ussen, d. h. nur diese f ¨ uhren zu strukturell unterschiedlichen Entscheidungs- B.3 Verallgemeinerte bin ¨ are Entscheidungsdiagramme 539 diagrammen [34]. Geordnete KFDDs (engl. Ordered KFDD, OKFDD) besitzen die Eigenschaft, dass auf jedem Pfad vom Quellknoten zu einem Terminalknoten die Variablen in der selben Reihenfolge auftreten. Reduzierte OKFDDs (engl. Redu- ced OKFDD, ROKFDD)k ¨ onnen aus OKFFDs durch wiederholte Anwendung der Verschmelzungs- und Eliminationsregel gebildet werden. Hierbei ist der verwendete Zerlegungstyp (Shannon- oder Davio-Zerlegung) bei Anwendung der Eliminations- regel zu ber ¨ ucksichtigen. ROKFDDs sind f ¨ ur eine gegebene Variablenordnung kanonische Repr ¨ asentatio- nen Boolescher Funktionen. Da ROBDDs und ROFDDs spezialisierte ROKFDDs sind, gilt, dass f ¨ ur eine gegebene Boolesche Funktion jedes minimal große ROKFDD nicht gr ¨ oßer als das minimal große ROBDD oder minimal große ROFDD bei glei- cher Variablenordnung ist. Das folgende Beispiel stammt aus [135]. Beispiel B.3.1. Gegeben ist die Boolesche Funktion f :=(x 1 ∧ x 2 ∧ x 3 ) ⊕ (x 1 ∧ x 2 ∧ ¬x 3 ) ⊕ (¬x 1 ∧ x 2 ∧ x 3 ) sowie die Variablenordnung x 1 < x 2 < x 3 < x 4 . Das zu- geh ¨ orige ROBDD ist in Abb. B.3a) zu sehen. Verwendet man f ¨ ur x 1 und x 4 die Shannon-Zerlegung, f ¨ ur x 2 die positive Davio-Zerlegung und f ¨ ur x 3 die negative Davio-Zerlegung, so erh ¨ alt man das ROKFDD aus Abb. B.3b). x 2 F x 2 x 4 x 2 F x 2 x 3 T x 4 x 1 x 1 x 3 T x 3 a) b) Shannon Shannon pos. Davio neg. Davio Abb. B.3. a) ROBDD und b)ROKFDD f ¨ ur die Boolesche Funktion aus Beispiel B.3.1 Man erkennt, dass das ROKFDD aus Abb. B.3b) gr ¨ oßer als das ROBDD aus Abb. B.3a) ist. Da das ROBDD aber ebenfalls ein ROKFDD mit der Einschr ¨ ankung auf die ausschließliche Nutzung der Shannon-Zerlegung ist, gilt somit, dass das kleinste ROKFDD bei gegebener Variablenordnung f ¨ ur eine Boolesche nicht gr ¨ oßer sein kann als das ROBDD f ¨ ur diese Funktion unter Verwendung der selben Varia- blenordnung. C Algorithmen In diesem Kapitel werden wichtige Algorithmen zur Verifikation digitaler Systeme beschrieben. Zur Bewertung der Algorithmen ist es jedoch zun ¨ achst notwendig, die Probleme, auf welche die Algorithmen angewendet werden, zu klassifizieren. C.1 Klassifikation von Algorithmen Ein Algorithmus bezeichnet eine Berechnungsvorschrift, die aus einer Menge von Eingaben, Ausgaben und einer endlichen Anzahl von eindeutigen Berechnungs- schritten besteht und die in der Regel in einer endlichen Anzahl von Schritten ter- miniert. Probleme, die durch Algorithmen gel ¨ ost werden k ¨ onnen, heißen auch ent- scheidbar. Algorithmen k ¨ onnen nach a) Qualit ¨ at der L ¨ osung und b) Berechnungs- aufwand klassifiziert werden. Um diese Merkmale n ¨ aher zu quantifizieren, bedarf es einiger Definitionen. Ein Algorithmus heißt exakt, wenn er f ¨ ur alle Instanzen eines Problems eine exakte L ¨ osung findet. Es lassen sich f ¨ ur alle entscheidbaren Probleme exakte Algorithmen finden. Jedoch ist der Berechnungsaufwand von exakten Algo- rithmen oft zu hoch, um in vertretbarer Zeit auf einem Computer gel ¨ ost zu werden. Folglich verwendet man sog. Approximationsalgorithmen, die nicht das Finden ei- ner exakten L ¨ osung garantieren, aber die in den meisten F ¨ allen exakte L ¨ osungen gut approximieren, also ann ¨ ahern. Approximationsalgorithmen heißen oft Heuristi- ken, da sie Strategien verwenden, die auf Vermutungen, plausiblen Annahmen und Erfahrungen beruhen. Der Berechnungsaufwand (Komplexit ¨ at) eines Algorithmus wird in Zeit- und Speicherbedarf im schlimmsten Fall (engl. worst case complexity) und im Mittel (engl. average case complexity) gemessen . Im Weiteren werden nur Komplexit ¨ aten f ¨ ur den schlimmsten Fall betrachtet, da dieser in der Praxis relevanter ist. Um den zeitlichen Berechnungsaufwand eines Algorithmus unabh ¨ angig vom Rechnertyp zu beurteilen, definiert man die Anzahl der elementaren Operationen des Algorithmus als Maß des Rechenaufwands. Da diese Zahl aber von der Problemgr ¨ oße (die als Eingabeparameter des Algorithmus verstanden werden kann) abh ¨ angt, stellt man als Maß der Zeitkomplexit ¨ at das Wachstum an elementaren Operationen als Funktion 542 C Algorithmen der Problemgr ¨ oße in Form der sog. O-Notation dar. Bezeichnet man beispielsweise die Problemgr ¨ oße mit n (z. B. ” Sortiere eine Liste von n ganzen Zahlen in aufstei- gender Reihenfolge“), dann besitzt die Zeitkomplexit ¨ at die Ordnung von f (n), wenn es eine Konstante c gibt, so dass c · f (n) eine obere Schranke der Anzahl elementarer Operationen zur L ¨ osung des Problems darstellt. Die Bezeichnung der Zeitkomple- xit ¨ at des Algorithmus ist dann O( f (n)). Oft sagt man, dass Algorithmen, bei denen f (n) ein Polynom in n ist (= polynomielle Algorithmen,z.B.O(n 3 + 1 2 · n)), effizient sind. Im Gegensatz dazu sind exponentielle Algorithmen (z. B. O(2 n ) oder O(n n 2 )) ineffizient. Vorsicht ist bei der Bewertung der Konstanten c geboten, da diese bei kleinen n die Rechenzeit dominieren k ¨ onnen. Die Effizienz eines exakten Algorithmus bewertet man durch Vergleich seiner Komplexit ¨ at mit der dem Problem inh ¨ arenten Komplexit ¨ at. Diese bildet eine unte- re Schranke f ¨ ur die Anzahl ben ¨ otigter Operationen. Zum Beispiel ist die inh ¨ arente Komplexit ¨ at des Problems, unter n ganzen Zahlen die maximale Zahl zu bestimmen, Ω (n), da auf jeden Fall n − 1 Vergleiche notwendig sind. Ein Algorithmus heißt optimal, wenn seine Komplexit ¨ at gleich der inh ¨ arenten Komplexit ¨ at des Problems ist. Folglich ist ein Suchalgorithmus f ¨ ur die gr ¨ oßte unter n Zahlen mit Komplexit ¨ at O(n) optimal. Algorithmenoptimalit ¨ at ist strikt von der Optimalit ¨ at einer L ¨ osung zu unterscheiden. Manche Probleme lassen sich mit polynomiellen Algorithmen l ¨ osen. Diese Klas- se von Problemen wird im Allgemeinen mit dem Symbol P bezeichnet. Leider um- fasst diese Klasse nur wenige f ¨ ur die Verifikation von digitalen Hardware/Software- Systemen relevante Probleme. Andere Probleme lassen sich mit polynomiellen Algo- rithmen auf nichtdeterministischen Maschinen l ¨ osen. Dies sind hypothetische Com- puter, welche die M ¨ oglichkeit besitzen, L ¨ osungen zu erraten und diese dann in po- lynomieller Zeit zu verifizieren. Diese Klasse von Problemen heißt NP. Offensicht- lich gilt P⊆NP. Die Frage, ob jedoch P = NP gilt, ist ein immer noch ungel ¨ ostes Problem der Theoretischen Informatik [116, 180]. Es wurde jedoch gezeigt, dass es eine Klasse von Problemen mit der Eigenschaft gibt, dass wenn es irgendein Pro- blem unter ihnen gibt, das in polynomieller Zeit gel ¨ ost werden kann, dann alle Pro- bleme dieser Klasse in polynomieller Zeit l ¨ osbar sind. Die Klasse dieser Probleme heißt NP-schwer und deren Teilklasse, die in der Menge der Probleme NP enthal- ten ist, heißt NP-vollst ¨ andig. Abbildung C.1 zeigt die Beziehung zwischen P und NP. Oft gibt es f ¨ ur Probleme in NP Algorithmen mit exponentieller (oder h ¨ oherer) Komplexit ¨ at. F ¨ ur manche Problemgr ¨ oßen m ¨ ogen diese Algorithmen in ihrer Lauf- zeit tolerierbar sein, f ¨ ur gewisse Problemgr ¨ oßen ist man hingegen auf Heuristiken mit polynomieller Laufzeit angewiesen, um in ¨ uberschaubarer Zeit eine L ¨ osung zu erhalten. C.2 SAT-Solver Das Boolesche Erf ¨ ullbarkeitsproblem, oder kurz SAT-Problem (engl. boolean sa- tisfiability), ist der Prototyp aller NP-vollst ¨ andigen Probleme [180]. Es besitzt C.2 SAT-Solver 543 NP-schwer NP NP -vollst ¨ andig P Abb. C.1. Beziehungen zwischen P und NP vielf ¨ altige Anwendungen im Bereich der Synthese und Verifikation von Computer- systemen. Das Boolesche Erf ¨ ullbarkeitsproblem kann wie folgt definiert werden: Definition C.2.1 (Boolesches Erf ¨ ullbarkeitsproblem). Gegeben sei eine Boolesche Funktion f . Entscheide, ob f erf ¨ ullbar ist. Mit anderen Worten: Es soll gezeigt werden, dass mindestens eine Variablenbele- gung β existiert, so dass f ( β )=T.ZurL ¨ osung dieses Problems werden sog. SAT- Solver eingesetzt. Bei der Entwicklung von SAT-Solvern gab es in den vergangenen Jahren enorme Fortschritte [476, 366]. Die meisten SAT-Solver arbeiten auf der Repr ¨ asentation der Booleschen Funkti- on als aussagenlogische Formel ϕ , wobei diese in konjunktiver Normalform (KNF) gegeben ist. In KNF besteht ϕ aus der Konjunktion von sog. Klauseln. Jede Klausel besteht wiederum aus der Disjunktion von Literalen, wobei ein Literal eine Varia- ble oder deren Negation ist. Um eine aussagenlogische Formel in KNF zu erf ¨ ullen, muss jede Klausel und somit mindestens ein Literal in jeder Klausel den Wert T annehmen. Ein Literal, dem noch kein Wert zugewiesen wurde, heißt unspezifiziert. Wurde ihm der Wert T zugewiesen, so heißt es erf ¨ ullt, wurde ihm der Wert F zugewie- sen, heißt es verletzt. Diese Begrifflichkeit kann auf Klauseln erweitert werden. Eine Klausel heißt unspezifiziert, solange sie keinen eindeutigen Wert angenommen hat. Sie heißt erf ¨ ullt, wenn sie den Wert T annimmt. Sie heißt verletzt, wenn sie den Wert F annimmt. Klauseln, bei denen lediglich ein Literal unspezifiziert ist, werden als Einerklauseln (engl. unit clause) bezeichnet. Diese implizieren direkt die Belegung des Literals. Beispiel C.2.1. Gegeben ist die Boolesche Funktion f :=(¬x 1 ∨ x 2 ∨ x 3 ) ∧ (¬x 2 ∨ x 4 ) ∧ (¬x 3 ∨ x 5 ) ∧ (¬x 5 ∨ x 4 ). Weiterhin ist die Belegung x 1 := T, x 2 := T, x 5 := T und x 3 := F gegeben. Die Variable x 4 ist noch nicht belegt. Somit sind die Literale ¬x 1 ,¬x 2 ,x 3 und ¬x 5 verletzt. Die Literale x 2 ,¬x 3 und x 5 sind erf ¨ ullt, w ¨ ahrend das Literal x 4 unspezifiziert ist. Weiterhin gilt: . dem Symbol P bezeichnet. Leider um- fasst diese Klasse nur wenige f ¨ ur die Verifikation von digitalen Hardware/Software- Systemen relevante Probleme. Andere Probleme lassen sich mit polynomiellen. Varia- blenordnung. C Algorithmen In diesem Kapitel werden wichtige Algorithmen zur Verifikation digitaler Systeme beschrieben. Zur Bewertung der Algorithmen ist es jedoch zun ¨ achst notwendig,

Ngày đăng: 02/07/2014, 14:20

TỪ KHÓA LIÊN QUAN