Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ч2 16-k (Айдер)

.docx
Скачиваний:
34
Добавлен:
08.02.2016
Размер:
423.22 Кб
Скачать

Информация взята с :

http://lvf2004.com/lect_t2.html

К-значная логика

Введение в к-значную логику. Элементарные функции К-значной логики

   В   k- значной логике значения аргументов и значения функции могут принимать любые значения из следующего множества {0, 1, …, к-1}.   

Функция  f(x, …, x)  будет полностью определена, если задана ее таблица, т.е. заданы ее значения для всех наборов  значений переменных.

Например, для некоторой функции двух переменных при    k = 3   это может быть следующая таблица                  

                                                                                                    Таблица 2.1        

   x1

 0

 0

 0

 1

 1

 1

 2

 2

 2

   x2

 0

 1

 2

 0

 1

 2

 0

 1

 2

f(x1, x2)

 0

 0

 1

 2

 0

 2

 1

 0

 1

            Совокупность всех функций  k– значной логики, зависящих от n  переменных обозначается  Р. Их число равно  Р = k. 

Например, при  k = 3   число функций от двух переменных равно  3^9 = 19683, т.е. это множество практически необозримо. Поэтому, обычно вместо табличного задания функции  k- значной логики функцию задают при помощи алгоритма вычислимости функции.

 Понятия фиктивной и существенной переменных, эквивалентных функций, формулы, операций суперпозиции и замыкания, замкнутого класса, базиса и другие в  k –значной логике определяются так же, как соответствующие понятия в двузначной логике. Поэтому в дальнейшем приводятся определения только таких понятий, которые чем ,то существенным отличаются от аналогичных понятий в Р.

            Следующие функции k – значной логики называются элементарными.

            1). Константы:       0, 1, …, k-1.

Эти функции рассматриваются как функции, зависящие от произвольного конечного числа переменных (включая и нуль переменных).

            2). Отрицание Поста:     !х = x + 1 (mod k).

 Здесь  !х(не икс)  представляет обобщение отрицания в смысле “ циклического “ сдвига значений. 

3). Отрицание Лукашевича:     ~x = (k-1) – x. 

Оно представляет другое обобщение отрицания в смысле “зеркального“

отображения значений. Другое обозначение:   Nx.

4). Характеристическая функция первого рода значения  i: 

                                     ji(x) =           i =  0, 1, …, k-1.

5). Характеристическая функция второго рода значения  i:

                                    Ji(x) =        i = 0,1, …, k-1.

6). Минимум  x  и  y:      min ( x,y ). 

 Эта функция представляет обобщение конъюнкции. Другое  ее обозначение:

                                        x&y     или     xy.

            7). Максимум  x  и  y:         max ( x,y ).

Эта функция представляет обобщение дизъюнкции. Другое ее обозначение:  x v y.

            8) Сумма по модулю  k:        x + y (mod k).

            9). Произведение по модулю k:        xy (mod k).

            10). Усеченная разность :

                                                             x  ч y =            

            11). Импликация :        x -> y =         

            12). Функция Вебба :  V(x,y) = max ( x,y ) + 1 (mod k).  

Эта функция представляет собой аналог функции Шеффера. 

            13). Разность по модулю k:           x – y =   

           

            В табл 2.2 приведены значения некоторых элементарных функций при   k = 3.

                                                                                                                              Таблица 2.2

x

y

max(x,y)

min(x,y)

x+y(mod 3)

xy(mod 3)

xчy

xy

x - y

V(x,y)

0

0

   0

   0

    0

    0

  0

  2

  0

    1

0

1

   1

   0

    1

    0

  0

  2

  2

    2

0

2

   2

   0

    2

    0

  0

  2

  1

    0

1

0

   1

   0

    1

    0

  1

  1

  1

    2

1

1

   1

   1

    2

    1

  0

  2

  0

    2

1

2

   2

   1

    0

    2

  0

  2

  2

    0

2

0

   2

   0

    2

    0

  2

  0

  2

    0

