Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Булевы функции-metod.doc
Скачиваний:
37
Добавлен:
01.12.2018
Размер:
956.93 Кб
Скачать

Полнота.

Система функций {f1,f2,…,fi,…} из называется полной в , если любая булева функция может быть представлена в виде суперпозиции функций данной системы.

  1. Пусть {f1,f2,…,fi,…} – полная в система, а {g1,g2,…,gK,…} – такая система функций, что для любого i fi=Si[g1,g2,…,gK,…]. Тогда система {g1,g2,…,gK,…} – полна.

  1. Полными в являются системы:

  • (т.к. каждую функцию можно считать формулой над );

  • {,,} (в силу теоремы 2);

  • {0,1,,} (т.к. система {,,} полна и xy=xyxy).

  • {,} (т.к. система {,,} полна и );

  • {,} (т.к. система {,,} полна и );

  • {|} (т.к. система {,} полна и , ).

Замкнутость.

С понятием полноты тесно связано понятие замыкания. Пусть M. Замыканием [M] множества M называется множество всех булевых функций, представимых формулами над M. Теперь определение полноты можно переформулировать следующим образом. Система функций M полна в, если [M]=.

Множество M называется замкнутым классом, если [M]=M.

  • []=;

  • [{,,}]=;

  • [{0,1}]=[{0,1}].

Свойства замыкания:

  1. M[M].

  2. [M]=[[M]].

  3. Если m1m2, то [m1][m2].

  4. [M1][M2] [M1M2].

Задачи

  1. Сведением к заведомо полным системам показать, что множество A является полным в P2:

    1. ;

    2. ;

    3. ;

    4. ;

    5. ;

    6. ;

    7. ;

    8. ;

    9. ;

    10. .

Важнейшие замкнутые классы

Класс функций, сохраняющих константу 0 – T0.

T0={f:f(0,0,…,0)=0}.

  1. Функции 0, x, x&y, xy, xy  T0, а x, x~y  T0.

Очевидно, что |T0n|=, т.к. функции из T0 могут принимать любое из двух значений 0 или 1 на любых наборах, кроме первого.

  1. [T0]= T0.

Класс функций, сохраняющих константу 1 – T1.

T1={f:f(1,1,…,1)=1}.

  1. Функции 1, x, x&y, xy, x~y  T1, а x, xy  T1.

Очевидно, что |T1n|=, т.к. функции из T1 могут принимать любое из двух значений 0 или 1 на любых наборах, кроме последнего.

Отметим, что классы T0 иT1 двойственны, т.е. T0*=T1 и T1*=T0.

  1. [T1]= T1.

Класс линейных функций – L.

Функция f(x1,…,xn) называется линейной, если ее можно представить в виде полинома Жегалкина не выше первой степени, т.е. если существуют такие константы Ai, i=1,…,n, что .

  1. Функции 0,1, x, x, xy, x~y  L, а x&y, xy  L.

  1. |Ln|=.

  2. [L]= L.

  3. Функция является линейной тогда и только тогда, когда она меняет свое значение на любой паре соседних по существенной переменной наборов.

  4. (лемма о нелинейной функции) Если fL, то x&y[{f,0,1,x}].

Класс самодвойственных функций – s.

Функция f называется самодвойственной, если f=f*.

.

Функции x, x, xyz, xyyzzx  S, а 0, 1, x&y, xy  S.

  1. [S]= S.

  2. |Sn|=.

  3. (лемма о несамодвойственной функции) Если fS, то 0,1[{f,x}].

Класс монотонных функций – m.

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

  1. Функции 0, 1, x, x, x&y, xy, xyyzzx  M, xy, x|y, xy  M.

  1. [M]=M.

  2. (лемма о немонотонной функции) Если fM, то x[{f,0,1}].

