Bulio algebros skaičiuoklė

Supaprastinkite bet kurį Bulio reiškinį iki jo minimalios sandaugų sumos ir sumų sandaugos su kiekvienu pirminiu implikantu bei teisingumo lentelės patikra.

Reiškinys

Kintamuosius rašykite kaip pavienes raides. AND gali būti AB, A·B, A*B arba A AND B; OR yra A + B arba A OR B; NOT yra A', !A arba NOT A; taip pat veikia XOR, NAND ir NOR.
Įterpti operatorių

Iki 6 skirtingų kintamųjų ir 2,000 simbolių. Konstantos 0 ir 1 yra leidžiamos.

Išbandykite reiškinį

Minimali forma

Čia pasirodys jūsų minimali forma

Įveskite Bulio reiškinį, kad pamatytumėte jo paprasčiausią sandaugų sumą, sumų sandaugą ir jų radimo eigą.

Įveskite Bulio reiškinį, kad jį supaprastintumėte.

Reiškiniai supaprastinami šioje naršyklėje ir niekada nepalieka jūsų įrenginio.

DUK

Kokie reiškinio užrašymo būdai yra suprantami?

Laisvai derinamos visos įprastos konvencijos: inžinerinis stilius (AB + A'C, su numanomu AND ir primu, reiškiančiu NOT), programavimo stilius (A && !B || C, A ^ B), loginiai simboliai (¬ ∧ ∨ ⊕ ⊼ ⊽) ir paprasti žodžiai (A AND B OR NOT C, NAND, NOR). Kelių raidžių seka, pavyzdžiui, ABC, reiškia A AND B AND C, o žodžiai AND, OR, NOT, XOR, NAND, NOR visada suprantami kaip operatoriai.

Kaip randama minimali forma?

Įrankis sukuria pilną teisingumo lentelę, sujungia gretimas 1-eilutes į pirminius implikantus (Quine–McCluskey metodas), išlaiko esminius ir padengia likusias eilutes tiksliu minimaliu padengimu. Rezultatas garantuotai yra minimalus sandaugų sumos formoje — tai nėra heuristika — o atlikus tą pačią procedūrą su 0-eilutėmis, gaunama sumų sandauga.

Kuo skiriasi SOP ir POS rezultatai?

Abu aprašo tą pačią funkciją. Sandaugų suma (SOP) sujungia AND narius OR operacija, pavyzdžiui, AB' + BC, ir tiesiogiai atitinka AND–OR schemas; sumų sandauga (POS) sujungia OR narius AND operacija, pavyzdžiui, (A + B)(B' + C), ir atitinka OR–AND schemas. Priklausomai nuo funkcijos, vienai formai gali reikėti mažiau loginių elementų nei kitai, todėl įrankis visada rodo abi.

Kodėl palaikoma ne daugiau kaip 6 kintamieji?

Šeši kintamieji jau sukuria 64 eilučių teisingumo lentelę, o tai yra riba, kurią dar galima perskaityti ir patikrinti rankiniu būdu. Viršijus šią ribą, minimizavimas teoriškai veikia toliau, tačiau išvedimas ir lentelė, kuriais remiasi šis puslapis, nustoja būti naudingi kaip vaizdiniai įrodymai. Platesnėms funkcijoms labiau tinka loginių schemų projektavimo programinė įranga su failų išvestimi.

Bulio algebros minimizavimas skaitmeninėje logikoje

Bulio algebros reiškinių supaprastinimas yra pagrindinis skaitmeninių schemų projektavimo ir programinės įrangos optimizavimo žingsnis. Rankiniu būdu atliekamas minimizavimas, naudojant algebrines taisykles ar Karnaugh žemėlapius (K-maps), greitai tampa sudėtingas ir reikalauja daug laiko, kai kintamųjų skaičius viršija keturis. Ši Bulio algebros skaičiuoklė leidžia akimirksniu rasti minimalias loginių funkcijų formas, pateikdama tiek minimalią sandaugų sumą (SOP), tiek minimalią sumų sandaugą (POS). Kartu su rezultatais pateikiamas išsamus sprendimo kelias, pagrįstas Quine–McCluskey algoritmu, nustatomi visi pirminiai implikantai ir sugeneruojama teisingumo lentelė, skirta rezultatų teisingumui patikrinti.

