logo

Conversie tussen canonieke vormen

In onze vorige sectie hebben we geleerd over SOP(som van product) en POS(product van som)-expressies en berekende POS- en SOP-formulieren voor verschillende Booleaanse functies. In deze sectie leren we hoe we het POS-formulier in het SOP-formulier en het SOP-formulier in het POS-formulier kunnen weergeven.

Voor het converteren van de canonieke uitdrukkingen moeten we de symbolen ∏, ∑ veranderen. Deze symbolen worden gewijzigd wanneer we de indexnummers van de vergelijkingen opsommen. In de oorspronkelijke vorm van de vergelijking zijn deze indexcijfers uitgesloten. De SOP- en POS-vormen van de Booleaanse functie zijn duals van elkaar.

Java-lijst naar array

Er zijn de volgende stappen waarmee we de canonieke vormen van de vergelijkingen eenvoudig kunnen converteren:

  1. Wijzig de operationele symbolen die in de vergelijking worden gebruikt, zoals ∑, ∏.
  2. Gebruik het De-Morgan-principe van de Dualiteit om de indexen te schrijven van de termen die niet worden gepresenteerd in de gegeven vorm van een vergelijking of de indexnummers van de Booleaanse functie.

Conversie van POS- naar SOP-formulier

Om het SOP-formulier uit het POS-formulier te halen, moeten we het symbool ∏ in ∑ veranderen. Daarna schrijven we de numerieke indexen van ontbrekende variabelen van de gegeven Booleaanse functie.

Er zijn de volgende stappen om de POS-functie F = Π x, y, z (2, 3, 5) = x y' z' + x y' z + x y z' naar SOP-vorm te converteren:

  1. In de eerste stap veranderen we het operationele teken in Σ.
  2. Vervolgens vinden we de ontbrekende indexen van de termen 000, 110, 001, 100 en 111.
  3. Ten slotte schrijven we de productvorm van de genoemde termen.

000 = x' * y' * z'

001 = x' * y' * z

100 = x * y' * z'

110 = x * y* z'

111 = x * y * z

Java-stringmethoden

Het SOP-formulier is dus:

F = Σ x, y, z (0, 1, 4, 6, 7) = (x' * y' * z') + (x' * y' * z) + (x * y' * z') + (x * y* z') + (x * y * z)

Conversie van SOP-formulier naar POS-formulier

Om de POS-vorm van de gegeven SOP-vormuitdrukking te verkrijgen, zullen we het symbool ∏ in ∑ veranderen. Daarna zullen we de numerieke indexen schrijven van de variabelen die ontbreken in de Booleaanse functie.

Er worden de volgende stappen gebruikt om de SOP-functie te converteren F = ∑ x, y, z (0, 2, 3, 5, 7) = x' y' z' + z y' z' + x y' z + xyz' + xyz naar POS:

  • In de eerste stap veranderen we het operationele teken in ∏.
  • We vinden de ontbrekende indexen van de termen 001, 110 en 100.
  • We schrijven de somvorm van de genoteerde termen.

001 = (x + y + z)

cast sql

100 = (x+y'+z')

110 = (x+y'+z')

Het POS-formulier is dus:

F = Π x, y, z (1, 4, 6) = (x + y + z) * (x + y' + z') * (x + y' + z')

Conversie van SOP-formulier naar standaard SOP-formulier of Canonical SOP-formulier

Om het standaard SOP-formulier van het gegeven niet-standaard SOP-formulier te verkrijgen, voegen we alle variabelen in elke productterm toe die niet alle variabelen hebben. Door de Booleaanse algebraïsche wet (x + x' = 0) te gebruiken en door de onderstaande stappen te volgen, kunnen we de normale SOP-functie eenvoudig omzetten in de standaard SOP-vorm.

  • Vermenigvuldig elke niet-standaard productterm met de som van de ontbrekende variabele en het complement ervan.
  • Herhaal stap 1 totdat alle resulterende producttermen alle variabelen bevatten
  • Voor elke ontbrekende variabele in de functie verdubbelt het aantal producttermen.

Voorbeeld:

Converteer de niet-standaard SOP-functie F = AB + A C + B C

Zon:

F = EEN B + EEN C + B C
= EEN B (C + C') + A (B + B') C + (A + A') B C
= A B C + A B C' + A B C + A B' C + A B C + A' B C
= A B C + A B C' + A B' C + A' B C

Dus de standaard SOP-vorm van niet-standaardvorm is F = A B C + A B C' + A B' C + A' B C

Conversie van POS-formulier naar standaard POS-formulier of Canonical POS-formulier

Om het standaard POS-formulier van het gegeven niet-standaard POS-formulier te verkrijgen, voegen we alle variabelen in elke productterm toe die niet alle variabelen hebben. Door de Booleaanse algebraïsche wet (x * x' = 0) te gebruiken en de onderstaande stappen te volgen, kunnen we de normale POS-functie eenvoudig omzetten in een standaard POS-formulier.

venster.open javascript
  • Door elke niet-standaard somterm toe te voegen aan het product van de ontbrekende variabele en het complement ervan, wat resulteert in twee somtermen
  • Toepassing van de Booleaanse algebraïsche wet, x + y z = (x + y) * (x + z)
  • Door stap 1 te herhalen, totdat alle resulterende somtermen alle variabelen bevatten

Door deze drie stappen kunnen we de POS-functie omzetten in een standaard POS-functie.

Voorbeeld:

F = (p' + q + r) * (q' + r + s') * (p + q' + r' + s)

1. Termijn (p'+q+r)

Zoals we kunnen zien ontbreekt de variabele s of s' in deze term. Dus voegen we s*s' = 1 toe in deze term.

(p' + q + r + s*s') = (p' + q + r + s) * (p' + q + r + s')

2. Termijn (q'+r+s')

Op dezelfde manier voegen we p*p' = 1 toe aan deze term om de term te verkrijgen die alle variabelen bevat.

lezen uit csv-bestand in Java
(q' + r + s' + p*p') = (p + q' + r + s') * (p' + q' + r + s')

3. Termijn (q'+r+s')

Het is nu niet nodig om iets toe te voegen, omdat alle variabelen in deze term voorkomen.

De standaard POS-vormvergelijking van de functie is dus

F = (p' + q + r + s)* (p' + q + r + s')* (p + q' + r + s')* (p' + q' + r + s') * (p + q '+ r' + s)