Bula algebras vienkāršotājs

Samaziniet jebkuru Bula izteiksmi līdz tās minimālajai disjunktīvajai un konjunktīvajai normālformai, parādot katru pirmimplicentu un pārbaudi patiesuma tabulā rindu pa rindai.

Izteiksme

Rakstiet mainīgos kā atsevišķus burtus. AND var rakstīt kā AB, A·B, A*B vai A AND B; OR ir A + B vai A OR B; NOT ir A', !A vai NOT A; darbojas arī XOR, NAND un NOR.
Ievietot operatoru

Līdz 6 dažādiem mainīgajiem un 2,000 rakstzīmēm. Konstantes 0 un 1 ir atļautas.

Izmēģiniet kādu izteiksmi

Minimālā forma

Jūsu minimālā forma parādīsies šeit

Ievadiet Bula izteiksmi, lai redzētu tās vienkāršāko konjunktīvo normālformu, disjunktīvo normālformu un to, kā tās tika atrastas.

Ievadiet Bula izteiksmi, lai to vienkāršotu.

Izteiksmes tiek vienkāršotas šajā pārlūkprogrammā un nekad nepamet jūsu ierīci.

BUJ

Kādi izteiksmju pieraksta veidi tiek saprasti?

Brīvi jaucot visas izplatītākās konvencijas: inženiertehnisko stilu (AB + A'C ar noklusējuma AND un primu priekš NOT), programmēšanas stilu (A && !B || C, A ^ B), loģikas simbolus (¬ ∧ ∨ ⊕ ⊼ ⊽) un vienkāršus vārdus (A AND B OR NOT C, NAND, NOR). Vairāku burtu virknes, piemēram, ABC, nozīmē A AND B AND C, un vārdi AND, OR, NOT, XOR, NAND, NOR vienmēr tiek nolasīti kā operatori.

Kā tiek atrasta minimālā forma?

Rīks izveido pilnu patiesuma tabulu, apvieno blakus esošās 1-rindas pirmimplicentos (izmantojot Quine–McCluskey metodi), saglabā būtiskos un nosedz visas atlikušās rindas ar precīzu minimālo pārklājumu. Rezultāts garantēti ir minimāls disjunktīvās normālformas (SOP) veidā — tā nav eiristika —, un tā pati procedūra ar 0-rindām rada konjunktīvo normālformu (POS).

Kāda ir atšķirība starp SOP un POS rezultātiem?

Abas apraksta vienu un to pašu funkciju. Disjunktīvā normālforma (SOP) apvieno ar OR saskaitāmos, kas satur AND reizinājumus, piemēram, AB' + BC, un tieši atbilst AND–OR shēmām; konjunktīvā normālforma (POS) apvieno ar AND reizinātājus, kas satur OR saskaitāmos, piemēram, (A + B)(B' + C), un atbilst OR–AND shēmām. Atkarībā no funkcijas vienai formai var būt nepieciešams mazāk loģisko elementu nekā otrai, tāpēc rīks vienmēr parāda abas.

Kāpēc tiek atbalstīti ne vairāk kā 6 mainīgie?

Seši mainīgie jau rada 64 rindu patiesuma tabulu, kas ir aptuvenā robeža tam, kas vēl ir salasāms un pārbaudāms ar roku. Ārpus šī ierobežojuma minimizēšana teorētiski turpina darboties, taču atvasināšana un tabula, uz kuras balstās šī lapa, vairs nav noderīgas kā uzskatāms pierādījums. Plašākām funkcijām labāk piemērota ir loģiskās projektēšanas programmatūra ar failu izvadi.

Bula algebra ir digitālās elektronikas, datorzinātnes un matemātiskās loģikas pamats. Sarežģītu loģisko izteiksmju vienkāršošana ļauj optimizēt shēmas, samazināt loģisko elementu skaitu un uzlabot programmatūras kodu. Šis tiešsaistes rīks nodrošina tūlītēju jebkuras Bula izteiksmes reducēšanu līdz tās vienkāršākajām matemātiskajām formām, izmantojot precīzas minimizēšanas metodes.

Lietotājam ievadot izteiksmi, rīks vienlaikus aprēķina un attēlo divus galvenos vienkāršotos formātus: minimālo disjunktīvo normālformu (SOP) un minimālo konjunktīvo normālformu (POS). Papildus šīm formām tiek parādīts detalizēts vienkāršošanas procesa apraksts, visu pirmimplicentu saraksts un pilna patiesuma tabula, kas rindu pa rindai salīdzina sākotnējo izteiksmi ar iegūto rezultātu.

Atbalstītie ievades formāti un ierobežojumi

Rīks ir izstrādāts tā, lai pieņemtu dažādus pieraksta veidus, ļaujot brīvi jaukt inženiertehnisko stilu, programmēšanas valodu sintaksi, formālās loģikas simbolus vai vienkāršus vārdus. Mainīgie ir jāraksta kā atsevišķi burti.

