Boolesk algebra-simplificering

Reducer ethvert boolesk udtryk til dets minimale sum af produkter og produkt af summer, med hver primimplikant og en række-for-række kontrol af sandhedstabellen.

Udtryk

Skriv variabler som enkelte bogstaver. AND kan være AB, A·B, A*B eller A AND B; OR er A + B eller A OR B; NOT er A', !A eller NOT A; XOR, NAND og NOR virker også.
Indsæt en operator

Op til 6 forskellige variabler og 2,000 tegn. Konstanterne 0 og 1 er tilladt.

Prøv et udtryk

Minimeret form

Din minimale form vil blive vist her

Indtast et boolesk udtryk for at se dets simpleste sum af produkter, dets produkt af summer, og hvordan de blev fundet.

Indtast et boolesk udtryk for at simplificere det.

Udtryk simplificeres i denne browser og forlader aldrig din enhed.

FAQ

Hvilke måder at skrive et udtryk på forstås?

Alle gængse konventioner kan blandes frit: ingeniørnotation (AB + A'C, med implicit AND og apostrof for NOT), programmørnotation (A && !B || C, A ^ B), logiske symboler (¬ ∧ ∨ ⊕ ⊼ ⊽) og almindelige ord (A AND B OR NOT C, NAND, NOR). Sekvenser af flere bogstaver som f.eks. ABC betyder A AND B AND C, og ordene AND, OR, NOT, XOR, NAND, NOR læses altid som operatorer.

Hvordan findes den minimale form?

Værktøjet opbygger den fulde sandhedstabel, sammensmelter tilstødende 1-rækker til primimplikanter (Quine–McCluskey-metoden), beholder de essentielle og dækker eventuelle resterende rækker med en eksakt minimumsoverdækning. Resultatet er garanteret minimalt for summen af produkter (SOP) — det er ikke en heuristik — og den samme procedure på 0-rækkerne frembringer produktet af summer (POS).

Hvad er forskellen på SOP- og POS-resultaterne?

Begge beskriver den samme funktion. Summen af produkter (SOP) forbinder AND-led med OR, såsom AB' + BC, og svarer direkte til AND–OR-kredsløb; produktet af summer (POS) forbinder OR-faktorer med AND, såsom (A + B)(B' + C), og svarer til OR–AND-kredsløb. Afhængigt af funktionen kan den ene form kræve færre gates end den anden, hvorfor værktøjet altid viser begge.

Hvorfor understøttes der højst 6 variabler?

Seks variabler giver allerede en sandhedstabel med 64 rækker, hvilket er tæt på grænsen for, hvad der stadig er læsbart og kan kontrolleres i hånden. Derudover fungerer minimeringen fortsat i teorien, men udledningen og tabellen, som denne side er bygget op omkring, ophører med at være nyttige som dokumentation. Logikdesign-software med filudlæsning er bedre egnet til funktioner med flere variabler.

Minimering af booleske udtryk med Quine–McCluskey-metoden

Inden for digitalteknik og datalogi er optimering af logiske kredsløb afgørende for at reducere strømforbrug, tidsforsinkelser og komponentomkostninger. En "Boolean Algebra Simplifier" er et digitalt værktøj, der reducerer ethvert boolesk udtryk til dets mest enkle matematiske former. Værktøjet beregner og viser både den minimale sum af produkter (SOP) og det minimale produkt af summer (POS).

For at sikre, at det fundne resultat er matematisk minimalt, anvender værktøjet Quine–McCluskey-metoden til eksakt minimumsoverdækning. Denne algoritme arbejder systematisk ved at identificere alle primimplikanter og derefter finde den mindst mulige kombination af disse, som dækker alle udtrykkets sande tilstande. Processen ledsages af en komplet sandhedstabel, der verificerer, at de minimerede former stemmer overens med det oprindelige udtryk på samtlige rækker.

Understøttede formater og syntaksregler

