Построение и анализ таблиц истинности логических выражений

Услов­ные обо­зна­че­ния ло­ги­че­ских опе­ра­ций:

¬A, \barA — не A (от­ри­ца­ние, ин­вер­сия);

AB, A · BA и B (ло­ги­че­ское умно­же­ние, конъ­юнк­ция);

A ∨ B, A + BA или B (ло­ги­че­ское сло­же­ние, дизъ­юнк­ция);

AB— им­пли­ка­ция (сле­до­ва­ние);

AB— эк­ви­ва­лент­ность (рав­но­силь­ность).

Опе­ра­цию «им­пли­ка­ция» можно вы­ра­зить через «ИЛИ» и «НЕ»:

AB = ¬ABA → B = \barA плюс B.

Ино­гда для упро­ще­ния вы­ра­же­ний по­лез­ны фор­му­лы де Мор­га­на:

¬(AB) = ¬A ∨ ¬B\overlineA умно­жить на B=\barA плюс \barB;

¬(AB) = ¬A ∧ ¬B\overlineA плюс B=\barA умно­жить на \barB.

Если в вы­ра­же­нии нет ско­бок, сна­ча­ла вы­пол­ня­ют­ся все опе­ра­ции «НЕ», затем — «И», затем — «ИЛИ», «им­пли­ка­ция», и самая по­след­няя — «эк­ви­ва­лент­ность».

Таб­ли­ца ис­тин­но­сти вы­ра­же­ния опре­де­ля­ет его зна­че­ния при всех воз­мож­ных ком­би­на­ци­ях ис­ход­ных дан­ных.

Если из­вест­на толь­ко часть таб­ли­цы ис­тин­но­сти, со­от­вет­ству­ю­щее ло­ги­че­ское вы­ра­же­ние од­но­знач­но опре­де­лить нель­зя, по­сколь­ку ча­стич­ной таб­ли­це могут со­от­вет­ство­вать не­сколь­ко раз­ных ло­ги­че­ских вы­ра­же­ний (не сов­па­да­ю­щих для дру­гих ва­ри­ан­тов вход­ных дан­ных).

Ко­ли­че­ство раз­ных ло­ги­че­ских вы­ра­же­ний, удо­вле­тво­ря­ю­щих не­пол­ной таб­ли­це ис­тин­но­сти, равно 2 в сте­пе­ни левая круг­лая скоб­ка k пра­вая круг­лая скоб­ка , где k – число от­сут­ству­ю­щих строк; на­при­мер, пол­ная таб­ли­ца ис­тин­но­сти вы­ра­же­ния с тремя пе­ре­мен­ны­ми со­дер­жит 23 = 8 стро­чек, если за­да­ны толь­ко 6 из них, то можно найти 28−6 = 22 = 4 раз­ных ло­ги­че­ских вы­ра­же­ния, удо­вле­тво­ря­ю­щие этим 6 строч­кам (но от­ли­ча­ю­щи­е­ся в двух остав­ших­ся).

Ло­ги­че­ская сумма A + B + C + … равна 0 (вы­ра­же­ние ложно) тогда и толь­ко тогда, когда все сла­га­е­мые од­но­вре­мен­но равны нулю, а в осталь­ных слу­ча­ях равна 1 (вы­ра­же­ние ис­тин­но).

Ло­ги­че­ское про­из­ве­де­ние A · B · C · … равно 1 (вы­ра­же­ние ис­тин­но) тогда и толь­ко тогда, когда все со­мно­жи­те­ли од­но­вре­мен­но равны еди­ни­це, а в осталь­ных слу­ча­ях равно 0 (вы­ра­же­ние ложно).

Ло­ги­че­ское сле­до­ва­ние (им­пли­ка­ция) АВ равна 0 тогда и толь­ко тогда, когда A (по­сыл­ка) ис­тин­на, а B (след­ствие) ложно.

Эк­ви­ва­лент­ность АB равна 1 тогда и толь­ко тогда, когда оба зна­че­ния од­но­вре­мен­но равны 0 или од­но­вре­мен­но равны 1.

Составление запросов для поисковых систем с использованием логических выражений

