psilogic: (Default)
psilogic ([personal profile] psilogic) wrote2006-07-01 11:03 am

Трехзначная логика на писишке

"С децтва" не любил базы данных... уже сейчас и не вспомню причину, по которой их невзлюбил. Тут по работе, однако, пришлось изучать SQL. Сидел, весь день читал толстенную книженцию, дочитал. Но речь не в том. SQL - довольно старинный язык и интересен тем, что в нем используется трехзначная логика.

Привет журналюгам, которые любят писать о том, что применение трехзначной логики приведет к революции в компьютерной технике. И де она ваша революция? ;))

Логика используется самая что ни на есть "стандартная", ее еще называют трехзначной логикой Лукасевича. Между TRUE и FALSE есть еще промежуточное значение: NULL. По смыслу это NULL соответствует приблизительно выражениям "не известно", "не определено", "не задано", "не указано". Если TRUE ассоциировать с единицей, FALSE с нулем, а NULL - с 1/2, то логические операции в этой логике выглядят так:

A and B = min(A, B)
A or B = max(A, B)
not A = 1 - A

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

A or ~A = TRUE

а на самом деле при A = NULL = 1/2 получаем:

A or ~A = NULL or ~NULL = 1/2 or (1 - 1/2) = 1/2 or 1/2 = max(1/2, 1/2) = 1/2 = NULL ≠ TRUE

[identity profile] willys.livejournal.com 2006-07-01 07:30 am (UTC)(link)
почему это a & ~a = true?

[identity profile] eugenebo.livejournal.com 2006-07-01 07:53 am (UTC)(link)
Точный смысл NULL в данном контексте, как я понимаю, есть "не описывается корректно принятой логикой". Есть отличие от "не задано".

[identity profile] kelavrik-0.livejournal.com 2006-07-01 08:54 am (UTC)(link)
А вроде как была трёхзначная логика в фортране. Кстати, лучше TRUE ассоциировать с +1, FALSE с -1, ну и промежуточный 0. Там и ветки были трёхзначные.

[identity profile] migmit.livejournal.com 2006-07-01 11:05 am (UTC)(link)
Вообще-то, стандартный фокус для хранения булевского значения в базе - CHAR(0). Значений - ровно два: '' и NULL
(deleted comment) (Show 4 comments)

[identity profile] jagg.livejournal.com 2006-07-03 06:06 am (UTC)(link)
Нифига. Это не третье значение, а отсутствие значения, ибо

where a = null отсеет все. То есть, null != null.

Огласите весь списочек!

[identity profile] alex-semenov.livejournal.com 2006-07-03 02:32 pm (UTC)(link)
Насколько я понял, ключевая фраза сообщения:

"Привет журналюгам, которые любят писать о том, что применение трехзначной логики приведет к революции в компьютерной технике. И де она ваша революция? ;))"

То есть, насколько я понял, вы Мирослав, крайне скептически относится к сверхвозможностям трехзначной логике, нечеткой логике Заде, вероятностной логике и... насколько мне известно, таких логик около 300.
Так?
Все эти логики – всего лишь некоторые зауженные варианты обычной логики, возможно прекрасные при решении некоторых задач, но сами по себе ничего нового не несущие и никаких общих "проблем" классической логики не решающие.

Если так, то я готов проявить солидарность.
Кстати, могу перечислить еще ряд легенд, бытующих в народе по поводу принипиального отличия нашего ума от настольного компьютера. И так, полный список:

1. Наш мозг работает на трех (четырех, пяти, ... n) – значной логиек. А компьютер всего на двух в смысле значной.
2. Наш мозг – это нейронная сеть, а не какая-то там программа. Там же все парралельно идет!
3. Наш мозг – это аналоговый вычислитель. Там унутри поля всякие... Нелинейность. А компьютер ве-сч дискретная. Щелк-щелк-щелк...
4. Наш мозг – квантовый компьютер. Во! Интерференция там мультиверса происходит...
5. Наш мозг вообще работает на не установленных физиками законах (кстати, последняя мысль от самого сера Пенроуза. Но "журналисты" путают ее с 4)

Самое обидное. Никто не хочет поддержать мой любимый бред:

6. Наш мозг – это вероятностная машина.

Нет, никто особо с этим не спорит. Но все равно, при моделировании мозга упор делается на жестко детерминированные алгоритмы. Мол, случайность там несомненно присутствуе, но не она там главная.
С идеей номер 6 даже не спорят. Ее просто игнонируют.
:(
Но я все равно в список внесу!
Кто-нибудь дополнит список народной мудрости еще?