Forum: Mikrocontroller und Digitale Elektronik Boolschen Ausdruck vereinfachen


von Jasmin N. (Firma: Keine Angabe) (jasmin_89)


Lesenswert?

Hi, ich habe folgenden Ausdruck von meiner Wahrheitstabelle abgelesen:

(A v B v ~C v D)∧(¬A v B v ¬C v D)∧(¬A v B v ¬C v ¬D)∧(¬A v¬ B v C v 
D)∧(¬A v ¬B v C v ¬D)∧(¬A v ¬B v ¬C v D)∧(¬A v ¬B v ¬C v ¬D)

Da dieser Ausruck sehr lang ist stelle ich mir die Frage ob ich diesen 
auch vereinfachen kann? Kann man das machen?

von Udo S. (urschmitt)


Lesenswert?

Bei 4 Variablen bietet sich das Karnaugh Veitch Diagramm an:
https://de.wikipedia.org/wiki/Karnaugh-Veitch-Diagramm

Edit: Wie man aus deiner Form die DNF erhält siehe Kapitel 5.

: Bearbeitet durch User
von Dirk B. (dirkbilland)


Lesenswert?


von Toxic (Gast)


Angehängte Dateien:

Lesenswert?

Jasmin N. schrieb:
> Da dieser Ausruck sehr lang ist stelle ich mir die Frage ob ich diesen
> auch vereinfachen kann? Kann man das machen?

https://www.softpedia.com/get/Science-CAD/Logic-Minimizer.shtml

Das Programm "Logic Minimizer 1.2.1" laesst in der freien Version bis zu 
4 Variablen zu

Es gibt bestimmt aber auch Online Tools.....

von Max M. (jens2001)


Lesenswert?

Jasmin N. schrieb:
> von meiner Wahrheitstabelle abgelesen

Und warum zeigst du uns die nicht statt des Bandwurmausducks?

Und dannhttps://de.wikipedia.org/wiki/Karnaugh-Veitch-Diagramm
Und daraus https://de.wikipedia.org/wiki/Disjunktive_Normalform

: Bearbeitet durch User
von Egon D. (Gast)


Lesenswert?

Jasmin N. schrieb:

> Hi, ich habe folgenden Ausdruck von meiner Wahrheitstabelle
> abgelesen:
>
> (A v B v ~C v D)∧(¬A v B v ¬C v D)∧(¬A v B v ¬C v ¬D)∧(¬A v¬ B v C v
> D)∧(¬A v ¬B v C v ¬D)∧(¬A v ¬B v ¬C v D)∧(¬A v ¬B v ¬C v ¬D)
>
> Da dieser Ausruck sehr lang ist stelle ich mir die Frage ob
> ich diesen auch vereinfachen kann?

Du fragst UNS, ob DU den Ausdruck vereinfachen kannst?


> Kann man das machen?

Man kann es, und ich kann es auch :)
Prinzip: Distributivgesetz rückwärts anwenden. Zuerst auf den
zweiten und dritten Teilterm, dann auf den vierten und fünften,
schließlich auf die letzten beiden.
Es resultiert eine Gleichung mit vier Teiltermen; von diesen
kann man nochmal die letzten beiden Ausdrücke zusammenfassen,
so dass drei Terme übrigbleiben.

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

Jasmin N. schrieb:
> stelle ich mir die Frage ob ich diesen
> auch vereinfachen kann? Kann man das machen?

guckstdu hier: (gefunden in google mit: boolsche Ausdrücke online)

https://www.erpelstolz.at/gateway/formular-zentral.html

liefert bei "Quine McCluskey" dieses Ergebniss:

(A ∨ B ∨ ¬C ∨ D) ∧ (¬A ∨ B ∨ ¬C ∨ D) ∧ (¬A ∨ B ∨ ¬C ∨ ¬D) ∧ (¬A ∨ ¬B ∨ C 
∨ D) ∧ (¬A ∨ ¬B ∨ C ∨ ¬D) ∧ (¬A ∨ ¬B ∨ ¬C ∨ D) ∧ (¬A ∨ ¬B ∨ ¬C ∨ ¬D)

->

¬B ∧ ¬C ∨
¬A ∧ D ∨
¬A ∧ B

von sid (Gast)


Lesenswert?

so auf die schnelle
4,5,6 und 7 lassen sich doch auf
NOT(A AND B) reduzieren
(C und D sind egal einer der vier wird false zurückgeben)

also wird schonmal aus
(A v B v ~C v D)∧(¬A v B v ¬C v D)∧(¬A v B v ¬C v ¬D)∧(¬A v¬ B v C v
D)∧(¬A v ¬B v C v ¬D)∧(¬A v ¬B v ¬C v D)∧(¬A v ¬B v ¬C v ¬D)

