Zhegalkinin polynomi

Zhegalkin-polynomi  on polynomi kentän yli , eli polynomi , jonka kertoimet ovat muotoa 0 ja 1, jossa konjunktio otetaan tulona ja poissulkeva tai summa otetaan huomioon . Ivan Zhegalkin ehdotti polynomia vuonna 1927 käteväksi keinoksi esittää Boolen logiikkafunktioita . Ulkomaisessa kirjallisuudessa Zhegalkin-polynomin muodossa olevaa esitystä kutsutaan yleensä algebralliseksi normaalimuodoksi (ANF).

Zhegalkinin lause  on väite minkä tahansa Boolen funktion esityksen olemassaolosta ja ainutlaatuisuudesta Zhegalkin-polynomin muodossa [1] .

Zhegalkin-polynomi on ei-invertoitujen muuttujien pareittain erillisten tulojen modulo-kaksi summa , jossa mikään muuttuja ei esiinny useammin kuin kerran missään tulossa, ja myös (tarvittaessa) vakio 1 [1] . Muodollisesti Zhegalkin-polynomi voidaan esittää muodossa

tai muodollisempi kuin

Esimerkkejä Zhegalkin-polynomeista:

Tausta

Postin lauseen mukaan, jotta Boolen funktioiden järjestelmä olisi täydellinen, sen tulee sisältää:

  1. Ainakin yksi funktio, joka ei tallenna 0:ta.
  2. Ainakin yksi funktio, joka ei säilytä 1.
  3. Vähintään yksi epälineaarinen funktio.
  4. Ainakin yksi ei-monotoninen toiminto.
  5. Vähintään yksi ei-itse-kaksoistoiminto.

Tämä vaatimus täyttyy erityisesti funktiojärjestelmällä (konjunktio, modulo kaksi yhteenlasku, vakio 1). Sen perusteella rakennetaan Zhegalkin-polynomit.

Esityksen olemassaolo ja ainutlaatuisuus

Zhegalkinin lauseen mukaan jokainen Boolen funktio esitetään yksilöllisesti Zhegalkin-polynomina. Lause todistetaan seuraavasti. Huomaa, että muuttuvia Boolen funktioita on n . Tässä tapauksessa konjunktiota on tarkalleen 2 n , koska jokainen n :stä mahdollisesta tekijästä joko tulee konjunktiin tai ei. Polynomissa jokaisella tällaisella konjunktiolla on 0 tai 1, eli n muuttujassa on erilaisia ​​Zhegalkin-polynomeja . Nyt riittää todistaa, että eri polynomit toteuttavat erilaisia ​​funktioita. Oletetaan päinvastoin. Sitten vertaamalla kaksi erilaista polynomia ja siirtämällä toinen niistä yhtälön toiseen osaan, saadaan polynomi, joka on identtisesti yhtä suuri kuin nolla ja jolla on nollasta poikkeavat kertoimet. Tarkastellaan sitten termiä, jonka yksikkökerroin on pienin, eli jossa on pienin määrä muuttujia (mikä tahansa, jos niitä on useita). Korvaamalla näiden muuttujien paikoille ykköset ja muiden paikoille nollia, saadaan, että tässä joukossa vain tämä termi saa yksikköarvon, eli yhden joukon nollafunktio saa arvon 1. A. ristiriita. Tämä tarkoittaa, että Zhegalkin-polynomi toteuttaa jokaisen Boolen funktion ainutlaatuisella tavalla.

Funktion esitys Zhegalkin-polynomin muodossa

Vastaavilla DNF-muunnoksilla

Verrattuna DNF :ään, Zhegalkin-polynomissa ei ole OR- ja NOT-operaatioita. Siten Zhegalkin-polynomi voidaan saada DNF:stä ilmaisemalla operaatiot OR ja NOT summausmoduulin kaksi operaatioilla ja vakiolla 1. Tätä varten käytetään seuraavia suhteita:

Alla on esimerkki DNF:n muuntamisesta Zhegalkin-polynomiksi:

Muutokset perustuvat suhteisiin

SDNF:n vastaavien muunnosten avulla

SDNF :llä on ominaisuus, että millä tahansa syötemuuttujien arvolla vain yksi lausekkeen jäsen muuttuu yksiköksi. Tällaisille lausekkeille disjunktiooperaatio vastaa modulo two -summausoperaatiota .

Kun SDNF muunnetaan Zhegalkin-polynomiksi, riittää, että kaikki disjunktiot korvataan operaatioilla modulo two additio ja päästään eroon inversioista vastaavalla muunnolla

Carnot-kartalla

Kolmen muuttujan looginen funktio , joka esitetään Carnot-karttana , muunnetaan Zhegalkin-polynomiksi seuraavissa vaiheissa:

Kolmiomenetelmä

Kolmiomenetelmällä (kutsutaan usein Pascalin kolmiomenetelmäksi) voit muuntaa totuustaulukon Zhegalkin-polynomiksi rakentamalla apukolmiotaulukon seuraavien sääntöjen mukaisesti:

Kolmiomenetelmä perustuu V. P. Suprunin esittämään lauseeseen, joka ei liity suoraan Pascalin kolmioon. Vuonna 1985 ehdotettiin binääristä kolmiomenetelmää käytettäväksi täydellisen disjunktiivisen normaalimuodon arvojen vektorin muuntamiseksi Zhegalkinin polynomikertoimien vektoriksi mielivaltaiselle symmetriselle Boolen funktiolle. Vuonna 1987 menetelmä laajennettiin mielivaltaiseen Boolen funktioon. Huomaa, että kolmiomenetelmä mahdollistaa Reed-Muller-polynomin muodostamisen negatiivisella polarisaatiolla sekä symmetrisille funktioille että mielivaltaisille funktioille. .

FFT-menetelmä

Taloudellisin laskelmien määrän suhteen ja sopivin Zhegalkin-polynomin manuaaliseen rakentamiseen on nopea Fourier-muunnos (FFT) -menetelmä.

Rakennamme taulukon, jossa on 2 N saraketta ja N  + 1 riviä, missä N  on funktion muuttujien lukumäärä. Taulukon ylimmälle riville sijoitetaan funktioarvojen vektori eli totuustaulukon viimeinen sarake.

Jaamme tuloksena olevan taulukon jokaisen rivin lohkoihin (mustat viivat kuvassa). Ensimmäisellä rivillä lohko vie yhden solun, toisessa rivissä kaksi, kolmannessa neljä, neljännessä kahdeksan jne. Jokainen lohko jossakin rivissä, jota kutsumme "alalohkoksi", vastaa aina täsmälleen kahta edellisen rivin lohkoa. Kutsutaan niitä "vasemmalle ylemmäksi lohkoksi" ja "oikeaksi ylälohkoksi".

Rakentaminen alkaa toisesta rivistä. Vasemman ylälohkon sisältö siirretään ilman muutoksia alalohkon vastaaviin soluihin (kuvassa vihreät nuolet). Sitten operaatio "modulo two additio" suoritetaan bitti kerrallaan oikean ja ylemmän vasemman lohkon yli ja saatu tulos siirretään alalohkon oikean puolen vastaaviin soluihin (kuvassa punaiset nuolet). Tämä toimenpide suoritetaan kaikilla riveillä ylhäältä alas ja kaikilla lohkoilla jokaisella rivillä. Rakentamisen valmistumisen jälkeen alarivillä on lukujono, jotka ovat Zhegalkin-polynomin kertoimia, jotka on kirjoitettu samassa järjestyksessä kuin edellä kuvatussa kolmiomenetelmässä.

Summausmenetelmä

Totuustaulukon avulla on helppo laskea Zhegalkin-polynomin yksittäiset kertoimet. Tätä varten sinun on summattava modulo 2 funktion arvot niillä taulukon riveillä, joissa muuttujat, jotka eivät ole konjunktiossa, saavat nollan arvoa.

Oletetaan esimerkiksi, että sinun täytyy löytää kerroin konjunktiosta xz kolmen muuttujan f ( x ,  y ,  z ) funktiolle. Tässä konjunktiossa ei ole y -muuttujaa . Etsitään syötejoukot, joissa muuttuja y saa nollan arvon. Nämä ovat joukot 0, 1, 4, 5 (000, 001, 100, 101). Tällöin kerroin konjunktiossa xz on yhtä suuri kuin

Koska vapaassa jäsenessä ei ole muuttujia, niin

Jäsenelle, joka sisältää kaikki muuttujat, summa sisältää kaikki funktion arvot:

Esitetään graafisesti Zhegalkin-polynomin kertoimet funktioiden arvojen summana modulo 2 joissakin kohdissa. Tätä varten rakennetaan neliötaulukko, jossa jokainen sarake edustaa funktion arvoa yhdessä pisteestä ja rivi on Zhegalkin-polynomin kerroin. Tietyn sarakkeen ja rivin leikkauspisteessä oleva piste tarkoittaa, että funktion arvo tietyssä pisteessä sisältyy tietyn polynomikertoimen summaan (katso kuva). Kutsutaan tätä taulukkoa T N , jossa N  on funktiomuuttujien lukumäärä.

On olemassa malli, jonka avulla voit saada taulukon N muuttujan funktiolle, jossa on taulukko N  ​​− 1 muuttujan funktiolle. Uusi taulukko T N +1 on järjestetty 2 × 2 -matriisiksi taulukoita T N , jolloin matriisin oikea ylälohko on tyhjennetty.

Katso myös

Muistiinpanot

  1. 1 2 Kapitonova Yu. V., Krivoy S. L., Letichevsky A. A. Diskreetin matematiikan luentoja. - SPb., BHV-Petersburg, 2004. - ISBN 5-94157-546-7 , s. 110-111.
  2. V. P. Suprun. Taulukkomenetelmä Boolen funktioiden polynomilaajennukseen // Kybernetiikka. - 1987. - Nro 1 . - S. 116-117 .
  3. V. P. Suprun. Boolen funktioiden teorian perusteet. - M.: Lenand / URSS. - 2017. - 208 s.

Kirjallisuus