Expand Cut Tags

No cut tags

May. 4th, 2025

mns2012: (Default)
Информация Шеннона и вероятность событий — принципиально одно и то же, различны лишь единицы измерения.

Чтобы получить биты, вероятность логарифмируют:

Shannon_information(s) = −log2(Probability(s)),

где s -- строка символов, каждый символ которой представляет результат того или иного события.

Например:

  • Серия бросков честной монеты. В этом случае мы имеем дело с результатами независимых случайных событий с одинаковой вероятностью конкретного исхода из M возможных. При этом количество шенноновской информации в строке фиксированной длины максимально (если же монета несимметрична, то появится смещение (bias), которое будет влиять на исходы бросков, уменьшая информацию Шеннона, см. вики-статью Информационная энтропия).

    • Возможные исходы каждого индивидуального броска: 0 или 1 (то есть алфавит содержит M = 2 символов). Разумеется, мы не учитываем экзотику типа кинули монету в чан с кислотой и она, пока падала, растворилась; монетку уничтожил в полёте снайпер; монета испытала на себе какой-нибудь эффект тунеллирования и пр. Такими исходами можно спокойно пренебречь в большинстве случаев на практике.

    • При условии, что длина каждой строки равна N: |s| = N, вероятность реализации фиксированной серии бросков s: Probability(s) = piN = (1/M)N = (1/2)N , по теореме умножения вероятностей независимых событий, причём вероятность каждого события pi = 1/M.

    • Информация: Shannon_information(s) = −log2(1/2)N = N бит. Чем, собственно, и удобны броски честной монеты, так как результат каждого отдельного броска сообщает наблюдателю ровно 1 бит информации Шеннона.


  • Полинуклеотиды:

    • Cуществует 20 протеиногенных аминокислот, то есть в этом случае размер алфавита M = 20.

    • При том же условии |s| = N, вероятность генерации случайной нуклеотидной строки s: Probability(s) = (1/20)N.

    • Информация: Shannon_information(s) = −log2(1/20)N = log220 * N ≈ 4.3N бит.


Понятно, что независимость и равновероятность исходов -- это идеализация. Однако в ряде случаев она удовлетворительно моделирует то, что происходит в действительности. Например, в контексте синтеза белка на рибосомах практически отсутствует какая-либо химическая избирательность (bias) при полимеризации нуклеотидов, что предоставляет возможность полинуклеотидам нести информацию принципиально точно так же, как и инертность законов природы относительно последовательности символов обычного текста позволяет передавать информацию путём записи на бумаге, на электронном носителе, на бересте, сурдопереводом или ещё как-нибудь.

Информация Шеннона представляет верхнюю границу для функциональной информации: одна и та же строка символов, несущая N шенноновских бит, может нести или не нести смысл в определённом контексте. Только в первом случае количество функциональной информации в этой строке будет большим нуля.

  • Например, если чертёж какого-нибудь агрегата содержит ошибки, количество функциональной информации в нем меньше, чем в чертеже без ошибок, причем критические ошибки уменьшают количество функциональной информации до нуля.

Формула для подсчёта количества функциональной информации в строке s относительно функции f:

Functional_information(s, f) = − log2(|Tf|/|S|), (1)


где |Tf| — число синонимичных строк, кодирующих заданную функцию f, |S| — число возможных строк, 0 < |Tf| <= |S|. Tf — целевое подпространство пространства S возможных строк: Tf ⊂ S. Tf содержит строки, кодирующие f.

Если для простоты допустить, что рассматриваются только строки одинаковой длины N: |s| = N, то |S| = MN. Тогда:

Functional_information(s, f) = − log2(|Tf|/|S|) = − log2(|Tf|/MN) = − log2(|Tf|M-N) = − log2(M-N|Tf|).

sets.png
Множество S всех строк содержит целевое подмножество Tf строк, кодирующих функцию f.

Физический смысл дроби в формуле (1) состоит в вероятности случайного попадания в Tf при генерации строки (без осуществления поиска). Отсюда, кстати, видно, что формула для подсчёта функциональной информации может быть преобразована в формулу информационной энтропии.

Определение. Приведённое количество функциональной информации Functional_information0(s,f) представляет собой количество функциональной информации на символ строки:

Functional_information0(s,f) = Functional_information(s,f) / |s|.

Число строк, кодирующих заданную функцию f, |Tf| ≥ 1. Рассмотрим два случая.

Случай 1: |Tf| = 1

Функция максимально консервативна, так как при изменении любого символа в функциональной строке функция разрушается.

  • Пример: цифровой замок. Замок не откроется, если хотя бы одна цифра из набранных не соответствуеткодовой комбинации.

велосипедный замок.png
В этом случае единственная функциональная строка несёт максимум функциональной информации, который равен количеству информации Шеннона. Если для простоты снова принять, что |s| = N, то приведённое количество функциональной информации составляет:

Functional_information0(s,f) = − log2(M-N|Tf|) / N = − log2(M-N) / N − log2|Tf| / N = N log2M / N − 0 = log2M.

Случай 2: |Tf| > 1

Чем больше синонимов допускает функция, тем менее она консервативна, потому что в этом случае замены одних символов в функциональной строке на другие не приводят к полной деградации функции.

  • Пример: биологическая функция (например, связывание АТФ миозином).

domeni_miozina.jpg
Если число синонимов |Tf| = k > 1, то количество функциональной информации в каждой из строк синонимов уменьшается по сравнению с информацией Шеннона. В частности, приведённое количество функциональной информации уменьшается на величину log2k / N:

Functional_information0(s,f) = − log2(M-N|Tf|) / N = − log2(M-N) / N − log2|Tf| / N = log2M − log2k / N.


Всё это, в общем и целом, должно быть очевидно и понятно. Но судя по качеству большинства комментариев, здесь возникают какие-то трудности в понимании.

Cм. также:

Profile

mns2012: (Default)
mns2012

January 2026

S M T W T F S
    1 23
45678910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Page generated Jan. 14th, 2026 10:30 pm
Powered by Dreamwidth Studios