2

1

   2

   1

    0

    2

  1

  1

  1

    1

2

2

   2

   2

    1

    1

  0

  2

  0

    2

            Следующие равенства вводятся по определению (при  n > 2): 

max ( x, …, x, x)  =  max [ max ( x, …, x ), x], 

min( x, …, x) =  min [ min ( x, …, x ), x].

2) представление функций К-значной логики I и II формы

        Любую функцию  f (x, …, x)   из  P можно представить в так называемой первой основной форме, являющейся аналогом СДНФ для функций двузначной логики

 f ( x1, …, xn ) =  max { min [ f (s1, …, sn),  Js1(x1),  Js2(x2), …, Jsn(xn) ] },              (2.4)

                               s

где максимум берется по всем наборам   s = (s1, …, sn)  значений переменных

x1, …, xn. 

 Пример. Представить в первой форме при  k = 3  следующую функцию:

                            f ( x, y )  =  max { j0 (x) j0(y),  x1 [ j1(y)  +  2 · j2(y) ] }.

Обозначим через         f1 =  j0(x) · j0(y),         f =  j1(y)  + 2 · j2(y) .  

Составим таблицу заданной функции.

                                                                                                                Таблица 2.8

 x

 y

J0(x)

j 0(y)

 F1

j 1(y)

J 2(y)

2j2(y)

  F2

x·f2

f(x,y)

 0

 0

  1

  1

 1

  0

  0

  0

  0

  0

  1

 0

 1

  1

  0

 0

  1

  0

  0

  1

  0

  0

 0

 2

  1

  0

 0

  0

  1

  2

  2

  0

  0

 1

 0

  0

  1

 0

  0

  0

  0

  0

  0

  0

 1

 1

  0

  0

 0

  1

  0

  0

  1

  1

  1

 1

 2

  0

  0

 0

  0

  1

  2

  2

  2

  2

 2

 0

  0

  1

 0

  0

  0

  0

  0

  0

  0

 2

 1

  0

  0

 0

  1

  0

  0

  1

  2

  2

 2

 2

  0

  0

 0

  0

  1

  2

  2

  1

  1

            По первым двум и последнему столбцам табл.2.8 записываем правую часть выражения (2.4). Тогда получим:

f ( x, y )  =  max { min [ 1, J(x), J(y)], min [ 0, J(x), J(y)], min [ 0, J(x), J(y)],  

 min [ 0, J(x), J(y)], min [ 1, J(x), J(y)], min [ 2, J(x), J(y)], min [ 0, J(x), J(y)], 

min [ 2, J(x), J(y)], min [ 1, J(x), J(y)] }.

            Правую часть этого выражения можно упростить т.к. “слагаемые” в фигурных скобках для которых значения функции   f(x,y)  равны нулю будут равны нулю. Таких  слагамых четыре. Кроме того, “слагаемые “ для которых значения функции равны двум

можно записать без  2. Произведя эти упрощения, получим искомую первую форму данной функции:

f ( x, y )  =   max { min [1, J(x), J(y)], min [ 1, J(x), J(y)], min [ J(x), J(y)],

min [ J(x), J(y)], min [ 1, J(x), J(y)] }.

Справедливо  еще одно представление для функции   k – значной логики, назы-

ваемое второй основной формой:

f ( x1, …, xn)  =  f ( s ) · js1(x1) …jsn(xn),                                 (2.5)

где суммирование ведется по всем наборам  s = (s1, …, sn)  значений переменных

x, …, x, причем сумма и произведение берутся по  mod k.

Пример. Представить во второй форме функцию, заданную в предыдущем примере.

            Подставляя в правую часть выражения (2.5), значения первого, второго и пос-леднего столбцов табл. 2.5, получим:

f ( x, y )  =  1·j(x) j(y) + 0·j(x) j(y) + 0·j(x) j(y) + 0·j(x) j(y) + 1·j(x) j(y) + 

