Quine-McCluskey Algorithmus

Der Quine-McCluskey Algorithmus (oder die Methode von erstem implicants) ist eine für die Minimierung von Boolean-Funktionen verwendete Methode, die von W.V. Quine und Edward J. McCluskey 1956 entwickelt wurde. Es ist zu Karnaugh kartografisch darstellend funktionell identisch, aber die tabellarische Form macht es effizienter für den Gebrauch in Computeralgorithmen, und es gibt auch einen deterministischen weg, um zu überprüfen, dass die minimale Form einer Funktion von Boolean erreicht worden ist. Es wird manchmal die Tabellarisierungsmethode genannt.

Die Methode schließt zwei Schritte ein:

  1. Die Entdeckung des ganzen ersten implicants der Funktion.
  2. Verwenden Sie jene ersten implicants in einer implicant Hauptkarte, um den wesentlichen ersten implicants der Funktion, sowie andere erste implicants zu finden, die notwendig sind, um die Funktion zu bedecken.

Kompliziertheit

Obwohl praktischer, als kartografisch darstellender Karnaugh, wenn, sich mit mehr als vier Variablen befassend, der Quine-McCluskey Algorithmus auch eine beschränkte Reihe des Gebrauches seit dem Problem hat, löst es ist NP-hard: Die Durchlaufzeit des Quine-McCluskey Algorithmus wächst exponential mit der Zahl von Variablen. Es kann gezeigt werden, dass für eine Funktion von n Variablen das obere zur Zahl von erstem implicants gebunden hat, ist 3/n. Wenn n = 32 es mehr als 6.5 * 10 erste implicants geben kann. Funktionen mit einer Vielzahl von Variablen müssen mit potenziell nichtoptimalen heuristischen Methoden minimiert werden, von denen der Espresso heuristische Logik minimizer die allgemeine Norm ist.

Beispiel

Schritt 1: Entdeckung von erstem implicants

Die Minderung einer willkürlichen Funktion:

:

Man kann die kanonische Summe des Produktausdrucks von diesem Tisch leicht bilden, indem einfach man den minterms summiert (das Auslassen von-Sorge-Begriffen), wo die Funktion zu einer bewertet:

:

Natürlich ist es sicher nicht minimal. So, um alle minterms zu optimieren, die dazu bewerten, wird einem zuerst in einen minterm Tisch gelegt.-Sorge-Begriffe werden auch in diesen Tisch hinzugefügt, so können sie mit minterms verbunden werden:

An diesem Punkt kann man anfangen, minterms mit anderem minterms zu verbinden. Wenn sich zwei Begriffe durch nur ein einzelne Ziffer-Ändern ändern, kann diese Ziffer durch eine Spur ersetzt werden, die anzeigt, dass die Ziffer egal ist. Begriffe, die nicht mehr verbunden werden können, werden mit "*" gekennzeichnet. Wenn Sie von der Größe 2 gehen, um 4 Nach Größen zu ordnen, behandeln Sie '-' als ein dritter Bit-Wert. Ab:-110 und-100 oder-11-kann verbunden werden, aber nicht-110 und 011-. (Trick: Vergleichen Sie den '-' zuerst.)

Zeichen: In diesem Beispiel, keinem der Begriffe in der Größe kann 4 implicants Tisch noch weiter verbunden werden. Seien Sie bewusst, dass diese Verarbeitung sonst (Größe 8 usw.) fortgesetzt werden sollte.

Schritt 2: implicant Hauptkarte

Keiner der Begriffe kann noch weiter verbunden werden als das, so an diesem Punkt bauen wir einen wesentlichen implicant Haupttisch. Entlang der Seite geht die ersten implicants, die gerade erzeugt worden sind, und entlang der Spitze der minterms angegeben früher gehen. Der nicht sorgt sich, dass Begriffe auf der Spitze nicht gelegt werden - werden sie aus dieser Abteilung weggelassen, weil sie nicht notwendige Eingänge sind.

Hier ist jeder der wesentlichen ersten implicants besternt worden - der zweite erste implicant kann durch das dritte und vierte 'bedeckt' werden, und der dritte erste implicant kann durch das zweite und erste 'bedeckt' werden, und keiner ist so notwendig. Wenn ein erster implicant dann notwendig ist, wie erwartet würde, ist es notwendig, es in die minimierte boolean Gleichung einzuschließen. In einigen Fällen bedecken die wesentlichen ersten implicants den ganzen minterms nicht, in welchem Fall zusätzliche Verfahren für die Karte-Verminderung verwendet werden können. Das einfachste "zusätzliche Verfahren" ist Probe und Fehler, aber ein systematischerer Weg ist die Methode von Petrick. Im aktuellen Beispiel behandeln die wesentlichen ersten implicants alle minterms nicht, so, in diesem Fall, kann man den wesentlichen implicants mit einem der zwei unwesentlichen verbinden, um eine dieser zwei Gleichungen nachzugeben:

::

Beide jener Endgleichungen sind zur ursprünglichen, wortreichen Gleichung funktionell gleichwertig:

:

Siehe auch

  • Algebra von Boolean (Logik)
  • Stromkreis-Minimierung
  • Karnaugh stellen kartografisch dar
  • Espresso heuristisches Minimierungsprogramm
  • Die Methode von Petrick
  • Willard Van Orman Quine
  • Der Algorithmus von Buchberger (analoger Algorithmus für die algebraische Geometrie)

Links

http://www.cs.ualberta.ca/~amaral/courses/329/webslides/Topic5-QuineMcCluskey/sld024.htm

Brad Wilk / Thomas Osborne, der 1. Herzog von Leeds
Impressum & Datenschutz