В по­ис­ко­вых за­про­сах опе­ра­ция «НЕ» обо­зна­ча­ет­ся зна­ком ~, опе­ра­ция «И» обо­зна­ча­ет­ся зна­ком &, а опе­ра­ция «ИЛИ» — зна­ком |.

Пусть A — мно­же­ство стра­ниц, на ко­то­рых встре­ча­ет­ся слово A, а B — мно­же­ство стра­ниц, на ко­то­рых встре­ча­ет­ся слово B; тогда:

а) за­прос A & B со­от­вет­ству­ет пе­ре­се­че­нию мно­жеств AB;

б) за­прос A | B со­от­вет­ству­ет объ­еди­не­нию мно­жеств AB.

Будем обо­зна­чать через NX ко­ли­че­ство стра­ниц, ко­то­рые выдаёт по­ис­ко­вая си­сте­ма по за­про­су X.

Для двух об­ла­стей спра­вед­ли­ва фор­му­ла вклю­че­ний и ис­клю­че­ний, ко­то­рая поз­во­ля­ет легко ре­шать все за­да­чи с двумя об­ла­стя­ми:

 

NA | B = NA + NBNA & B

 

Эту фор­му­лу можно пе­ре­пи­сать в раз­ных фор­мах в за­ви­си­мо­сти от того, что тре­бу­ет­ся найти, на­при­мер,

 

NA & B = NA + NBNA | B;

NA = NA | B + NA & BNB;

NA + NB = NA | B + NA & B

 

Ра­вен­ство со­хра­ня­ет­ся, если каж­дая из 4-х об­ла­стей за­ме­ня­ет­ся на её пе­ре­се­че­ние с тре­тьей об­ла­стью C:

N(A | B) & C = NA & C + NB & CNA & B & C

 

Таким об­ра­зом, если все 4 за­про­са имеют вид X & C, об­ласть C при вы­чис­ле­ни­ях можно иг­но­ри­ро­вать (это рав­но­силь­но пе­ре­хо­ду от об­ла­стей A и B к об­ла­стям A’ = A & C и B’ = B & C, что не из­ме­ня­ет ре­зуль­та­та).

Фор­му­ла вклю­че­ний и ис­клю­че­ний для трёх об­ла­стей вы­гля­дит так:

 

NA | B | C = NA + NB + NCNA & BNA & CNB & C +

+ NA & B & C.

 

Основные понятия математической логики

Для упро­ще­ния вы­ра­же­ний можно ис­поль­зо­вать фор­му­лы:

 

A плюс A умно­жить на B=A (т. к. A плюс A умно­жить на B=

 

=A умно­жить на 1 плюс A умно­жить на B=A умно­жить на левая круг­лая скоб­ка 1 плюс B пра­вая круг­лая скоб­ка =A умно­жить на 1=A);

 

A плюс \barA умно­жить на B=A плюс B (т.к. A плюс \barA умно­жить на B=

 

= левая круг­лая скоб­ка A плюс \barA пра­вая круг­лая скоб­ка умно­жить на левая круг­лая скоб­ка A плюс B пра­вая круг­лая скоб­ка =1 умно­жить на левая круг­лая скоб­ка A плюс B пра­вая круг­лая скоб­ка =A плюс B).

 

Не­ко­то­рые свой­ства им­пли­ка­ции:

 

A\to левая круг­лая скоб­ка B умно­жить на C пра­вая круг­лая скоб­ка = левая круг­лая скоб­ка A\to B пра­вая круг­лая скоб­ка умно­жить на левая круг­лая скоб­ка A\to C пра­вая круг­лая скоб­ка ;

 

A\to левая круг­лая скоб­ка B плюс C пра­вая круг­лая скоб­ка = левая круг­лая скоб­ка A\to B пра­вая круг­лая скоб­ка плюс левая круг­лая скоб­ка A\to C пра­вая круг­лая скоб­ка .

 

Связь ло­ги­ки и тео­рии мно­жеств:

— пе­ре­се­че­ние мно­жеств со­от­вет­ству­ет умно­же­нию ло­ги­че­ских ве­ли­чин, а объ­еди­не­ние — ло­ги­че­ско­му сло­же­нию;