+ 2·j(x) j(y) + 0·j(x) j(y) + 2·j(x) j(y) + 1·j(x) j(y) = 

= j(x) j(y) + j(x) j (y) + 2·j(x) j(y) + 2·j(x) j(y) + j(x) j(y).

Последнее выражение и является второй формой для данной функции.

            Третьей основной формой функции n  переменных, являющейся аналогом СКНФ     для функции двузначной логики, называется следующее выражение: 

f ( x, …, x) = min { max [ f (s, …, s),  ~ J(x),  ~ J(x), …, ~ J(x) ] }       (2.6)

где минимум берется по всем наборам  s = (s, …, s) значений переменных  x, …, x.

            Пример. Представить в форме (2.6) функцию предыдущего примера. 

Подставляя в правую часть выражения (2.6) значения первого, второго и последнего столбцов табл.2.8, получим:

f ( x, y )  = min { max [ 1, ~J(x), ~J(y)], max [ 0, ~J(x), ~J(y)], max [ 0, ~J(x), ~J(y)],

max [ 0, ~J(x), ~J(y)], max [ 1, ~J(x), ~J(y)], max [ 2, ~J(x), ~J(y)],

max [ 0, ~J(x), ~J(y)], max [ 2, ~J(x), ~J(y)], max [ 1, ~J(x), ~J(y)]}

Убирая из правой части этого выражения, шестое и восьмое “слагаемые” и значения функции равные нулю, получим искомую форму данной функции:

f ( x, y ) = min { max [1, ~J(x), ~J(y)], max [ ~J(x), ~J(y)], max [ ~J(x), ~J(y)],

max [ ~J(x), ~J(y)], max [ 1, ~J(x), ~J(y)], max [ ~J(x)], ~J(y)],

max [ 1,~J(x),~J(y)] }.

3) примеры полных систем в Рk (искать в "Яблонский " введение в дискретную математику"")

+)4замкнутые системы. Примеры.:

   Определение полноты системы функций в k- значной логике аналогично соот-

ветствующему определению в двузначной логике.

            Определение. Система функций f, …, f из  P называется (функционально)

полной, если любая функция из P может быть записана в виде формулы через функ-ции этой системы.

            Для обоснования полноты системы функций в  k – значной логике можно так же

использовать принцип сведения задачи о полноте других систем, применяемый п.1.7.

Приведем некоторые примеры полных систем в  k – значной логике.

1.      Множество всех функций из  P  является полной системой.

2.Система Россера-Туркетта:

                                                   {0, 1, …, k-1, J(x),…, J(x), min(x,y), max(x,y)}

– полная система в  P.

Действительно, для произвольной функции из  P  справедливо равенство (2.4),

правая часть которого состоит из функций данной системы, т.е. любая функция из  P

выражается через эти функции.

3.      Система Поста{ , max ( x,y ) } является полной.

4.      Система:  { V(x,y) } – полная. Вопрос о ее полноте может быть легко све-

ден к полноте системы  3. 

            В k – значных логиках исследование произвольной системы функций на полно-ту сопряжено с большими техническими трудностями: использование критерия полно-

ты, основанного на рассмотрении всех предполных классов в P, даже при k = 3 и 4

требует проверки весьма значительного числа условий т.к. в P существует ровно 18,

а в  P – ровно 82  предполных классов. Доказательство полноты конкретных систем

в P проводится обычно методом сведения к заведомо полным системам.

            С понятием полноты связано понятие замыкания и замкнутого класса, определе-ния которых аналогичны соответственным определениям для двузначной логики.

            Приведем примеры замкнутых классов.

1.      Класс P, очевидно, является замкнутым.

2.      Пусть e  E. Обозначим через  T  множество всех функций  f (x, …, x)

из  P сохраняющих  e, т.е. таких, что f (a, …, a)  e, если  a  e, ( i = 1, …, n). Класс T очевидно, является замкнутым.

3.      Множество всех линейных функций из P образует замкнутый класс линей-

