<?php echo _title;?> www.prochazka.zde.cz
www.ccsinfo.com/CEH
Server si právě čte 602 lidí, dnes je úterý, 26. Listopad 2024   
Kategorie: Knihovnička

Shannonův teorém

Zobecněné využití principu duality, které si např. s de Morganovými zákony musíme odvozovat často velmi těžkopádně, definuje velmi jednoduše Shannonův teorém. Tento mimořádně praktický zákon umožňuje zcela mechanicky stanovit inverzní funkci libovolného výrazu podle vztahu:

   f [A, /B, C, ..., (+), (.)] = f [ /A, B, /C, ..., (.), (+)]

Inverzní logická funkce je z funkce původní odvozena tak, že:

  • invertujeme každou původní proměnnou.
  • vzájemně zaměňujeme všechny logické operátory.

   Zde je třeba jasně definovat, jaký je rozdíl mezi duální a inverzní funkcí. Zatímco duální funkce je jiným způsobem vyjádřená, avšak obsahově zcela shodná. Inverzní funkce je skutečnou inverzí původní funkce.

Jak vyplývá z definice de Morganových zákonů i Shannonova teorému, při vytváření duální i inverzní funkce se vzájemně mění disjukční výrazy na konjukční a opačně. Z toho vyplývá, že duální formou libovolného logického výrazu můžeme odvodit posloupností stanovení inverzní funkce a její následnou negací. Přitom lze funkce výhodně upravovat a zjednodušovat při dodržování pravidel Booleovy algebry. Navíc přistupuje nutnost věnovat zvýšenou pozornost prioritě logických operátorů. Násobení má přednost před sčítáním. Nejbezpečnější je před začátkem jakýchkoliv úprav zavést do výrazu explicitní závorky.Při inverzích složitých výrazů s několikastupňovými negacemi je nutné jejich postupné zjednodušení směrem zevnitř.
Postup při použití Shannonova teorému nejlépe osvětlí jednoduché příklady.

  • Nejprve znovu ověříme 2. distributivní zákon:
    (A + C) . (B + C) = Y.
    Inverzí funkce podle Shannona získáme součtový tvar /A . /C + /B . /C = Y , který využitím 1. distributivního zákona upravíme /C (/A + /B) = /Y a nakonec zpětnou inverzí C + AB = Y získáme duální funkci a tedy důkaz správnosti.
  • Také důkaz v opačném směru bude zcela jednoduchý: (AB) + C = Y Inverzi funkce (/A + /B) . /C = Y, po úpravě podle 1. distributivního zákona /A . /C + /B . /C = Y a opětovné inverzi získáme opět správný tvar duální funkce (A + C) . (B + C) = Y.
  • Jako další příklad zkusme minimalizovat, nebo-li co nejvíce zjednodušit funkci A + AC + BC = Y. Nejprve z opatrnosti zavedeme prioritní závorky A + (AC) + (BC) = Y, pak vytknutím proměnné C upravíme A + C (A + B)= Y a určíme inverzní funkci /A (/C + /A . /B) = /Y. Protože /A . /A = /A, lze upravit /A . /C + /A . /B = /Y a po vytknutí /A (/B + /C) = /Y shledáváme, že výraz už dále zjednodušit nelze. Proto opětovnou inverzí zjistíme konečný tvar minimalizované funkce A + BC = Y. Porovnání realizace původní a minimalizované funkce s hradly AND a OR.
minimalizace_funkce_obr4
  • Jako poslední příklad minimalizujeme různými postupy funkci Y = A + /A . /B, tj. disjukční funkci členů v přímém a inverzním tvaru:

    • bez předběžné úpravy negovaného součinu:
      Y = A + (/A . /B)
      /Y = /A . AB
      protože /A . A = 0
      /Y = 0 . B = 0
      je po opětovné inverzi
      Y = 1

    • s využitím úpravy /A . /B podle de Morganova zákona:
      Y = A + /A . /B
      Y = A + /A + /B
      protože A + /A = 1
      Y = 1 + B
      Y = 1

Vidíme, že v tomto případě nebylo třeba inverzní funkci vůbec hledat. Shannonův teorém umožňuje snadno odvodit inverzní tvar libovolné logické funkce. Ta je, díky vzájemné konverzi disjukčních a konjukčních tvarů, velmi užitečná pro přehledné úpravy a minimalizace logických výrazů i funkcí. Se znalostí dosud uvedených zákonů již lze vystačit při řešení mnoha praktických problémů v různých oblastech aplikace kombinačních obvodů. Bohužel, složitost jejich řešení, nepřehlednost a obtížnost algebraického popisu funkce exponenciálně narůstá s počtem proměnných v logické rovnici. Všimněme si ještě několika pravidel Booleovy algebry, nazývaných pravidly pohlcování, která často mohou logicky výraz podstatně zjednodušit:

  • A + AB = A výsledek funkce je plně určen proměnnou A, na konjunkcí AB vůbec nezávisí.
  • A (A + B) = A, zde je funkce určena konjunkcí A . A = A.
  • (A + /B) B = AB, protože B . /B = 0, je funkce plně určena konjunkcí AB.
  • A . /B + B = A + B, je-li proměnná A = 0, je funkce určena proměnnou B, je-li proměnná B = 0, je funkce určena proměnnou A.

print Formát pro tisk

Komentáře rss

Zasílate odpověď ke stávajícímu příspěvku (zrušit).

Nemáte oprávnění přidávat příspěvky.

Uživatelské jméno
Heslo
     

Registrace >
Ztracené heslo >


, Poslední příklad odpovědět
avatar
Dobry den, nejsem si uplne jisty, ale u posledniho prikladu minimalizace mi znegovani vyrazu z [:b](/A . /B)[:/b] na [:b]AB[:/b] nedava smysl, nemelo by tam byt spise [:b](A + B)[:/b] ?
icon odpověděl(a)
avatar
Dobry den,
mate pravdu, je tam preklep :). Zajimave je ze si toho za ta leta na webu nikdo nevsiml :).

Spravne ma bejt:
[:code lang="text"]
bez předběžné úpravy negovaného součinu:
Y = A + (/A . /B)
/Y = /A . A + B
protože /A . A = 0
/Y = 0 . B = 0
je po opětovné inverzi
Y = 1

[:/code]

Všechny informace jsou zahrnuty pod GPL licenci, pokud není explicitně uveden jiný typ licence.
Používání těchto stránek ke komerčním účelům lze jen se souhlasem autora.
Všechna práva vyhrazena (c) 1997 - 2024 hacesoft.
Jste návštevník číslo: 445808
Celkem zobrazeno stránek: 17760777
Přihlásit do administrace