Værktøjet accepterer op til 6 forskellige variabler og et input på maksimalt 2,000 tegn. Variabler skal skrives som enkelte bogstaver. For at gøre indtastningen så fleksibel som muligt understøttes flere forskellige notationssystemer, som frit kan blandes:

  • AND (Konjunktion): Kan angives implicit ved at skrive variabler ved siden af hinanden (f.eks. AB), med et midterpunkt A·B, en stjerne A*B, med ordene A AND B, programmørnotationen A && B eller logiske symboler. En sekvens af flere bogstaver som ABC tolkes automatisk som A AND B AND C.
  • OR (Disjunktion): Angives med et plustegn A + B, med ordene A OR B, programmørnotationen A || B eller logiske symboler.
  • NOT (Negation): Kan skrives med en apostrof efter variablen A', et udråbstegn før !A, med ordene NOT A, symbolet ¬A eller et primtegn.
  • XOR (Eksklusivt OR): Angives som A ^ B, A XOR B eller symbolet A ⊕ B.
  • NAND: Angives som A NAND B eller symbolet .
  • NOR: Angives som A NOR B eller symbolet .
  • Konstanter: De logiske værdier 0 og 1 er tilladt som konstante input.

Brugergrænsefladen indeholder genveje under "Prøv et udtryk" til hurtigt at indlæse eksempler som "Sammensmeltning af led" (konsensus-eksempel), "Negeret produkt" (De Morgans eksempel) og "Tre-vejs XOR" (XOR-eksempel). Knappen "Ryd" tømmer indtastningsfeltet.

Værktøjets output og diagnostiske data

Når et udtryk indtastes, udfører værktøjet en øjeblikkelig beregning og præsenterer resultaterne i flere sektioner:

  1. Læst som: Viser den normerede og fortolkede udgave af det indtastede udtryk, så brugeren kan bekræfte, at syntaksen er forstået korrekt.
  2. Minimal sum af produkter (SOP): Den simplificerede SOP-form.
  3. Minimal produkt af summer (POS): Den simplificerede POS-form.
  4. Hurtigt overblik: Et diagnostisk panel, der viser:
    • Variabler: Listen over de identificerede variabler.
    • Rækker lig med 1: Antallet eller listen af mintermer.
    • Primimplikanter: Det samlede antal fundne primimplikanter.
    • Essentielle primimplikanter: Antallet af uundværlige primimplikanter.
    • Literaler, før → efter: Antallet af literaler i udtrykket før og efter minimeringen.
    • Metode: Den anvendte minimeringsmetode, som her er "Quine–McCluskey, eksakt minimumsoverdækning".

Resultatet kan nemt kopieres til udklipsholderen ved at klikke på knappen "Kopier resultat".

Trin-for-trin udledning af minimeringen

Under sektionen "Hvordan det blev simplificeret" genererer værktøjet en detaljeret tekst, der beskriver den matematiske reduktion:

  • Variabelstatus: Værktøjet angiver antallet af variabler og rækker i sandhedstabellen, f.eks. "Udtrykket bruger ‹count› variabler (‹variables›), så sandhedstabellen har ‹rows› rækker.". Hvis der kun er én variabel, skrives "Udtrykket bruger én variabel, ‹variables›, så sandhedstabellen har ‹rows› rækker.". Hvis der ingen variabler er, vises "Udtrykket bruger ingen variabler, så det evalueres til en enkelt konstant.".
  • Mintermer og makstermer: Udtrykkets sandhedsværdier defineres: "Det er lig med 1 på rækkerne Σm(‹minterms›) og 0 på rækkerne ΠM(‹maxterms›).".
  • Sammensmeltning af primimplikanter: Processen med at reducere tilstødende rækker beskrives: "Sammensmeltning af tilstødende 1-rækker så langt som muligt efterlader ‹count› primimplikanter: ‹list›.".
  • Essentielle primimplikanter: De kritiske led identificeres: "Essentielle primimplikanter — den eneste tilbageværende dækning for mindst én række: ‹list›.". Hvis ingen er essentielle, vises "Ingen primimplikant er essentiel: hver 1-række kan dækkes på mere end én måde.".
  • Overdækning af resterende rækker: Hvis der udestår rækker, angives det: "De rækker, der stadig ikke er dækket, lukkes med færrest mulige ekstra led: ‹list›.". Hvis de essentielle led er tilstrækkelige, vises "De essentielle primimplikanter dækker allerede hver 1-række, så summen er komplet.".
  • POS-udledning: For produktet af summer vises: "Den samme sammensmeltning udført på 0-rækkerne giver det minimale produkt af summer ‹pos›.".
  • Verifikation: Til sidst bekræftes resultatet: "Begge minimale former stemmer overens med det oprindelige udtryk på alle ‹rows› rækker i sandhedstabellen.".

Sandhedstabel og fejlsøgning

For at give fuld gennemsigtighed opstilles en komplet "Sandhedstabel". Tabellen indeholder kolonner for de enkelte variabler, det oprindelige udtryk (under kolonnenavnet "Udtryk") og den minimerede form (under kolonnenavnet "Minimeret SOP"). Dette gør det muligt at kontrollere rigtigheden række for række.