Задачи

  1. Выяснить, являются ли функции f и g самодвойственными:

    1. , g=(1001 1011 1011 1001);

    2. , g=(1100 0011 1010 0101);

    3. , g=(1101 0100 1011 0010);

    4. , g=(1100 0011 0011 1100);

    5. , g=(1001 0110 1001 0110);

    6. , g=(1010 0101 0101 1010);

    7. , g=(0101 0110 1000 0101);

    8. , g=(0101 0100 1101 1010);

    9. , g=(0101 0100 1100 0101);

    10. , g=(0010 1000 1110 1011).

  2. Заменить прочерки символами 0 и 1 так, чтобы получился вектор значений самодвойственной функции:

    1. f=(0 1 – 0 – 0 – –);

    2. f=(– – 01 – – 1 1);

    3. f=(– 1 – 1 – 0 – 1);

    4. f=(– 1 0 – 0 – – 1);

    5. f=(1 – – 0 – 0 0 –);

    6. f=(0 1 – – 0 1 – –);

    7. f=(1 – 0 – 0 – 1 – );

    8. f=(– 0 1 – 1 – – 0);

    9. f=(– – 0 – 1 – 1 0);

    10. f=(1 0 – 0 – 1 – – ).

  1. Определить, какие переменные функции f следует заменить на x, а какие на с тем. Чтобы получить константу:

    1. f=(0110 1000 1110 1011);

    2. f=(1010 1110 1100 1010);

    3. f=(1011 0100 1111 0010);

    4. f=(1110 1000 0110 1000);

    5. f=(0000 1111 0010 1111);

    6. f=(1010 0101 0101 0011);

    7. f=(1101 0001 1011 0100);

    8. f=(0101 1101 0100 1111);

    9. f=(0110 1001 0101 1101);

    10. f=(1101 0000 1101 0000).

  1. Представив функцию полиномом, выяснить, является ли она линейной:

    1. ;

    2. ;

    3. ;

    4. ;

    5. ;

    6. ;

    7. ;

    8. ;

    9. ;

    10. .

  1. Выяснить, является ли линейной функция:

    1. f =(0110 1001 0110 1001);

    2. f =(1010 0101 0101 1010);

    3. f =(0011 1100 1100 0011);

    4. f =(1001 1001 0110 0110);

    5. f =(1010 0110 0110 0101);

    6. f =(1010 0101 1001 1100);

    7. f =(1101 0010 1101 0010);

    8. f =(0111 1001 1000 0110);

    9. f =(0011 0010 1100 1101);

    10. f =(0100 1100 1100 1011).

  1. Заменить прочерки символами 0 и 1 так, чтобы получился вектор значений линейной функции:

    1. f =(1 – – – – – – – – – – 0 – 1 1 0);

    2. f =(– 1 1 – 1 – – – 1 – – – – – – 0);

    3. f =(– – – 0 – 0 0 – 1 – 0 – – – – –);

    4. f =(– 1 0 0 – – – 1 – 1 – – – – – –);

    5. f =(– – – 1 – 1 1 – – 1 1 – 1 – 0 –);

    6. f =(0 – 1 – – – – 1 – – – 1 – – – 0);

    7. f =( – – – – 1 0 – – – – 0 – 0 1 – –);

    8. f =(– 1 – – – – – – 0 0 – 1 – 1 – –);

    9. f =(0 1 – – – – – – 1 – 1 – 1 – – –);

    10. f =(– – 0 0 – – – – 1 1 – – – 0 – –).

  1. Получить из функции f функцию xy:

    1. f =(1101 1111 1100 1111);

    2. f =(1111 0101 1111 1101);

    3. f =(1001 0111 1111 1010);

    4. f =(0111 1111 1110 1110);

    5. f =(0111 1011 1111 1110);

    6. f =(1101 1001 1001 0111);

    7. f =(1011 1111 1001 1111);

    8. f =(1011 0011 0010 1111);

    9. f =(0010 1111 1111 0101);

    10. f =(1111 1111 1110 1100).

  1. Определить, являются ли функции f и g монотонными. Для немонотонных функций указать два соседних набора :

    1. , g=(00010101);

    2. , g=(01010111);

    3. , g=(00110011);

    4. , g=(00010111);

    5. , g=(00010110);

    6. , g=(00011111);

    7. , g=(1001 1011);

    8. , g=(1100 0011);

    9. , g=(1101 0100);

    10. , g=(1010 0101).