Zhegalkin polynom

Zhegalkin (även Žegalkin , Gégalkin eller Shegalkin ) polynom ( ryska : полиномы Жегалкина ), även känd som algebraisk normalform , är en representation av funktioner i boolesk algebra . Introducerade av den ryske matematikern Ivan Ivanovich Zhegalkin 1927, de är polynomringen över heltalen modulo 2 . De resulterande degenerationerna av modulär aritmetik resulterar i att Zhegalkin-polynom är enklare än vanliga polynom och kräver varken koefficienter eller exponenter. Koefficienter är redundanta eftersom 1 är den enda koefficienten som inte är noll. Exponenter är redundanta eftersom i aritmetik mod 2, x 2 = x . Därför är ett polynom som 3 x 2 y 5 z kongruent med, och kan därför skrivas om som, xyz .

Boolesk motsvarighet

Före 1927 hade boolesk algebra ansetts vara en kalkyl av logiska värden med logiska operationer av konjunktion , disjunktion , negation och så vidare. Zhegalkin visade att alla booleska operationer kunde skrivas som vanliga numeriska polynom, representerande de falska och sanna värdena som 0 och 1, heltal mod 2. Logisk konjunktion skrivs som xy , och logisk exklusiv - eller som aritmetisk addition mod 2, (skriven här som x y för att undvika förväxling med den vanliga användningen av + som synonym för inklusive-eller ∨). Det logiska komplementet ¬ x är då x ⊕1. Eftersom ∧ och ¬ utgör en grund för boolesk algebra, är alla andra logiska operationer sammansättningar av dessa grundläggande operationer, och därför kan polynomen i vanlig algebra representera alla booleska operationer, vilket gör att boolesk resonemang kan utföras med hjälp av elementär algebra .

skrivs den booleska 2-av-3-tröskeln eller medianoperationen som Zhegalkin-polynomet xy yz zx .

Formella egenskaper

Formellt är en Zhegalkin-monomal produkten av en ändlig uppsättning distinkta variabler (därav kvadratfri ), inklusive den tomma mängden vars produkt betecknas 1. Det finns 2 n möjliga Zhegalkin-monomialer i n variabler, eftersom varje monomial är helt specificerad av närvaro eller frånvaro av varje variabel. Ett Zhegalkin-polynom är summan (exklusiv-eller) av en uppsättning Zhegalkin-monomer, med den tomma mängden betecknad med 0. En given monomials närvaro eller frånvaro i ett polynom motsvarar att monomiets koefficient är 1 respektive 0. Zhegalkin-monomialerna, som är linjärt oberoende , spänner över ett 2 n -dimensionellt vektorutrymme över Galois-fältet GF (2) (OBS: inte GF (2 n ), vars multiplikation är helt annorlunda). De 2 2 n vektorerna i detta utrymme, dvs de linjära kombinationerna av dessa monomial som enhetsvektorer, utgör Zhegalkin-polynomen. Den exakta överensstämmelsen med antalet booleska operationer n variabler, som tar ut de n -ära operationerna på {0,1}, ger ett direkt räkneargument för att Zhegalkinpolynomen är fullständiga som en boolesk grund.

Detta vektorutrymme är inte ekvivalent med den fria booleska algebra n generatorer eftersom den saknar komplementering (bitvis logisk negation) som en operation (likväl eftersom den saknar det översta elementet som en konstant). Detta betyder inte att utrymmet inte är stängt under komplement eller saknar topp ( all-one-vektorn ) som ett element, utan snarare att de linjära transformationerna av detta och liknande konstruerade utrymmen inte behöver bevara komplement och topp. De som bevarar dem motsvarar de booleska homomorfismerna, t.ex. finns det fyra linjära transformationer från vektorrymden för Zhegalkin-polynom över en variabel till den över ingen, varav endast två är booleska homomorfismer.

Beräkningsmetod

Det finns olika kända metoder som vanligtvis används för beräkning av Zhegalkin-polynomet:

Metoden för obestämda koefficienter

Med metoden för obestämda koefficienter genereras ett linjärt system som består av alla tuplar av funktionen och deras värden. Att lösa det linjära systemet ger koefficienterna för Zhegalkinpolynomet.

Exempel

