Пороговая функция

Материал из Викиконспекты
Версия от 23:10, 15 января 2011; 192.168.0.2 (обсуждение) (Пороговая функция)
Перейти к: навигация, поиск

Пороговая функция

Пусть даны [math]n[/math] логических аргументов [math]A_1,A_2,...,A_n[/math]. Поставим в соответствие этим аргументам натуральные числа [math]a_1,a_2,...,a_n[/math], называемые весами, и зададим некоторое неотрицательное число [math]T[/math], которое будем называть порогом. Условимся считать, что если на каком-либо наборе [math]A_1 a_1+A_2 a_2+...+A_n a_n=\sum_{i=1}^n A_i a_i\gt T[/math], где знак [math]"+"[/math] обозначает арифметическое сложение, то булева функция [math]f(A_1,A_2,...,A_n)[/math] принимает единичное значение на этом наборе. Если же на коком-либо наборе [math]\sum_{i=1}^n A_i a_i \le T[/math], то функция [math]f(A_1,A_2,...,A_n)[/math] на этом наборе принимает нулевое значение. Функцию, представленную описанным способом, будем называть пороговой функцией.


Обычно пороговую функцию записывают в следующим виде: [math]f = [a_1,a_2,a_3,...,a_n;T][/math].

Для примера рассмотрим функцию трёх аргументов [math]f(A_1,A_2,A_3)=[3,4,6;5][/math]. Согласно этой записи имеем

[math]a_1=3; a_2=4; a_3=6; T=5[/math].

Все наборы значений аргументов [math]A_1, A_2, A_3[/math] на которых функция принимает единичное (либо нулевое) значение, можно получить из соотношения вида [math]A_1 3+A_2 4+A_36\gt 5[/math].

Если [math]A_1=0;A_2=0;A_3=0, то 0\lt 5 и f=0[/math].
Если [math]A_1=0;A_2=0;A_3=1, то 6\gt 5 и f=1[/math].
Если [math]A_1=0;A_2=1;A_3=0, то 4\lt 5 и f=0[/math].
Если [math]A_1=0;A_2=1;A_3=1, то 10\gt 5 и f=1[/math].
Если [math]A_1=1;A_2=0;A_3=0, то 3\lt 5 и f=0[/math].
Если [math]A_1=1;A_2=0;A_3=1, то 9\gt 5 и f=1[/math].
Если [math]A_1=1;A_2=1;A_3=0, то 7\gt 5 и f=1[/math].
Если [math]A_1=1;A_2=1;A_3=1, то 13\gt 5 и f=1[/math].

Таким образом, заданная функция принимает единичное значение на наборах 001, 011, 101, 110, 111. Её минимальная форма имеет вид

[math]f=A_1 A_2 + A_3[/math].

Для всякой пороговой функции справедливо

[math][a_1,a_2,a_3,...,a_n;T]=[ka_1,ka_2,ka_3,...,ka_n;kT][/math],

где k — натуральное число. Чтобы убедиться в этом достаточно записать

[math]ka_1 A_1+ka_2 A_2+...+ka_n A_n\gt kT[/math]
[math]ka_1 A_1+ka_2 A_2+...+ka_n A_n \le kT[/math]

и разделить обе части неравенства на [math]k[/math].

Источники