Hvis inputtet er tomt, viser værktøjet statusmeddelelsen "Indtast et boolesk udtryk for at se dets simpleste sum af produkter, dets produkt af summer, og hvordan de blev fundet." under titlen "Din minimale form vil blive vist her". Når en beregning lykkes, vises statusmeddelelsen "Simplificeret og kontrolleret på alle ‹rows› rækker.".

Håndtering af specialtilfælde og fejl

Værktøjet håndterer specifikke matematiske grænsetilfælde og syntaksfejl med præcise fejlmeddelelser:

  • Konstante udtryk: Hvis udtrykket er en tautologi (altid sandt), vises "Dette udtryk er altid 1: enhver kombination af værdier gør det sandt.". Hvis det er en modstrid (altid falsk), vises "Dette udtryk er altid 0: ingen kombination af værdier gør det sandt.". I begge tilfælde ledsages dette af statusmeddelelsen "Dette udtryk er konstant: det er altid lig med ‹value›.".
  • Allerede minimalt: Hvis udtrykket ikke kan reduceres yderligere, vises "Dit udtryk er allerede en minimal sum af produkter.".
  • Tomt input: Hvis der trykkes på beregn uden input, vises "Indtast et boolesk udtryk.".
  • For mange tegn: Hvis inputtet overskrider grænsen, vises "Hold udtrykket under 2,000 tegn.".
  • Ugyldige tegn: Hvis der indtastes ulovlige symboler, vises ""‹char›" (position ‹position›) er ikke en boolesk operator, variabel eller konstant.".
  • Syntaksfejl: Hvis en operator mangler en variabel, vises "En operator mangler sin operand nær position ‹position› — tjek for en uafsluttet + · eller ⊕.".
  • Ubalancerede parenteser: Hvis parenteserne ikke matcher, vises "Parenteserne er ubalancerede — tilføj eller fjern en parentes.".
  • Variabelgrænse: Hvis der indtastes mere end 6 unikke variabler, vises "Dette udtryk bruger ‹count› forskellige variabler; simplificeringen understøtter op til 6.".

Fortrolighed og databehandling

Når du bruger denne Boolean Algebra Simplifier, sker al databehandling og minimering direkte i din egen browser. Ingen data eller indtastede udtryk uploades til eksterne servere, og de forlader aldrig din enhed.


Ofte stillede spørgsmål (FAQ)

Hvorfor understøttes der højst 6 variabler?
Seks variabler giver allerede en sandhedstabel med 64 rækker, hvilket er tæt på grænsen for, hvad der stadig er læsbart og kan kontrolleres i hånden. Derudover fungerer minimeringen fortsat i teorien, men udledningen og tabellen, som denne side er bygget op omkring, ophører med at være nyttige som dokumentation. Logikdesign-software med filudlæsning er bedre egnet til funktioner med flere variabler.

Hvordan findes den minimale form?
Værktøjet opbygger den fulde sandhedstabel, sammensmelter tilstødende 1-rækker til primimplikanter (Quine–McCluskey-metoden), beholder de essentielle og dækker eventuelle resterende rækker med en eksakt minimumsoverdækning. Resultatet er garanteret minimalt for summen af produkter (SOP) — det er ikke en heuristik — og den samme procedure på 0-rækkerne frembringer produktet af summer (POS).

Hvilke måder at skrive et udtryk på forstås?
Alle gængse konventioner kan blandes frit: ingeniørnotation (AB + A'C, med implicit AND og apostrof for NOT), programmørnotation (A &&!B || C, A ^ B), logiske symboler (¬ ∧ ∨ ⊕ ⊼ ⊽) og almindelige ord (A AND B OR NOT C, NAND, NOR). Sekvenser af flere bogstaver som f.eks. ABC betyder A AND B AND C, og ordene AND, OR, NOT, XOR, NAND, NOR læses altid som operatorer.

Hvad er forskellen på SOP- og POS-resultaterne?
Begge beskriver den samme funktion. Summen af produkter (SOP) forbinder AND-led med OR, såsom AB' + BC, og svarer direkte til AND–OR-kredsløb; produktet af summer (POS) forbinder OR-faktorer med AND, såsom (A + B)(B' + C), og svarer til OR–AND-kredsløb. Afhængigt af funktionen kan den ene form kræve færre gates end den anden, hvorfor værktøjet altid viser begge.