Givet den booleska funktionen , uttryck det som ett Zhegalkin-polynom. Denna funktion kan uttryckas som en kolumnvektor

.

Denna vektor bör vara resultatet av vänstermultiplicering av en vektor med obestämda koefficienter

av en 8x8 logisk matris som representerar de möjliga värden som alla möjliga konjunktioner av A, B, C kan ta. Dessa möjliga värden anges i följande sanningstabell:

.

Informationen i ovanstående sanningstabell kan kodas i följande logiska matris:

där 'S' här står för "Sierpiński", som i Sierpiński triangel , och sänkt 3 ger exponenterna för dess storlek: .

Det kan bevisas genom matematisk induktion och blockmatrismultiplikation att varje sådan "Sierpiński-matris" är sin egen invers.

Då är det linjära systemet

som kan lösas för :

,

och Zhegalkin-polynomet som motsvarar är .

Använder den kanoniska disjunktiva normalformen

Med den här metoden beräknas den kanoniska disjunktiva normalformen (en helt expanderad disjunktiv normalform ) först. Sedan ersätts negationerna i detta uttryck av ett ekvivalent uttryck med mod 2 summan av variabeln och 1. Disjunktionstecknen ändras till addition mod 2, parenteserna öppnas och det resulterande booleska uttrycket förenklas. Denna förenkling resulterar i Zhegalkin-polynomet.

Använda tabeller

Beräknar Zhegalkin-polynomet för en exempelfunktion P med tabellmetoden

Låt vara utdata från en sanningstabell för funktionen P av n variabler, så att indexet för 's motsvarar den binära indexeringen av mintermerna . Definiera en funktion ζ rekursivt genom att:

.

Anteckna det

där är binomialkoefficienten reducerad modulo 2.

Sedan

är den i: e koefficienten för ett Zhegalkin-polynom vars literaler i det i : te monomet är desamma som literalerna i den i: te mintermen, förutom att de negativa literalerna tas bort (eller ersätts med 1).

ζ-transformationen är sin egen invers, så samma typ av tabell kan användas för att beräkna koefficienterna givet koefficienterna . Bara låt

.

När det gäller tabellen i figuren, kopiera utdata från sanningstabellen (i kolumnen märkt P ) till kolumnen längst till vänster i den triangulära tabellen. Beräkna sedan successivt kolumner från vänster till höger genom att tillämpa XOR på varje par av vertikalt intilliggande celler för att fylla cellen omedelbart till höger om den översta cellen i varje par. När hela den triangulära tabellen är ifylld läser den översta raden ut koefficienterna för en linjär kombination som, när den förenklas (borttagning av nollorna), ger Zhegalkin-polynomet.

För att gå från ett Zhegalkinpolynom till en sanningstabell är det möjligt att fylla i den översta raden i den triangulära tabellen med koefficienterna för Zhegalkinpolynomet (att sätta in nollor för alla kombinationer av positiva bokstaver som inte finns i polynomet). Beräkna sedan successivt rader uppifrån och ned genom att applicera XOR på varje par av horisontellt intilliggande celler för att fylla cellen omedelbart till botten av cellen längst till vänster i varje par. När hela den triangulära tabellen är fylld kan kolumnen längst till vänster i den kopieras till kolumn P i sanningstabellen.

För övrigt, notera att denna beräkningsmetod motsvarar arbetsmetoden för den elementära cellulära automaten som kallas Regel 102 . Starta till exempel en sådan cellulär automat med åtta celler inställda med utdata från sanningstabellen (eller koefficienterna för den kanoniska disjunktiva normalformen) för det booleska uttrycket: 10101001. Kör sedan den cellulära automaten i ytterligare sju generationer samtidigt som en register över tillståndet för cellen längst till vänster. Historiken för denna cell visar sig då vara: 11000010, som visar koefficienterna för motsvarande Zhegalkin-polynom.

Pascalmetoden


Använder Pascal-metoden för att beräkna Zhegalkin-polynomet för den booleska funktionen . Raden på ryska längst ner säger: – bitvis operation "Exklusiv ELLER"

Den mest ekonomiska när det gäller mängden beräkning och ändamålsenlig för att konstruera Zhegalkin-polynomet manuellt är Pascal-metoden.

