Minimalizace logických funkcí Karnaugh a Booleova algebra

Dotazy na technické problémy, vlastní řešení technických problémů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
Brozicek
Příspěvky: 1645
Registrován: 07 lis 2005, 00:00
Bydliště: Studénka

Minimalizace logických funkcí Karnaugh a Booleova algebra

#1 Příspěvek od Brozicek »

Pomozte mi najít, kde je v minimalizaci chyba.
Procvičoval jsem s vnukem minimalizace logických funkcí, a našel jsem mu srozumitelný výklad podle tohoto videa:
https://www.youtube.com/watch?v=4MzqNlv0X2M

Ve videu máme zadanou funkci 4 proměnných (negaci značím jako apostrof a'):
y=ab'+ab'cd'+ac'd
Funkční logická tabulka 4 proměnných je na obrázku.

Následně se na videu vytvoří tabulka k zadané funkci s 16 řádky. K tabulce se sestaví Karnaughova mapa a obvyklým způsobem se najde minimální funkce ve tvaru
y=ab'+ad
Podle mne byl postup na videu správný.

Pro kontrolu jsem zadal vnukovi vytvořit minimální funkci pomocí Booleovské algebry a vyšla mu funkce trochu odlišná od minimální funkce dle Karnaugha ve tvaru
y=ab'+ac'd
Podle mne byl výpočet vnuka také správný. Pro jistotu jsme dali udělat Booelovskou minimalizace ještě "Umělé inteligenci"a výsledek byl shodný s našim řešením.

Abychom zjistili, který výsledek je správný, vytvořili jsme nové tabulky pro obě zkrácené funkce a porovnali s původní tabulkou.
Zjistili jsme, že naše zkrácená funkce y=ab'+ac'd má zcela shodnou tabulku s tou původní nezkrácenou funkci y=ab'+ab'cd'+ac'd.

Naopak a bohužel podle zkrácené funkce dle Karnaugha y=ab'+ad se tabulka liší v poslední řádku. Správně je tam nula, ale podle Karnaugha tam vychází jednička.

Dokáže mi někdo vysvětlit, proč se výsledky podle Karnaugha a Booleovskou algebrou liší. Oba postupy se zdají správné. Nebo kde se dělá v minimalizaci podle Karnaugha chyba, že výsledek je špatný?
Přílohy
Karnaugh podle videa.jpg
Karnaugh podle  videa.jpg
Uživatelský avatar
tomasjedno
Příspěvky: 6547
Registrován: 11 říj 2008, 00:00
Bydliště: ZZ9 Plural Z Alpha

#2 Příspěvek od tomasjedno »

Holka na tom videu tomu vůbec nerozumí, papouškuje jen co si (a blbě) zapamatovala a navíc dlouze okecává naprosté triviality. Popis té Karnaughovy mapy má úplně pomatený.
Tu zásadní chybu udělala v tom, že ta vodorovná skupina dvou jedniček se přepíše ac’d (pro celou skupinu platí a=1, c=0, d=1).

P.S. Zadávat boolovskou minimalizaci umělému inteligentovi mi přijde jako akt čirého zoufalství, y= ab’+ ab’cd’ + ac’d = ab’(1+cd’) + ac’d = ab’ + ac’d.
Uživatelský avatar
Cust
Příspěvky: 7239
Registrován: 17 led 2007, 00:00
Bydliště: Milotice u Kyjova

#3 Příspěvek od Cust »

Když se podíváš na tu mapu
- máš zakroužkované 4 jedničky -> násobek 2 proměnných
- máš zakroužkované 2 jedničky -> násobek 3 proměnných

To jako první vidím a nemusím nic počítat, abych řekl, že výsledek z videa je špatně.
Uživatelský avatar
Brozicek
Příspěvky: 1645
Registrován: 07 lis 2005, 00:00
Bydliště: Studénka

#4 Příspěvek od Brozicek »

tomasjedno píše:.....P.S. Zadávat boolovskou minimalizaci umělému inteligentovi mi přijde jako akt čirého zoufalství, y= ab’+ ab’cd’ + ac’d = ab’(1+cd’) + ac’d = ab’ + ac’d.
Nevím zda to je kritika vnuka a mne. Přece píšu, že vnuk to nejdříve spočítal a já jsem ho zkontroloval. Samozřejmě, že jsme to udělali stejně jak nám ukazuješ.
Ten "akt zoufalství" jsme zkusili jen proto abychom se ujistili, že na tom videu je to špatně,
Stejně mě překvapilo, že AI umí to zkrácení spočítat. Na obrázku je odpověď AI na náš dotaz. Nedávno jsem, jen tak ze zvědavosti, dal AI spočítat jinou funkci. Její řešení bylo evidentně špatné, tak jsem AI na to upozornil. Vzápětí přišla omluva a správné řešení.

Jinak dík za ukázku toho, jak Karnaughovu mapu správně aplikovat. Já jsem té holčině zpočátku také věřil. První tři čtvrtiny videa jsou opravdu naivní, ale správné, a konec vypadá důvěryhodně, ale je špatný.
Není možno věřit všemu co je na internetu a všemu, co řekne AI. Důvěřuj, ale prověřuj.
Přílohy
Výpočet Booleovy algebry pomoci AI.jpg
Výpočet Booleovy algebry pomoci AI.jpg
Uživatelský avatar
PCmaniac99
Příspěvky: 884
Registrován: 07 úno 2008, 00:00
Bydliště: Jablonec nad Nisou

#5 Příspěvek od PCmaniac99 »

V komentářích toho videa je toho napsáno dost ;)
Uživatelský avatar
Brozicek
Příspěvky: 1645
Registrován: 07 lis 2005, 00:00
Bydliště: Studénka

#6 Příspěvek od Brozicek »