Įvesties formatai ir palaikomi operatoriai

Skaičiuoklė sukurta taip, kad suprastų įvairias užrašymo sistemas, naudojamas inžinerijoje, programavime ir formaliojoje logikoje. Kintamieji įvedami kaip pavienės raidės, o skirtingų tipų operatoriai gali būti laisvai derinami viename reiškinyje.

Palaikomi šie loginių operacijų užrašymo būdai:

  • AND (konjunkcija): gali būti rašoma kaip numanoma sandauga be jokio simbolio (pavyzdžiui, AB), taip pat naudojant tašką A·B, žvaigždutę A*B, žodį A AND B, programavimo operatorių A && B arba loginius simbolius. Kelių raidžių seka, pavyzdžiui, ABC, yra interpretuojama kaip A AND B AND C.
  • OR (disjunkcija): rašoma kaip pliusas A + B, žodis A OR B, programavimo operatorius A || B arba loginis simbolis.
  • NOT (neigimas): nurodomas primu po kintamojo A', šauktuku prieš kintamąjį !A, žodžiu NOT A, simboliu ¬A arba tiesiog pirminiu simboliu.
  • XOR (griežtoji disjunkcija): rašoma kaip stogelis A ^ B, žodis A XOR B arba simbolis A ⊕ B.
  • NAND: rašoma kaip A NAND B arba naudojant simbolį .
  • NOR: rašoma kaip A NOR B arba naudojant simbolį .
  • Konstantos: reiškinyje leidžiama naudoti logines konstantas 0 ir 1.

Sąsajoje esantys valdymo elementai leidžia greitai įterpti reikiamus operatorius naudojant mygtuką „Įterpti operatorių“. Taip pat galima pasinaudoti paruoštais pavyzdžiais skiltyje „Išbandykite reiškinį“:

  • Narių sujungimas (konsensuso teoremos pavyzdys);
  • Neigta sandauga (De Morgano dėsnių pavyzdys);
  • Trigubas XOR (XOR operacijos pavyzdys).

Įvesties lauką galima visiškai išvalyti vienu paspaudimu, naudojant mygtuką „Išvalyti“. Skaičiuoklė palaiko reiškinius, kuriuose naudojama iki 6 skirtingų kintamųjų, o maksimalus įvedamo teksto ilgis yra 2 000 simbolių.

Quine–McCluskey algoritmas ir minimizavimo eiga

Skaičiuoklė naudoja Quine–McCluskey algoritmą su tikslaus minimalaus padengimo metodu. Skirtingai nuo heuristinių metodų, šis algoritmas garantuoja, kad gautas rezultatas bus absoliučiai minimalios formos.