Vi bygger en tabell som består av kolumner och rader, där N är antalet variabler i funktionen. I den översta raden i tabellen placerar vi vektorn för funktionsvärden, det vill säga den sista kolumnen i sanningstabellen.

Varje rad i den resulterande tabellen är uppdelad i block (svarta linjer i figuren). I den första raden upptar blocket en cell, i den andra raden - två, i den tredje - fyra, i den fjärde - åtta och så vidare. Varje block i en viss rad, som vi kommer att kalla "nedre block", motsvarar alltid exakt två block i föregående rad. Vi kommer att kalla dem "vänster övre block" och "höger övre block".

Bygget startar från andra linjen. Innehållet i de vänstra övre blocken överförs utan förändring till motsvarande celler i det nedre blocket (gröna pilar i figuren). Därefter utförs operationen "addition modulo two" bitvis över de högra övre och vänstra övre blocken och resultatet överförs till motsvarande celler på höger sida av det nedre blocket (röda pilar i figuren). Denna operation utförs med alla linjer från topp till botten och med alla block i varje rad. Efter att konstruktionen är klar innehåller den nedersta raden en sträng av tal, som är koefficienterna för Zhegalkin-polynomet, skrivna i samma sekvens som i triangelmetoden som beskrivs ovan.

Summeringsmetoden

Grafisk representation av koefficienterna för Zhegalkinpolynomet för funktioner med olika antal variabler.

Enligt sanningstabellen är det lätt att beräkna de individuella koefficienterna för Zhegalkin-polynomet. För att göra detta, summera modulo 2 värdena för funktionen i de rader i sanningstabellen där variabler som inte är i konjunktionen (som motsvarar den koefficient som beräknas) tar nollvärden.

Antag till exempel att vi behöver hitta koefficienten för xz- konjunktionen för funktionen av tre variabler . Det finns ingen variabel y i denna konjunktion. Hitta de indatamängder där variabeln y har ett nollvärde. Dessa är uppsättningarna 0, 1, 4, 5 (000, 001, 100, 101). är koefficienten vid konjunktion xz

Eftersom det inte finns några variabler med den konstanta termen,

.

För en term som inkluderar alla variabler inkluderar summan alla värden för funktionen:

Låt oss grafiskt representera koefficienterna för Zhegalkinpolynomet som summor modulo 2 av värden på funktioner vid vissa punkter. För att göra detta konstruerar vi en kvadratisk tabell, där varje kolumn representerar värdet på funktionen vid en av punkterna, och raden är koefficienten för Zhegalkin-polynomet. Punkten i skärningspunkten mellan någon kolumn och rad betyder att värdet på funktionen vid denna punkt ingår i summan för den givna koefficienten för polynomet (se figur). Vi kallar denna tabell , där N är antalet variabler i funktionen.

Det finns ett mönster som låter dig få en tabell för en funktion av N variabler, med en tabell för en funktion av variabler. Den nya tabellen är arrangerad som en 2 × 2 matris av tabeller, och det övre högra blocket i matrisen rensas.

Gitterteoretisk tolkning

Betrakta kolumnerna i en tabell som motsvarande element i ett booleskt gitter med storleken . För varje kolumn uttrycker antalet M som ett binärt tal , sedan om och endast om , där anger bitvis ELLER.

Om raderna i tabell är numrerade, uppifrån och ned, med siffrorna från 0 till , då tabellinnehållet för radnummer R är idealet som genereras av elementet i gittret.

Notera för övrigt att det övergripande mönstret för en tabell är det för en logisk matris Sierpiński-triangel . Mönstret motsvarar också en elementär cellulär automat som kallas Regel 60 , som börjar med cellen längst till vänster inställd på 1 och alla andra celler rensade.

Använda en Karnaugh-karta

Konvertera en Karnaugh-karta till ett Zhegalkin-polynom.