Ievadē var izmantot šādus operatorus un konstantes:

  • AND (konjunkcija): var rakstīt kā noklusējuma reizinājumu (piemēram, AB), ar punktu A·B, ar zvaigznīti A*B, kā arī A AND B vai A && B. Vairāku burtu virknes, piemēram, ABC, tiek interpretētas kā A AND B AND C.
  • OR (disjunkcija): var rakstīt kā A + B, A OR B vai A || B.
  • NOT (noliegums): var rakstīt ar primu A', izsaukuma zīmi !A, kā arī NOT A vai ar loģikas simbolu ¬A.
  • XOR (izslēdzošais OR): var rakstīt kā A ^ B, A XOR B vai A ⊕ B.
  • NAND: var rakstīt kā A NAND B vai ar simbolu .
  • NOR: var rakstīt kā A NOR B vai ar simbolu .
  • Konstantes: ir atļauts izmantot vērtības 0 un 1.

Rīkam ir noteikti tehniski ierobežojumi, lai nodrošinātu ātru un pārskatāmu rezultātu apstrādi: maksimālais unikālo mainīgo skaits ir 6, savukārt ievades izteiksmes garums nedrīkst pārsniegt 2 000 rakstzīmes.

Saskarnē ir pieejamas ātrās saīsnes, lai izmēģinātu sagatavotus piemērus: "Termu apvienošana" (konsensa piemērs), "Noliegts reizinājums" (De Morgana likuma piemērs) un "Trīsvirzienu XOR" (XOR piemērs). Ievades lauku var pilnībā notīrīt, izmantojot pogu "Notīrīt".

Vienkāršošanas rezultāti un diagnostika

Pēc izteiksmes apstrādes rīks izvada strukturētu informāciju, kas sadalīta vairākos blokos:

  1. Nolasīts kā: parāda normalizētu un standartizētu ievadītās izteiksmes interpretāciju.
  2. Minimālā disjunktīvā normālforma (SOP): vienkāršotā summu reizinājumu forma.
  3. Minimālā konjunktīvā normālforma (POS): vienkāršotā reizinājumu summu forma.
  4. Īsumā: diagnostikas panelis, kurā redzami šādi parametri:
    • Mainīgie: identificēto mainīgo saraksts.
    • Rindas, kurās vērtība ir 1: mintermu saraksts vai skaits.
    • Pirmimplicenti: kopējais atrasto pirmimplicentu skaits.
    • Būtiskie pirmimplicenti: atrasto būtisko pirmimplicentu skaits.
    • Literāļi, pirms → pēc: literāļu skaits izteiksmē pirms un pēc vienkāršošanas.
    • Metode: izmantotā minimizēšanas metode, kas vienmēr ir "Quine–McCluskey, precīzs minimālais pārklājums".

Ja lietotājs vēlas saglabāt iegūto rezultātu, poga "Kopēt rezultātu" ļauj to uzreiz nokopēt starpliktuvē.

Detalizēts vienkāršošanas gaitu atspoguļojums

Sadaļā "Kā tas tika vienkāršots" rīks sniedz matemātisku pamatojumu katram solim, izmantojot Quine–McCluskey algoritmu:

  • Mainīgo un rindu uzskaite: atkarībā no mainīgo skaita tiek parādīts paziņojums, piemēram, "Izteiksme izmanto ‹count› mainīgos (‹variables›), tāpēc patiesuma tabulā ir ‹rows› rindas." (vai atbilstoši paziņojumi vienam mainīgajam vai konstantēm).
  • Mintermi un makstermi: tiek norādītas rindas, kurās funkcija ir patiesa vai aplama, formātā: "Tā ir vienāda ar 1 rindās Σm(‹minterms›) un 0 rindās ΠM(‹maxterms›).".
  • Pirmimplicentu noteikšana: "Apvienojot blakus esošās 1-rindas, cik vien tālu iespējams, paliek ‹count› pirmimplicenti: ‹list›.".
  • Būtisko pirmimplicentu atlase: "Būtiskie pirmimplicenti — vienīgais atlikusis pārklājums vismaz vienai rindai: ‹list›." vai "Neviens pirmimplicents nav būtisks: katru 1-rindu var nosegt vairāk nekā vienā veidā.".
  • Atlikušo rindu pārklāšana: "Vēl nenosegtās rindas tiek noslēgtas ar pēc iespējas mazāk papildu termiem: ‹list›." vai "Būtiskie pirmimplicenti jau nosedz katru 1-rindu, tāpēc summa ir pilnīga.".
  • POS formas iegūšana: "Veicot to pašu apvienošanu 0-rindām, tiek iegūta minimālā konjunktīvā normālforma ‹pos›.".
  • Verifikācija: "Abas minimālās formas sakrīt ar sākotnējo izteiksmi visās ‹rows› patiesuma tabulas rindās.".