PCmaniac99 píše:V komentářích toho videa je toho napsáno dost ;)
Máš pravdu. Já komentáře k článkům a videům na internetu většinou nečtu. Kdybych tuto svoji zásadu u tohoto videa porušil, nemusel vzniknout tento dotaz. Ale z diskuze je vidět, že hodně sledujících tomu uvěřilo.
Uživatelský avatar
Brozicek
Příspěvky: 1645
Registrován: 07 lis 2005, 00:00
Bydliště: Studénka

#7 Příspěvek od Brozicek »

Dovolte mi požádat Vás ještě o pomoc s tímto problémem.
Mám funkci (opět apostrof značí negaci):
f = a'b'cd+abcd'+a'bcd'+ab'cd+a'bcd+abc'd+a'bc'd+abcd
Podle tohoto odkazu
https://www.ontola.com/cs/ondi/iookbo/m ... jte-funkce
je výsledek dle Karnaughovy mapy
f = cd+cb+db
Nakreslili jsme si s vnukem Karnaughovu mapu 4x4 a dospěli jsme ke stejnému výsledku.

Pak jsme si dali za úkol vypočítat stejnou minimalizaci funkce pomoci Booleovské algebry.
Ke shodnému výsledku se bohužel nemůžeme dopracovat.
Vychází nám
f = bcd'+bc'd+cd neboli f = b(cd'+c'd)+cd

Můžete, vy mladší znalci, pomoct osmdesátiletému dědkovi a mladému studentovi s řešením minimalizace tou Booleovskou algebrou? Případně zkontrolovat výsledek Karnaughovy mapy?
Myslíme si, že oba postupy musí vést ke stejnému výsledku, ale možná se pleteme. Ale nějak cítíme, že v postupu Booleovskou algebrou děláme někde chybný krok v aplikaci vzorců, ale nevíme kde.
Předem dík.
Přílohy
Karnaugova mapa.jpg
Karnaugova mapa.jpg
Uživatelský avatar
tomasjedno
Příspěvky: 6547
Registrován: 11 říj 2008, 00:00
Bydliště: ZZ9 Plural Z Alpha

#8 Příspěvek od tomasjedno »

Neděláte chybu, oba výsledky jsou ekvivalentní. Udělejte si pravdivostní tabulku.
Boolovskou algebrou se to dá z jednoho výsledku na ten druhý převést třeba takhle:

CD + B(CD’+C’D) =
(1+B+B)CD + B(CD’+C’D) =
CD + B(CD+CD’) + B(CD+C’D) =
CD + BC(D+D’) + BD(C+C’) =
CD + BC + BD
Uživatelský avatar
Cust
Příspěvky: 7239
Registrován: 17 led 2007, 00:00
Bydliště: Milotice u Kyjova

#9 Příspěvek od Cust »

@tomasjedno, nechápu, když jsi důchodce, kde na to bereš čas????
Uživatelský avatar
tomasjedno
Příspěvky: 6547
Registrován: 11 říj 2008, 00:00
Bydliště: ZZ9 Plural Z Alpha

#10 Příspěvek od tomasjedno »

To zas tolik času nezabralo, a nemůžu furt jen hrát Solitaire :-)
Uživatelský avatar
Cust
Příspěvky: 7239
Registrován: 17 led 2007, 00:00
Bydliště: Milotice u Kyjova

#11 Příspěvek od Cust »

:D
Uživatelský avatar
Brozicek
Příspěvky: 1645
Registrován: 07 lis 2005, 00:00
Bydliště: Studénka

#12 Příspěvek od Brozicek »

tomasjedno píše:......Boolovskou algebrou se to dá z jednoho výsledku na ten druhý převést třeba takhle....
Ten tučně vyznačený fígl je hodný obdivu (chce se i napsat "genia").
(1+B+B)CD + B(CD’+C’D)
Výraz CD vlastně násobím jedničkou "(1+B+B)", takže se nic nezmění, ale to umožní po roznásobení další snadné úpravy. Pro odlišení od tebe pokračuji malými písmeny:
cd + bcd+bcd+bcd'+bc'd=
Pak se vytkne bc a bd:
cd+bc(d+d')+bd(c+c')
A výsledek je očekávaný minimalizovaný výraz shodný s výsledkem podle Karnaugha:
f=cd+bc+bd
Myslím, že v písemce by šlo uznat i předchozí tvar bez fíglu (1+b+b):
f =cd+ b(cd'+c'd)

Vřelý dík. Na to bych nepřišel ani po 5 slivovicích. Pro tento fígl nestačí znát Booelovské vzorce, ten nápad musí vzniknout v hlavě. Jen přemýšlím, zda by tato konstrukce napadla, kdyby nebyl k dispozici tvar dle Karnaugha.
Uživatelský avatar
tomasjedno
Příspěvky: 6547
Registrován: 11 říj 2008, 00:00
Bydliště: ZZ9 Plural Z Alpha

#13 Příspěvek od tomasjedno »

Vypadá to jako tajemné kouzlo nebo božské vnuknutí, ale cesta k tomu byla prostá. Nejdřív jsem přes pravdivostní tabulky ověřil, že jsou oba výsledky ekvivalentní. No a pak jsem špekuloval, jak ten jeden s negacemi převést na ten bez negací. Porovnal jsem podobné členy v jednom a ve druhém: BC versus BCD’ a BD versus BC’D. Tak mě přímo trklo, že když ke každému trojpísmenovému přičtu BCD, tak dostanu ten dvojpísmenný. A že BCD můžu přičítat, kolikrát chci, protože první člen je CD a nějaké přičtené BCD ho nerozhodí :D

P.S. Bez toho výsledku z Karnaughovy mapy by to asi napadlo jen hodně hloubavého ducha.
Odpovědět

Zpět na „Poradna“