Figuren visar en funktion av tre variabler, P ( A , B , C ) representerade som en Karnaugh-karta , som läsaren kan betrakta som ett exempel på hur man omvandlar sådana kartor till Zhegalkin-polynom; det allmänna förfarandet ges i följande steg:

  • Vi betraktar alla celler på Karnaugh-kartan i stigande ordning efter antalet enheter i deras koder. För funktionen av tre variabler kommer cellsekvensen att vara 000–100–010–001–110–101–011–111. Varje cell på Karnaugh-kartan är associerad med en medlem av Zhegalkin-polynomet beroende på positionerna för koden där det finns sådana. Till exempel motsvarar cell 111 medlemmen ABC, cell 101 motsvarar medlemmen AC, cell 010 motsvarar medlemmen B och cell 000 motsvarar medlemmen 1.
  • Om cellen i fråga är 0, gå till nästa cell.
  • Om cellen i fråga är 1, lägg till motsvarande term till Zhegalkin-polynomet, invertera sedan alla celler i Karnaugh-kartan där denna term är 1 (eller tillhör idealet som genereras av denna term, i ett booleskt gitter av monomer) och gå till nästa cell. Till exempel, om, när man undersöker cell 110, en etta förekommer i den, läggs termen AB till Zhegalkin-polynomet och alla celler i Karnaugh-kartan inverteras, för vilka A = 1 och B = 1. Om enheten är i cell 000, sedan läggs en term 1 till Zhegalkin-polynomet och hela Karnaugh-kartan inverteras.
  • Transformationsprocessen kan anses vara avslutad när, efter nästa inversion, alla celler i Karnaugh-kartan blir noll, eller ett tillstånd som inte bryr sig.

Möbiusförvandling

Möbius- inversionsformeln relaterar koefficienterna för ett booleskt sum-of-minterms-uttryck och ett Zhegalkin-polynom. Detta är den partiella ordningsversionen av Möbius-formeln, inte den talteoretiska. Möbius-inversionsformeln för partiella beställningar är:

,

där | x | är Hamming-avståndet för x från 0. Eftersom i Zhegalkin-algebra, kollapsar Möbius-funktionen till att vara konstanten 1.

Mängden divisorer för ett givet tal x är också den ordningsideal som genereras av det talet: . Eftersom summering är modulo 2 kan formeln räknas om som

Exempel

Som ett exempel, betrakta fallet med tre variabler. Följande tabell visar delbarhetsrelationen:

x delare av x
000 000
001 000,001
010 000, 010
011 000, 001, 010, 011
100 000, 100
101 000, 001, 100, 101
110 000, 010, 100, 110
111 000, 001, 010, 011, 100, 101, 110, 111

Sedan

Ovanstående ekvationssystem kan lösas för f , och resultatet kan sammanfattas som att det kan erhållas genom att byta ut g och f genom hela systemet ovan.

Tabellen nedan visar de binära talen tillsammans med deras associerade Zhegalkin-monomialer och booleska mintermer:

Boolean minterm ABC Zhegalkin monomial
000 1
001 C
010 B
011 före Kristus
100 A
101 AC
110 AB
111 ABC

Zhegalkin-monomialerna är naturligt ordnade efter delbarhet, medan de booleska mintermerna inte ordnar sig så naturligt; var och en representerar en exklusiv åttondel av Venn-diagrammet med tre variabler . Ordningen av monomialerna överförs till bitsträngarna enligt följande: givet och , ett par bittripletter, sedan .

Överensstämmelsen mellan en trevariabel booleska summa-of-minterms och ett Zhegalkinpolynom är då:

.

Ekvationssystemet ovan kan sammanfattas som en logisk matrisekvation :

som NJ Wildberger kallar en Boole–Möbius-transformation.

Nedan visas formen "XOR- kalkylblad " för transformationen, som går i riktningen g till f :

Relaterat arbete

År 1927, samma år som Zhegalkins artikel, publicerade den amerikanske matematikern Eric Temple Bell en sofistikerad aritmetisering av boolesk algebra baserad på Richard Dedekinds idealteori och allmänna modulära aritmetik (i motsats till aritmetik mod 2). Den mycket enklare aritmetiska karaktären hos Zhegalkin-polynom uppmärksammades först i väst (oberoende av varandra var kommunikationen mellan sovjetiska och västerländska matematiker mycket begränsad under den eran) av den amerikanske matematikern Marshall Stone 1936 när han observerade när han skrev upp sin berömda stendualitetssats att den förment lösa analogin mellan booleska algebror och ringar skulle i själva verket kunna formuleras som en exakt ekvivalens som gäller för både finita och oändliga algebror, vilket leder till att han väsentligt omorganiserar sin uppsats under de närmaste åren.

Se även

Anteckningar

Vidare läsning