Zem šī skaidrojuma atrodas pilna "Patiesuma tabula", kurā ir kolonnas katram mainīgajam, sākotnējai izteiksmei (kolonna "Izteiksme") un vienkāršotajai formai (kolonna "Minimālā SOP"). Tas ļauj vizuāli pārliecināties par rezultātu identiskumu katrā rindā.

Kļūdu paziņojumi un izņēmuma gadījumi

Rīks reāllaikā pārbauda ievadītās izteiksmes sintaksi un struktūru. Ja tiek konstatēta kļūda, tiek attēlots kāds no šiem paziņojumiem:

  • Ja lauks ir tukšs: "Ievadiet Bula izteiksmi.".
  • Ja pārsniegts garuma limits: "Saglabājiet izteiksmi, kas nepārsniedz 2,000 rakstzīmes.".
  • Ja izmantots neatbalstīts simbols: ""‹char›" (pozīcijā ‹position›) nav Bula operators, mainīgais vai konstante.".
  • Ja trūkst operanda: "Blakus pozīcijai ‹position› operatoram trūkst operanda — pārbaudiet, vai nav palicis nepabeigts +, · vai ⊕.".
  • Ja ir kļūda iekavās: "Iekavas nav sabalansētas — pievienojiet vai noņemiet iekavu.".
  • Ja pārsniegts mainīgo limits: "Šī izteiksme izmanto ‹count› dažādus mainīgos; vienkāršotājs atbalsta līdz 6.".

Ja ievadītā izteiksme ir konstanta (tautoloģija vai pretruna), rīks nevis veic standarta minimizēšanu, bet gan parāda atbilstošu paziņojumu:

  • Tautoloģijai: "Šī izteiksme vienmēr ir 1: katra vērtību kombinācija padara to patiesu.".
  • Pretrunai: "Šī izteiksme vienmēr ir 0: neviena vērtību kombinācija nepadara to patiesu.".
  • Vispārīgais konstantes statuss: "Šī izteiksme ir konstanta: tā vienmēr ir vienāda ar ‹value›.".

Ja ievadītā izteiksme jau sākotnēji ir bijusi maksimāli vienkāršota, parādās paziņojums: "Jūsu izteiksme jau ir minimāla disjunktīvā normālforma.".

Datu apstrāde un privātums

Lietojot šo rīku, visi aprēķini un izteiksmju vienkāršošana tiek veikta lokāli lietotāja tīmekļa pārlūkprogrammā. Ievadītie dati un izteiksmes netiek augšupielādēti serveros un nekad nepamet lietotāja ierīci.

Biežāk uzdotie jautājumi (FAQ)

Kāpēc tiek atbalstīti ne vairāk kā 6 mainīgie?
Seši mainīgie jau rada 64 rindu patiesuma tabulu, kas ir aptuvenā robeža tam, kas vēl ir salasāms un pārbaudāms ar roku. Ārpus šī ierobežojuma minimizēšana teorētiski turpina darboties, taču atvasināšana un tabula, uz kuras balstās šī lapa, vairs nav noderīgas kā uzskatāms pierādījums. Plašākām funkcijām labāk piemērota ir loģiskās projektēšanas programmatūra ar failu izvadi.

Kā tiek atrasta minimālā forma?
Rīks izveido pilnu patiesuma tabulu, apvieno blakus esošās 1-rindas pirmimplicentos (izmantojot Quine–McCluskey metodi), saglabā būtiskos un nosedz visas atlikušās rindas ar precīzu minimālo pārklājumu. Rezultāts garantēti ir minimāls disjunktīvās normālformas (SOP) veidā — tā nav eiristika —, un tā pati procedūra ar 0-rindām rada konjunktīvo normālformu (POS).

Kādi izteiksmju pieraksta veidi tiek saprasti?
Brīvi jaucot visas izplatītākās konvencijas: inženiertehnisko stilu (AB + A'C ar noklusējuma AND un primu priekš NOT), programmēšanas stilu (A &&!B || C, A ^ B), loģikas simbolus (¬ ∧ ∨ ⊕ ⊼ ⊽) un vienkāršus vārdus (A AND B OR NOT C, NAND, NOR). Vairāku burtu virknes, piemēram, ABC, nozīmē A AND B AND C, un vārdi AND, OR, NOT, XOR, NAND, NOR vienmēr tiek nolasīti kā operatori.

Kāda ir atšķirība starp SOP un POS rezultātiem?
Abas apraksta vienu un to pašu funkciju. Disjunktīvā normālforma (SOP) apvieno ar OR saskaitāmos, kas satur AND reizinājumus, piemēram, AB' + BC, un tieši atbilst AND–OR shēmām; konjunktīvā normālforma (POS) apvieno ar AND reizinātājus, kas satur OR saskaitāmos, piemēram, (A + B)(B' + C), un atbilst OR–AND shēmām. Atkarībā no funkcijas vienai formai var būt nepieciešams mazāk loģisko elementu nekā otrai, tāpēc rīks vienmēr parāda abas.