ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
5 августа
1240537
argus98 (17.09.2022 22:04, просмотров: 3023)
Загадка булевой алгебры 

Балуюсь периодически логикой вероятностей (или вероятностной логикой, не знаю, как правильно называть).

Диспозиция такая: есть две независимые случайные последовательности событий X, Y (есть/нет, 1/0) с вероятностью pX и pY.

Требуется определить для них элементарные логические операции через арифметические (согласно теории вероятности).

Решение:

1) операция НЕ с точки зрения теории вероятности самая простая - NOT(pX) = 1 - pX

2) операция И не сложнее - (pX AND pY) = pX * pY

3) для операции ИЛИ применяем теорему де Моргана - (pX OR pY) = NOT(NOT(pX) AND NOT(pY)) = pX + pY - pX * pY

Проверяем экспериментально на длинных (более миллиона) последовательностях X, Y, с разными вероятностями - всё работает правильно

Проверяем на более сложных операциях (с уже определёнными NOT, AND, OR):

4) pX БОЛЬШЕ pY = pX AND NOT(pY) - работает правильно

5) pX НЕ_МЕНЬШЕ pY = pX OR NOT(pY) - работает правильно


А вот с операциями EQU (РАВНО) и XOR (НЕРАВНО) засада. При вероятностях pX = pY = 0.5 обе эти операции дают результат 0.4385

вместо ожидаемой (и теоретически, и экспериментально) вероятности 0.5.


ПОЧЕМУ? Где и в чём засада?? (уже не первый год ломаю голову, ответа так и не нашёл)


ps формулы для EQU и XOR согласно булевой алгебры в ДНФ

pX EQU pY = (pX * pY) OR (NOT(pX) * NOT(pY))

pX XOR pY = (pX * NOT(pY)) OR (NOT(pX) * pY)