ных функций, который обозначается через  L ( или L ). Этот класс отличен от P при любом k > 2.

4.      Множество всех функций из P, представимых полиномами по модулю k, 

является замкнутым классом в P.

            Понятие замкнутого класса может быть приложено к решению вопроса об обос-новании неполноты некоторых систем.

            Пример. Доказать, что система   M = { ~x, max (x,y) } не является полной.

Пусть  e = { 0, (k-1) }. Так как обе функции системы сохраняют e, то [M] T. Поскольку при  k > 2,     e ` E , то T не содержит, например константу 1. Значит при   

k > 2     M    не будет полной системой.

            На этом примере видно, что хотя данная система и является обобщением полной

cистемы     { , x  y }    булевых функций, она не является полной. 

            Предыдущий материал показывает, что во многом    k – значные логики похожи на двузначную логику. В них сохраняются многие результаты, имеющие место в дву-

значной логике. Однако есть и существенные отличия в этих логиках. Приведем некоторые из них.

            Для двузначной логики имеем: 

Каждый замкнутый класс имеет конечный базис.

Мощность множества всех замкнутых классов в P счетная.

Всякая логическая функция в  P  может быть записана в виде полинома по модулю 2.

Для k – значной логики имеем: 

Существуют в P замкнутые классы не имеющие конечного базиса.

Мощность множества всех замкнутых классов в  P  равна континууму.

Всякая логическая функция в  P  может быть записана в виде полинома по

модулю  k  в том и только в том случае, когда  k – простое число.

5) представление функций в Pk поленома.

Определение. Полиномом по модулю k  от переменных    x, …, x  называет-ся выражение вида:   a + a1· X1 + … + an· Xn,  где коэффициенты  a  принадлежат множеству   E,  а  X – либо некоторая переменная, либо произведение переменных, причем сумма и произведения берутся по модулю  k. 

            Говорят, что некоторая функция из  P  представима полиномом по модулю k, если существует полином по модулю  k, равный этой функции.

            Теорема. Представление каждой функции из  P полиномом по модулю  k  возможно в том и только в том случае, когда  k простое число. Если  k – составное  число, то в  P имеются функции, представимые полиномами по модулю  k , и функции не представимые полиномами.

Например, константы  0, 1, …, k-1  и “полиномиальные “ функции   x, x, x · y,  x + y   представимы полиномами, а  функции   j(x),   max (x,y),   min (x,y),   x ч y

не представимы. 

            Покажем, что если  k – простое число, то характеристическую функцию первого рода можно представить в следующем виде:

j(x) = 1 – x,     j(x) = j(x-i),    i = 1, …, k-1.                                                  (2.7)

Здесь, как обычно, разность и степень берутся по модулю  k.

            Пусть  k = 3. Тогда из (2.7) получим

                                           j(x) = 1 - x,

                                           j(x)  =  j( x-1 )  =  1 – ( x-1 ) =  2 x  - x,                    (2.8) 

                                           j(x)  =  j( x-2 )  =  1 – (x-2) =  x - x.

            Подставляя в правые части полученных равенств поочередно значения:

x  =  0, 1, 2,

убеждаемся в их справедливости.

            Пусть  k = 4. Подставляя в правую часть выражения    j(x)  =  1 - x    значение

 x = 2    получим     j(2) = -7  ` 0. Следовательно, функция  j(x)  при  k = 4  не предста-

вима полиномом по mod 4.

            Пример. Представить полиномом  функцию    f (x) =  x      при    k = 5.

Составим  следующую таблицу данной функции.

Таблица 2.9

  x

  0

 1

 2

3

 4

 x

  0

 1

 4

4

 1

f(x)

  0

 0

 2

