Kolmiarvoinen logiikka ( kolmiarvologiikka tai kolmiarvoinen logiikka ) on yksi moniarvoisen logiikan tyypeistä, joita Jan Lukasiewicz ehdotti vuonna 1920 . Kolmiarvoinen logiikka - historiallisesti ensimmäinen moniarvoinen logiikka , on kaksiarvoisen logiikan yksinkertaisin laajennus .
On olemassa selkeät TL-arvot, joissa kaikki kolme arvoa on määritelty tietyiksi numeerisiksi arvoiksi (esimerkiksi , , ) , sekä useita sumeita ternaarilogiikoita, joissa on yksi, kaksi ja kolme sumeaa loogista arvoa (ilmaistuna numeroiden mukaan arvoalueina).
Sumea kolmiosainen logiikka yhdellä sumealla arvolla täydentää arvoja ("false") ja ("tosi") sumealla arvolla "epävarmuus", joka vie (verrattuna todennäköisyyslogiikkaan ) koko intervallin . Esimerkki TL-arvoista, joissa on kaksi sumeaa arvoa, on ("vähemmän", "saa", "suurempi"), ("negatiivinen", 0, "positiivinen").
TL, jossa on kolme sumeaa arvoa, on käytännössä erittäin kiinnostava, koska kaikki mitatut (esimerkiksi antureiden avulla) tiedot ovat oikein vain tietyllä toleranssilla eli tietyllä arvoalueella. Esimerkkejä arvoista tällaisille logiikalle voivat olla kolmoset ("pienempi kuin", "saa, toleranssin sisällä", "suurempi kuin"), ("kaltevuus vasemmalle", "suora, hyväksytyissä rajoissa", "kaltevuus oikea"), ("kylmä", "viileä", "kuuma") ja muut.
Kolmiosainen logiikka, toisin kuin binääri, ei ole Boolen rengas ja sillä on oma matemaattinen laite. Se koostuu aksioomijärjestelmästä , joka määrittelee joukon {" 1 ", "0", "1"} yksittäiset ja kaksoisoperaatiot sekä niistä johdetut ominaisuudet.
Kolmiosaisen logiikan konjunktiolle ja disjunktiolle säilytetään kommutatiiviset (siirtymä), assosiatiiviset (assosiatiiviset) ja distributiiviset (distributiiviset) lait.
Lukasiewiczin negaatiosta johtuen muodostuu useita ominaisuuksia:
Kolmannen tilan läsnäolon vuoksi jotkut binäärilogiikan lait osoittautuvat kuitenkin virheellisiksi, ja niille muotoillaan kolmiosaisia analogeja. Joten ristiriitalain sijasta he alkoivat soveltaa tilojen yhteensopimattomuuden lakia, poissuljetun keskikohdan lain sijasta - tilojen täydellisyyden lakia ( suljetun neljännen lakia ), väärän Blake- Poretskin lakia, kolmen aikavälin Blake-Poretsky lakia käytetään .
Fyysisesti toteutettuna kolmiosaiset funktiot ternäärilogiikassa vastaavat ternäärisiä loogisia elementtejä , jotka eivät yleensä ole välttämättä elektronisia.
Piirit, joissa on 3-4-arvoinen logiikka, mahdollistavat käytettävien loogisten ja tallennuselementtien sekä yhteenliitäntöjen määrän vähentämisen. Kolmiarvoiset logiikkapiirit on helppo toteuttaa CMOS - tekniikalla. Kolmiarvoinen logiikka on ilmaisuvoimaisempaa kuin kaksiarvoinen logiikka.
Kolmikomponenttien - Nikolai Brusentsovin kehittämän kolmikomponentin ferriittidiodikenno - pohjalta Moskovan valtionyliopiston tietokonekeskukseen suunniteltiin vuonna 1959 pieni tietokone " Setun " , jota julkaistiin 46 kappaletta.
Alla on totuustaulukot Stephen Kleenen " vahvan määrittämättömyyden logiikan " ja Graham Priestin " paradoksilogiikan, LP " loogisille operaatioille Molemmilla logiioilla on kolme loogista arvoa - "false", "epävarmuus" (Priestin logiikassa - "paradoksi") ja "totuus", joita Kleenen logiikassa merkitään kirjaimilla F (false), U (tuntematon), T (tosi), ja Priestin logiikassa numeroilla −1, 0 ja 1 [1] .
|
|
Kleenen logiikassa arvo U on annettu lausekkeille, joilla on todella arvo T tai F, mutta tällä hetkellä tämä arvo on jostain syystä tuntematon, mikä aiheuttaa epävarmuutta. Arvolla U olevan loogisen operaation tulos voidaan kuitenkin määrittää. Esimerkiksi koska T & F = F ja F & F = F, niin U & F = F. Yleisemmin: jos jollekin loogiselle operaatiolle oper suhde
oper(F,F)=oper(F,T), niin oper (F,U)=oper(F,F)=oper(F,T);
samoin jos
oper(T,F)=oper(T,T), niin oper(T,U)=oper(T,F)=oper(T,T).
Toisin kuin Kleenen logiikassa, Priestin logiikassa arvo 0 määritellään ja sitä pidetään sekä tosi että epätosi (paradoksaalinen) samanaikaisesti. Ero on tautologioiden määritelmässä. Kun Kleenen logiikassa vain yksi erottuva totuusarvo on T, niin Priestin logiikassa erotetaan molemmat arvot 1 ja 0.
Loogisten arvojen numeerisella merkinnällä (-1, 0, 1) loogiset toiminnot vastaavat seuraavia numeerisia operaatioita:
Implikaatiooperaatio Kleene- ja Priest-logiikassa määritellään kaavalla, joka on samanlainen kuin binäärilogiikka:
.Totuustaulukot hänelle
|
|
Tämä määritelmä eroaa Lukasiewiczin logiikassa omaksutusta implikaatiomääritelystä.
Kutsumme funktiota kolmiarvoiseksi logiikkafunktioksi, jos kaikki sen muuttujat saavat arvot joukosta {0,1,2} ja funktio itse arvot samasta joukosta. Toimintoesimerkkejä: max (x, y), min (x, y), x+1 ( mod 3). Merkitsee kaikkien kolmiarvoisen logiikan funktioiden joukkoa. Toiminnalla funktioita tarkoitamme superpositiota. Funktioluokkaa K from kutsutaan suljetuksi, jos mikä tahansa K:n funktioiden superpositio kuuluu ryhmään K . Luokan K funktiojärjestelmää kutsutaan täydelliseksi, jos mikä tahansa funktio K :stä voidaan esittää tämän järjestelmän funktioiden superpositiolla. Täydellistä järjestelmää kutsutaan perustaksi, jos mitään tämän järjestelmän funktiota ei voida esittää tämän järjestelmän muiden funktioiden superpositiolla. On todistettu, että on olemassa äärellinen kanta (erityisesti, joka koostuu yhdestä funktiosta). Suljettua luokkaa K kutsutaan esitäydelliseksi, jos se ei ole sama kuin , mutta jos siihen kuulumaton funktio lisätään, syntyy . SV Yablonsky osoitti [2] , että vuonna 18 on 18 esitäytettyä luokkaa . On myös todistettu, että niillä kaikilla on äärelliset kantakannat, jotka koostuvat korkeintaan kahdesta muuttujasta riippuvista funktioista [3] . Yu. I. Yanov ja A. A. Muchnik osoittivat [4] , että on funktioluokkia, joilla ei ole perustaa, ja funktioluokkia, joilla on ääretön kanta. Tämä tarkoittaa, että suljettujen luokkien joukolla on jatkumon kardinaalisuus . Tässä kolmiarvoinen (ja mikä tahansa moniarvoinen) logiikka eroaa olennaisesti kaksiarvoisesta logiikasta, jossa, kuten Post osoitti [5] , kaikilla suljetuilla luokilla on äärellinen kanta ja suljettujen luokkien joukko on laskettavissa.
Jotkin tietokannan hallintajärjestelmät käyttävät erityistä arvoa UNKNOWN, joka voi olla loogisen toiminnon tulos, sekä arvojen TRUE ja FALSE.
TUNTEMATTOMAN arvon merkitys on "tuntematon", eli toiminnon määrittelemätön tulos. Arvoa UNKNOWN voidaan käyttää, kun sovelletussa ohjelmistokehitysjärjestelmässä käytetään erikoisarvoa NULL . Tuntematon arvo palauttaa vertailuoperaation, jos toinen tai molemmat sen operandit ovat NULLA, sekä jotkin loogiset toiminnot, jos yksi niiden operandiista on TUNTEMATTOMA. Ohjelmointikielten ehdolliset operaattorit käsittelevät UNKNOWN-arvoa samalla tavalla kuin EPÄTOSI, eli muodon rakennetta:
jos TUNTEMATON , niin a := 1 muu a := 2saa muuttujalle a arvon 2.