dies hier
(A v B v ~C v D)∧(¬A v B v ¬C v D)∧(¬A v B v ¬C v ¬D)∧ ¬(A ∧ B)

oder vertu' ich mich da?

'sid

von A. S. (Gast)


Lesenswert?

Jasmin N. schrieb:
> Da dieser Ausruck sehr lang ist stelle ich mir die Frage ob ich diesen
> auch vereinfachen kann?

Ja, aber wozu? Zumindest in Code für uC macht das keinen Sinn: die 
Originalregeln machen Sinn, um es zu verstehen.

Zum optimieren reicht die Wahrheitstabelle direkt

Z.b.
WT &((A?8:0)+(B?4:0)+(C?2:0)+(D?1:0));
Mit WT als WahrheitsTabelle.

von Bernhard S. (b_spitzer)


Lesenswert?

Toxic schrieb:
> Das Programm "Logic Minimizer 1.2.1" laesst in der freien Version bis zu
> 4 Variablen zu
>
> Es gibt bestimmt aber auch Online Tools.....

oder aber andere Software, die Open-Source ist und noch viel mehr kann. 
Der Digitalsimulator "Digital" kann Schaltungen simulieren, mit dem 
Manpunkt Analyse/Synthese kann man Schaltnetze und Automaten mit einer 
Tabelle eingeben, erhält die KV-Diagramme (mit allen Überdeckungen) und 
die minimierten Gleichungen (auch hier alle Überdeckungen). Ein klick 
und die Schaltung ist fertig und kann als Modul in der nächsten 
Schaltung verwendet werden.
Zu finden hier:
https://github.com/hneemann/Digital

von sid (Gast)


Lesenswert?

sid schrieb:
> so auf die schnelle
> 4,5,6 und 7 lassen sich doch auf
> NOT(A AND B) reduzieren
> (C und D sind egal einer der vier wird false zurückgeben)
>
> dies hier
> (A v B v ~C v D)∧(¬A v B v ¬C v D)∧(¬A v B v ¬C v ¬D)∧ ¬(A ∧ B)
>

hm 2 und 3 lassen sich ebenfalls zusammenfassen zu NOT(A AND C)

macht also
(A v B v ¬C v D) ∧ ¬(A ∧ C) ∧  ¬(A ∧ B)

wegstabenverbuchslers ist natürlich noch kompakter,
vielleicht fällt Dir aber exkludierend leichter nachzuvollziehen 
#schulterzuck

in jedem Falle
kommen diese Kombinationen durch
ABCD
0000
0001
0011
0100
0101
0110
0111
1000
1001

egal ob bei der originalen, der manuellen Kürzung von mir,
oder dem zugegeben logisch schönsten vom wegstabenverbuchsler.
inkludierende Logik ist mMn schneller (da man beim ersten true 
weitermachen kann und nicht auf's letzte false warten muss bei längeren 
logikketten)
ich gebe aber zu, dass mir das "zu Fuss" auch schwerfällt fehlerfrei im 
Kopf nachzuvollziehen (mit bleistift und papier geht's dann zum Glück 
noch)

'sid

von A. S. (Gast)


Lesenswert?

sid schrieb:
> inkludierende Logik ist mMn schneller (da man beim ersten true
> weitermachen kann und nicht auf's letzte false warten muss bei längeren
> logikketten)

Der TO äußert sich ja nicht, wozu er das braucht.

Für SW wäre es unnütz für Digitalschaltung oder HA wäre es wichtig zu 
wissen, was das Ziel ist (also welche Form gewünschten ist).

von sid (Gast)


Lesenswert?

A. S. schrieb:
> sid schrieb:
>> inkludierende Logik ist mMn schneller (da man beim ersten true
>> weitermachen kann und nicht auf's letzte false warten muss bei längeren
>> logikketten)
>
> Der TO äußert sich ja nicht, wozu er das braucht.
>
> Für SW wäre es unnütz für Digitalschaltung oder HA wäre es wichtig zu
> wissen, was das Ziel ist (also welche Form gewünschten ist).

ich glaub Hausaufgaben

(als unsigned int wäre es n<10 && n!=2, das klingt mir schwer nach 
ausgedacht)

'sid

von Jasmin N. (Firma: Keine Angabe) (jasmin_89)


Lesenswert?

A. S. schrieb:
> sid schrieb:
>> inkludierende Logik ist mMn schneller (da man beim ersten true
>> weitermachen kann und nicht auf's letzte false warten muss bei längeren
>> logikketten)
>
> Der TO äußert sich ja nicht, wozu er das braucht.
>
> Für SW wäre es unnütz für Digitalschaltung oder HA wäre es wichtig zu
> wissen, was das Ziel ist (also welche Form gewünschten ist).