1

 0

            По данной таблице представим функцию во второй форме:

       f(x) = f(0) j(x) + f(1) j(x) + f(2) j(x) + f(3) j(x) + f(4) j(x) =  

                                                                                                                                   (2.9)

              = 0 j(x) + 0 j(x) + 2 j(x) + 1 j(x) + 0 j(x) = 2 j(x) + j(x).     

 Из  выражения  (2.7) получим: 

                                               j(x) = j(x-2) = 1 – (x-2) = -x – 2 x + x+ 2 x,

                                               j(x) = j(x-3) = 1 – (x-3) = - x + 2 x + x – 2 x. 

            Подставляя эти выражения в (2.9), получим искомое представление данной

 функции полиномом по модулю 5:

f(x) = x ч  x   =  -3 x – 2 x + 3 x + 2 x   =  2 x + 3 x + 3 x + 2 x.

Непосредственной подстановкой в полученный полином значений   

                            x  =  0, 1, 2, 3, 4

легко убедиться, что табличные значения функции и значения полинома совпадают.

            Найти полином можно так же методом неопределенных коэффициентов.

            Покажем, как это делается для функции предыдущего примера.  Общий вид искомого полинома для  данной функции будет следующий:

                                         f(x) = a + a1 x 1+ a2x2 + a3x3 + anxn.

Более высокие показатели степени рассматривать не нужно, т.к.   x =  x (mod 5).  Для нахождения коэффициентов  a  составим следующую систему:

                              a = f(0) = 0,

                              a + a + a + a + a =  f(1)  =  0,

  a + 2 a + 4 a+ 3 a + a =  f(2)  =  2,

                              a + 3 a + 4 a + 2 a + a =  f(3)  =  1,

                              a + 4 a + a + 4 a + a =  f(4)  =  0.

            Решая эту систему, например методом Гаусса, получим:

                              a = 0,  a = 2,  a = 3,  a = 3,  a = 2.

 Следовательно, искомый полином имеет вид:

                                       f(x)  =  2 x + 3 x + 3 x + 2 x.

Сравнивая полученный полином, с полиномом, полученным в предыдущем примере видим, что они равны. Это выражение можно записать в более компактном виде: 

                        f(x) =  2 x (x-1) (x+1).

            Пример. Представить функцию            f ( x,y ) =  (2, 2, 0, 1, 1, 1, 0, 0, 0 )  многочленом при  k = 3. 

            Таблица  заданной функции представлена табл.2.10.

                                                                                                                Таблица 2.10

   x

  0

  0

   0

   1

   1

   1

   2

   2

   2

   y

  0

  1

   2

   0

   1

   2

   0

   1

   2

   f

  2

  2

   0

   1

   1

   1

   0

   0

   0

            По табл.2.10 составим вторую основную форму для заданной функции. Она бу-дет иметь следующий вид

f ( x,y )  =  2 j(x) j(y) + 2 j(x) j(y) + 1 j(x) j(y) + 1 j(x) j(y) + 1 j(x) j(y) .

Подставляя в правую часть этого выражения соотношения (2.8) получим

                             f ( x,y )  =  2 ( 1-x) ( 1-y)  +  2 ( 1- x) ( 2y-y)  +  ( 2x-x) ( 1-y)  + 

                                              +  ( 2x-x ) ( 2y-y)   + ( 2x -x) ( y-y).

Раскрывая скобки в полученном выражении и приводя подобные члены, получим иско-мый полином 

                             f ( x,y )  =  2  +  2 x  +  y  +  2 y +  2 xy  +  xy.

            Проверка показывает, что это выражение удовлетворяет табличным значениям  заданной функции.

            Пример. Доказать, что функция      f(x,y) = x ч y        не представима полиномом при   k = 4.

 Допустим противное, т.е., что данная функция представима полиномом по мо-

дулю 4. Тогда этот полином будет иметь следующий вид: 

f ( x, y )  =  ( a + a x + a x + ax) + ( a y + a x y + axy + axy) +   

 + ( ay + ax y + axy + axy) + ( ay + ax y + axy + axy).

Показатель степени выше  3 рассматривать не надо, т.к. при   n > 1  справедливо следующее соотношении:  

                                                   x = x (mod 4)  и     x =  x  (mod 4).