Procesas vyksta keliais etapais, kurie vizualizuojami skiltyje „Kaip buvo supaprastinta“:

  1. Kintamųjų nustatymas: įrankis nustato kintamųjų skaičių ir sukuria atitinkamą teisingumo lentelę. Jei naudojamas vienas kintamasis, rodomas pranešimas: „Reiškinys naudoja vieną kintamąjį, ‹variables›, todėl teisingumo lentelėje yra ‹rows› eilutės.“. Jei kintamųjų daugiau: „Reiškinys naudoja ‹count› kintamuosius (‹variables›), tos teisingumo lentelėje yra ‹rows› eilutės.“. Jei kintamųjų nėra: „Reiškinys nenaudoja jokių kintamųjų, todėl jo reikšmė yra viena konstanta.“.
  2. Mintermų ir makstermų išskyrimas: nustatomos lentelės eilutės, kuriose reiškinio reikšmė lygi 1 (mintermai) ir 0 (makstermai). Tai aprašoma tekstu: „Jis lygus 1 eilutėse Σm(‹minterms›) ir 0 eilutėse ΠM(‹maxterms›).“.
  3. Gretimų eilučių sujungimas: sistemingai jungiant gretimas vienetų eilutes, nustatomi visi pirminiai implikantai. Šis žingsnis pateikiamas kaip: „Kiek įmanoma sujungus gretimas 1-eilutes, lieka ‹count› pirminiai implikantai: ‹list›.“.
  4. Esminių pirminių implikantų paieška: nustatomi tie implikantai, kurie vieninteliai padengia bent vieną vienetų eilutę. Jei tokių yra, jie išvardijami: „Esminiai pirminiai implikantai — vienintelis likęs padengimas bent vienai eilutei: ‹list›.“. Jei visi vienetai gali būti padengti keliais būdais, rodoma: „Nė vienas pirminis implikantas nėra esminis: kiekviena 1-eilutė gali būti padengta daugiau nei vienu būdu.“.
  5. Likusio padengimo sprendimas: jei po esminių implikantų parinkimo lieka nepadengtų vienetų, jie padengiami mažiausiu įmanomu papildomų narių skaičiumi: „Vis dar nepadengtos eilutės yra uždaromos su mažiausiu papildomų narių skaičiumi: ‹list›.“. Jei esminiai implikantai iškart padengia viską, išvedama: „Esminiai pirminiai implikantai jau padengia kiekvieną 1-eilutę, todėl suma yra baigta.“.
  6. POS formos radimas: analogiškas sujungimo procesas atliekamas su nulinėmis eilutėmis, siekiant gauti minimalią sumų sandaugą: „Atlikus tą patį sujungimą su 0-eilutėmis, gaunama minimali sumų sandauga ‹pos›.“.
  7. Verifikacija: abi gautos formos yra patikrinamos su pradiniu reiškiniu visose teisingumo lentelės eilutėse: „Abiejų minimalių formų reikšmės sutampa su pradiniu reiškiniu visose ‹rows› teisingumo lentelės eilutėse.“.

Rezultatų analizė ir diagnostika

Sėkmingai atlikus skaičiavimus, vartotojui pateikiamas išsamus rezultatų blokas. Skiltyje „Apžvalga“ pateikiami šie diagnostiniai duomenys:

  • Kintamieji: aptiktų unikalių kintamųjų sąrašas.
  • Eilutės, lygios 1: mintermų sąrašas arba jų skaičius.
  • Pirminiai implikantai: bendras rastų pirminių implikantų skaičius.
  • Esminiai pirminiai implikantai: nustatytų esminių pirminių implikantų skaičius.
  • Literalai, prieš → po: literalų skaičiaus pokytis, rodantis supaprastinimo efektyvumą.
  • Metodas: naudojamas minimizavimo algoritmas (rodoma „Quine–McCluskey, tikslus minimalus padengimas“).

Žemiau pateikiami pagrindiniai rezultatai: „Minimali sandaugų suma (SOP)“ ir „Minimali sumų sandauga (POS)“. Gautą rezultatą galima nukopijuoti į iškarpinę naudojant mygtuką „Kopijuoti rezultatą“. Taip pat sugeneruojama pilna „Teisingumo lentelė“, kurioje stulpeliai „Reiškinys“ ir „Minimali SOP“ leidžia vizualiai įsitikinti, kad supaprastinta forma veikia identiškai pradinei funkcijai.

Ribiniai atvejai ir klaidų pranešimai

Skaičiuoklė apdoroja specialias logines būsenas bei neteisingas įvestis, pateikdama aiškius pranešimus:

Situacija / Klaida Rodomas pranešimas
Tuščia įvestis „Įveskite Bulio reiškinį.“
Sėkmingas supaprastinimas „Supaprastinta ir patikrinta visose ‹rows› eilutėse.“
Reiškinys yra tautologija „Šis reiškinys visada lygus 1: kiekviena reikšmių kombinacija padaro jį teisingu.“ (arba bendras statusas: „Šis reiškinys yra konstanta: jis visada lygus 1.“)
Reiškinys yra prieštaravimas „Šis reiškinys visada lygus 0: jokia reikšmių kombinacija nepadaro jo teisingu.“ (arba bendras statusas: „Šis reiškinys yra konstanta: jis visada lygus 0.“)
Reiškinys jau yra minimalus „Jūsų reiškinys jau yra minimali sandaugų suma.“
Viršytas simbolių skaičius „Reiškinys neturi viršyti 2,000 simbolių.“
Neleistinas simbolis „„‹char›“ (‹position› pozicijoje) nėra Bulio operatorius, kintamasis ar konstanta.“
Sintaksės klaida / trūkstamas argumentas „Šalia ‹position› pozicijos operatoriui trūksta argumento — patikrinkite, ar nėra nebaigto + · arba ⊕.“
Nesubalansuoti skliaustai „Skliaustai nesubalansuoti — pridėkite arba pašalinkite skliaustelį.“
Per daug kintamųjų „Šis reiškinys naudoja ‹count› skirtingus kintamuosius; skaičiuoklė palaiko iki 6.“

Duomenų apdorojimas ir privatumas

Reiškiniai supaprastinami šioje naršyklėje ir niekada nepalieka jūsų įrenginio.

Dažniausiai užduodami klausimai

Kodėl palaikoma ne daugiau kaip 6 kintamieji?
Šeši kintamieji jau sukuria 64 eilučių teisingumo lentelę, o tai yra riba, kurią dar galima perskaityti ir patikrinti rankiniu būdu. Viršijus šią ribą, minimizavimas teoriškai veikia toliau, tačiau išvedimas ir lentelė, kuriais remiasi šis puslapis, nustoja būti naudingi kaip vaizdiniai įrodymai. Platesnėms funkcijoms labiau tinka loginių schemų projektavimo programinė įranga su failų išvestimi.

Kaip randama minimali forma?
Įrankis sukuria pilną teisingumo lentelę, sujungia gretimas 1-eilutes į pirminius implikantus (Quine–McCluskey metodas), išlaiko esminius ir padengia likusias eilutes tiksliu minimaliu padengimu. Rezultatas garantuotai yra minimalus sandaugų sumos formoje — tai nėra heuristika — o atlikus tą pačią procedūrą su 0-eilutėmis, gaunama sumų sandauga.

Kokie reiškinio užrašymo būdai yra suprantami?
Laisvai derinamos visos įprastos konvencijos: inžinerinis stilius (AB + A'C, su numanomu AND ir primu, reiškiančiu NOT), programavimo stilius (A &&!B || C, A ^ B), loginiai simboliai (¬ ∧ ∨ ⊕ ⊼ ⊽) ir paprasti žodžiai (A AND B OR NOT C, NAND, NOR). Kelių raidžių seka, pavyzdžiui, ABC, reiškia A AND B AND C, o žodžiai AND, OR, NOT, XOR, NAND, NOR visada suprantami kaip operatoriai.

Kuo skiriasi SOP ir POS rezultatai?
Abu aprašo tą pačią funkciją. Sandaugų suma (SOP) sujungia AND narius OR operacija, pavyzdžiui, AB' + BC, ir tiesiogiai atitinka AND–OR schemas; sumų sandauga (POS) sujungia OR narius AND operacija, pavyzdžiui, (A + B)(B' + C), ir atitinka OR–AND schemas. Priklausomai nuo funkcijos, vienai formai gali reikėti mažiau loginių elementų nei kitai, todėl įrankis visada rodo abi.