Sorry für die späte Antwort aber ich stehe in der letzten Zeit unter 
Dauerstress. Es handelt sich bei dem Ausdruck um ein Segment der 7 
segment Anzeige. Aber ich glaube ich habs jetzt verstanden wie ich den 
Asudruck vereinfachen kann.

von dirk (Gast)


Lesenswert?

Gruss

Siehe digitale BCD Wandler.
TTL und CMOS Klassik.
(Gab es auch mal mit 16 Darstellungen
der 4 Bit). In den Datenblättern
wurden/werden auch die internen Schaltungen dargestellt.

Dirk St

von dirk (Gast)


Lesenswert?

ad: Direkt für Sieben Segment
der TTL 7447, aber in dem
Zusammenhang gab/gibt es noch viel
mehr.

Dirk St

von dirk (Gast)


Lesenswert?

Das ist halt die Frage, auf welcher Ebene das dargestellt und/oder
realisiert würde/wird.
Bei C würde ich mir das formale
mit switch case ersparen.

Dirk St

von A. S. (Gast)


Lesenswert?

Jasmin N. schrieb:
> Es handelt sich bei dem Ausdruck um ein Segment der 7 segment Anzeige

?? Willst Du ein bcd zu 7seg so in TTL nachbauen?

Ich hoffe das ist nicht für einen uC, denn das wäre absurd.

von Egon D. (Gast)


Lesenswert?

A. S. schrieb:

> Ja, aber wozu? [...]
>
> Z.b.
> WT &((A?8:0)+(B?4:0)+(C?2:0)+(D?1:0));
> Mit WT als WahrheitsTabelle.

Der Inbegriff von Klarheit und Verständlichkeit.
Typisch C eben...

von Jasmin N. (Firma: Keine Angabe) (jasmin_89)


Lesenswert?

A. S. schrieb:
> Jasmin N. schrieb:
>> Es handelt sich bei dem Ausdruck um ein Segment der 7 segment Anzeige
>
> ?? Willst Du ein bcd zu 7seg so in TTL nachbauen?
>
> Ich hoffe das ist nicht für einen uC, denn das wäre absurd.

Nein ich möchte es nur mit UND NICHT und ODER Gattern verwenden

von Stefan F. (Gast)


Lesenswert?

Was ist denn ein
> UND NICHT
Gatter? Meinst du NAND?

von sid (Gast)


Lesenswert?

Jasmin N. schrieb:
> Sorry für die späte Antwort aber ich stehe in der letzten Zeit unter
> Dauerstress. Es handelt sich bei dem Ausdruck um ein Segment der 7
> segment Anzeige. Aber ich glaube ich habs jetzt verstanden wie ich den
> Asudruck vereinfachen kann.
kP.. verstehe

kleiner 10 und nicht zwei das kann ja nur Segment C sein ;)

Eigentlich ne schöne Aufgabe um sich mal wieder mit Logikgattern zu 
beschäftigen...

'sid

von sid (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Was ist denn ein
>> UND NICHT
> Gatter? Meinst du NAND?

ne UND, NICHT und ODER (AND, NOT, OR)
sonst hätte sie NAND geschrieben ;)
(fällt ja durch verknüpfung eh ab)

'sid

von Egon D. (Gast)


Lesenswert?

Jasmin N. schrieb:

> A. S. schrieb:
>> Jasmin N. schrieb:
>>> Es handelt sich bei dem Ausdruck um ein Segment der
>>> 7 segment Anzeige
>>
>> ?? Willst Du ein bcd zu 7seg so in TTL nachbauen?
>>
>> Ich hoffe das ist nicht für einen uC, denn das wäre
>> absurd.
>
> Nein ich möchte es nur mit UND NICHT und ODER Gattern
> verwenden

Das geht besser.
Das Zauberwort lautet "vollständige Basis". NAND ist
eine solche; man benötigt also nur EINE Sorte Gatter.

von Stefan F. (Gast)


Lesenswert?

sid schrieb:
> UND, NICHT und ODER

Ach so, da fehlte ein Komma.

von dirk (Gast)


Lesenswert?

Gruss

A. S. schrieb:
> ?? Willst Du ein bcd zu 7seg so in TTL nachbauen?
>
> Ich hoffe das ist nicht für einen uC, denn das wäre absurd.

Siebensegment Ansteuerungen
gehören immer noch zur
Grundlagenvermittlung bei uCs, auch wenn TFTs ganz gut aussehen.
Bei Retro zu Pelka wäre das evtl.
auch noch eine Option.😉

Schönen Abend wünsche ich Euch.
Dirk St

von A. S. (Gast)


Lesenswert?

dirk schrieb:
> Siebensegment Ansteuerungen
> gehören immer noch zur
> Grundlagenvermittlung bei uCs,

genau. deshalb frug ich, weil die Nachbildung von Gattern dabei nichts 
verloren hätte.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.