— пу­стое мно­же­ство \varnothing — это мно­же­ство, не со­дер­жа­щее ни од­но­го эле­мен­та, оно иг­ра­ет роль нуля в тео­рии мно­жеств;

— уни­вер­саль­ное мно­же­ство U — это мно­же­ство, со­дер­жа­щее все воз­мож­ные эле­мен­ты за­дан­но­го типа (на­при­мер, все целые числа), оно иг­ра­ет роль ло­ги­че­ской еди­ни­цы: для лю­бо­го мно­же­ства целых чисел X спра­вед­ли­вы ра­вен­ства X плюс U = U и X умно­жить на U = X (для про­сто­ты мы ис­поль­зу­ем знаки сло­же­ния и умно­же­ния вме­сто зна­ков пе­ре­се­че­ния ∩ и объ­еди­не­ния ∪ мно­жеств);

— до­пол­не­ние \barX мно­же­ства X — это раз­ность между уни­вер­саль­ным мно­же­ством U и мно­же­ством X (на­при­мер, для целых чисел \barX — все целые числа, не вхо­дя­щие в X);

— пусть тре­бу­ет­ся вы­брать мно­же­ство A так, чтобы вы­пол­ня­лось ра­вен­ство A плюс X = U; в этом слу­чае мно­же­ство A долж­но вклю­чать до­пол­не­ние \barX, то есть A\supseteq \barX (или «по-про­сто­му» можно за­пи­сать A боль­ше или равно \barX пра­вая круг­лая скоб­ка , то есть A_\min =\barX.

— пусть тре­бу­ет­ся вы­брать мно­же­ство A так, чтобы вы­пол­ня­лось ра­вен­ство \barA плюс X=U, в этом слу­чае мно­же­ство \barA долж­но вклю­чать до­пол­не­ние \barX, то есть \barA\supseteq \barX; от­сю­да A\subseteq X, то есть A_\max =X.

Преобразование логических выражений

Опе­ра­цию «эк­ви­ва­лен­ция» также можно вы­ра­зить через «ИЛИ» и «НЕ»:

 

AB = ¬A ∧ ¬BAB

 

или в дру­гих обо­зна­че­ни­ях

 

AB = \barA умно­жить на \barB плюс A умно­жить на B.

 

Пра­ви­ла пре­об­ра­зо­ва­ния ло­ги­че­ских вы­ра­же­ний (за­ко­ны ал­геб­ры ло­ги­ки):

 

ЗаконДля ИДля ИЛИ
Двой­но­го от­ри­ца­ния\overline\overlineA=A
Ис­клю­че­ния тре­тье­гоA \!\! умно­жить на \!\! \overlineA=0A плюс \overlineA=1
Ис­клю­че­ния кон­стантA умно­жить на 1=A;A умно­жить на 0=0A плюс 0=A;A плюс 1=1
По­вто­ре­нияA умно­жить на A=AA плюс A=A
По­гло­ще­нияA умно­жить на левая круг­лая скоб­ка A плюс B пра­вая круг­лая скоб­ка =AA плюс A умно­жить на B=A
Пе­ре­ме­сти­тель­ныйA умно­жить на B=B умно­жить на AA плюс B=B плюс A
Со­че­та­тель­ныйA умно­жить на левая круг­лая скоб­ка B умно­жить на C пра­вая круг­лая скоб­ка = левая круг­лая скоб­ка A умно­жить на B пра­вая круг­лая скоб­ка умно­жить на CA плюс левая круг­лая скоб­ка B плюс C пра­вая круг­лая скоб­ка = левая круг­лая скоб­ка A плюс B пра­вая круг­лая скоб­ка плюс C
Рас­пре­де­ли­тель­ныйA плюс B умно­жить на C= левая круг­лая скоб­ка A плюс B пра­вая круг­лая скоб­ка умно­жить на левая круг­лая скоб­ка A плюс C пра­вая круг­лая скоб­ка A умно­жить на левая круг­лая скоб­ка B плюс C пра­вая круг­лая скоб­ка =A умно­жить на B плюс A умно­жить на C
Де Мор­га­на\overlineA \!\! умно­жить на \!\! B=\overlineA плюс \overlineB\overlineA плюс B=\overlineA \!\! умно­жить на \!\! \overlineB