IPB                

Здравствуйте, гость ( Вход | Регистрация )


ФорУм - для ума ©
БСЭ; DJVU Библиотека - Основное книгохранилище
Вопросы оптимального кодирования, Хаффман и компания :)
СЛАУ
сообщение 22.05.2012, 9:45
Сообщение #1


Доцент
******

Группа: Member
Сообщений: 2212
Регистрация: 18.5.2008
Из: чьего-то странного-странного сна
Пользователь №: 7303
Поблагодарили: 3081 раз(а)




Цитата(Elena @ 22.05.2012, 12:31) *
Не, ну я так не играю. (IMG:style_emoticons/default/rolleyes.gif) Равномерное кодирование совершенно не оптимально... (IMG:style_emoticons/default/skonfuzen.gif) Ну хотя бы Хаффмана посимвольно что ли применили... (IMG:style_emoticons/default/rolleyes.gif)
Хаффмана не знаю. (IMG:style_emoticons/default/skonfuzen.gif)


--------------------
Читайте книги: некоторые из них специально для этого написаны.

Перейти в начало страницы
+Цитировать сообщение
 
Начать новую тему
Ответов (1 - 20)
Ninat
сообщение 22.05.2012, 9:50
Сообщение #2


Вяловзрослеющий
********

Группа: Member
Сообщений: 7013
Регистрация: 9.3.2006
Из: Красногорск Московская область
Пользователь №: 1203
Поблагодарили: 7648 раз(а)




Цитата(СЛАУ @ 22.05.2012, 10:45) *
Хаффмана не знаю. (IMG:style_emoticons/default/skonfuzen.gif)

Это же известный актер-комик! (IMG:style_emoticons/default/smile.gif)


--------------------
инет и да...


Поблагодарили:
Перейти в начало страницы
+Цитировать сообщение
СЛАУ
сообщение 22.05.2012, 11:25
Сообщение #3


Доцент
******

Группа: Member
Сообщений: 2212
Регистрация: 18.5.2008
Из: чьего-то странного-странного сна
Пользователь №: 7303
Поблагодарили: 3081 раз(а)




Почитала Википедию. Почему код Хаффмана префиксный, я пока не поняла, но ладно. А "мысль" по Хаффману вроде бы состоит как минимум из 17 битов. Это если в таком большом тексте, что битами, потраченными на таблицу частот, можно пренебречь.


--------------------
Читайте книги: некоторые из них специально для этого написаны.

Перейти в начало страницы
+Цитировать сообщение
Elena
сообщение 22.05.2012, 11:41
Сообщение #4


Ректор
********

Группа: Admin
Сообщений: 11202
Регистрация: 30.8.2005
Пользователь №: 197
Поблагодарили: 9027 раз(а)




Цитата(СЛАУ @ 22.05.2012, 12:25) *
Почитала Википедию. Почему код Хаффмана префиксный, я пока не поняла, но ладно. А "мысль" по Хаффману вроде бы состоит как минимум из 17 битов. Это если в таком большом тексте, что битами, потраченными на таблицу частот, можно пренебречь.

Чё-т 17 как-то явно маловато. У меня вот тут по таблице 32 вроде получилось (IMG:style_emoticons/default/rolleyes.gif)

А префиксные от слова префикс, т.е. приставка (IMG:style_emoticons/default/wink.gif) Ни одно кодовое слово не является префиксом (т.е. началом) другого. Благодаря этому возможно однозначное декодирование. Потому и префиксные. (IMG:style_emoticons/default/smile.gif)


--------------------
"Искусство математика состоит в нахождении того частного случая, который содержит все зародыши общности" © Гильберт

Путь по звездам вновь означен,
И вновь гудит набат.
В алтарях святые плачут,
И воин сходит в ад,
Сущий ад,
Но ни шагу назад!
© Ария


Поблагодарили:
Перейти в начало страницы
+Цитировать сообщение
СЛАУ
сообщение 22.05.2012, 12:44
Сообщение #5


Доцент
******

Группа: Member
Сообщений: 2212
Регистрация: 18.5.2008
Из: чьего-то странного-странного сна
Пользователь №: 7303
Поблагодарили: 3081 раз(а)




Цитата(Elena @ 22.05.2012, 14:41) *
Чё-т 17 как-то явно маловато. У меня вот тут по таблице 32 вроде получилось (IMG:style_emoticons/default/rolleyes.gif)
Ни нашим, ни вашим. 13.
Допустим, в тексте 5 000 знаков, причём каждая из букв "м", "ы", "с", "л", "ь" повторяется по 1 000 раз, а все остальные символы, что буквы, что пробелы, что знаки препинания и тэ пэ не встречаются в тексте ни разу. (Редкая ситуация, но не невозможная). Тогда имеем такое дерево и такой результат (см. рисунок). ("а-я" - это у меня обозначение для упомянутых "всех остальных букв, пробелов, знаков препинания и тэ пэ").

Прикрепленное изображение


Это на основании вот этого.

Сообщение отредактировал СЛАУ - 23.05.2012, 6:37


--------------------
Читайте книги: некоторые из них специально для этого написаны.

Перейти в начало страницы
+Цитировать сообщение
Elena
сообщение 22.05.2012, 12:57
Сообщение #6


Ректор
********

Группа: Admin
Сообщений: 11202
Регистрация: 30.8.2005
Пользователь №: 197
Поблагодарили: 9027 раз(а)




Цитата(СЛАУ @ 22.05.2012, 13:44) *
Ни нашим, ни вашим. 13.
Допустим, в тексте 5 000 знаков, причём каждая из букв "м", "ы", "с", "л", "ь" повторяется по 1 000 раз, а все остальные символы, что буквы, что пробелы, что знаки препинания и тэ пэ не встречаются в тексте ни разу. (Редкая ситуация, но не невозможная). Тогда имеем такое дерево и такой результат (см. рисунок). (а-я - это у меня обозначение для упомянутых "всех остальных букв, пробелов, знаков препинания и тэ пэ").

[attachment=26009:IMG_0689.jpg]

Это на основании вот этого.

В случае с по 1000 на 5000 мы имеем дело не с Хаффманом, а с равномерным кодированием. Хаффман здесь вообще никакого смысла не имеет.

P.S. Я брала коды из честного кодирования Хаффманом русского алфавита. У меня даже собственноручно сделанная табличка есть. (IMG:style_emoticons/default/skonfuzen.gif) Правда дома. Поэтому сейчас я воспользовалась табличкой из И-нета.


--------------------
"Искусство математика состоит в нахождении того частного случая, который содержит все зародыши общности" © Гильберт

Путь по звездам вновь означен,
И вновь гудит набат.
В алтарях святые плачут,
И воин сходит в ад,
Сущий ад,
Но ни шагу назад!
© Ария


Поблагодарили:
Перейти в начало страницы
+Цитировать сообщение
СЛАУ
сообщение 22.05.2012, 13:22
Сообщение #7


Доцент
******

Группа: Member
Сообщений: 2212
Регистрация: 18.5.2008
Из: чьего-то странного-странного сна
Пользователь №: 7303
Поблагодарили: 3081 раз(а)




Цитата(Elena @ 22.05.2012, 15:57) *
В случае с по 1000 на 5000 мы имеем дело не с Хаффманом, а с равномерным кодированием. Хаффман здесь вообще никакого смысла не имеет.
Имеет, если описанное мной необычное сообщение передаётся по линии при помощи автоматов, умеющих работать ТОЛЬКО с кодом Хаффмана. Если нет других способов передать сообщение. При исследовании кода должны учитываться всевозможные сообщения, в том числе и такое.


Цитата(Elena @ 22.05.2012, 15:57) *
P.S. Я брала коды из честного кодирования Хаффманом русского алфавита. У меня даже собственноручно сделанная табличка есть. (IMG:style_emoticons/default/skonfuzen.gif) Правда дома. Поэтому сейчас я воспользовалась табличкой из И-нета.
Я, кажется, поняла. Вы, наверное, говорите о кодировании по единой таблице частот для всех сообщений, написанных на русском языке. А я-то говорила про описанное в Википедии. Там для любого сообщения составляется СВОЯ, именно этого сообщения таблица частот. При таком подходе слово "мысль" в разных сообщениях будет состоять из разного количества бит. Минимум - из 13 бит.

Сообщение отредактировал СЛАУ - 22.05.2012, 17:27


--------------------
Читайте книги: некоторые из них специально для этого написаны.

Перейти в начало страницы
+Цитировать сообщение
Elena
сообщение 22.05.2012, 13:51
Сообщение #8


Ректор
********

Группа: Admin
Сообщений: 11202
Регистрация: 30.8.2005
Пользователь №: 197
Поблагодарили: 9027 раз(а)




Цитата(СЛАУ @ 22.05.2012, 14:22) *
Я, кажется, поняла. Вы, наверное, говорите о кодировании по единой таблице частот для всех сообщений, написанных на русском языке. А я-то говорила про описанное в Википедии. Там для любого сообщения составляется СВОЯ, именно этого сообщения таблица частот. При таком подходе слово "мысль" в разных сообщениях будет состоять из разного количества бит. Минимум - из 13 бит.

С минимумом не согласна, у меня по Вашим частотам 12 бит получилось. (IMG:style_emoticons/default/tongue.gif) А Вы, судя по всему, вместо Хаффмана, Шеннона-Фано использовали, который, кстати, в отличие от Хаффмана, является субоптимальным. Ну а что касается своей, то у меня студенты уже несколько лет подряд строят "свои" частотные таблицы для реальных текстов. (IMG:style_emoticons/default/skonfuzen.gif) И все они получаются весьма похожими. (IMG:style_emoticons/default/smile.gif) Ну а что касается передачи такой экзотики, как слово мысль 1000 раз подряд в разных комбинациях, то связисты застрелили бы за такое нерациональное использование канала связи. (IMG:style_emoticons/default/rolleyes.gif)


--------------------
"Искусство математика состоит в нахождении того частного случая, который содержит все зародыши общности" © Гильберт

Путь по звездам вновь означен,
И вновь гудит набат.
В алтарях святые плачут,
И воин сходит в ад,
Сущий ад,
Но ни шагу назад!
© Ария


Поблагодарили:
Перейти в начало страницы
+Цитировать сообщение
СЛАУ
сообщение 22.05.2012, 13:52
Сообщение #9


Доцент
******

Группа: Member
Сообщений: 2212
Регистрация: 18.5.2008
Из: чьего-то странного-странного сна
Пользователь №: 7303
Поблагодарили: 3081 раз(а)




Цитата(Elena @ 22.05.2012, 14:41) *
А префиксные от слова префикс, т.е. приставка (IMG:style_emoticons/default/wink.gif) Ни одно кодовое слово не является префиксом (т.е. началом) другого. Благодаря этому возможно однозначное декодирование. Потому и префиксные. (IMG:style_emoticons/default/smile.gif)
М-м! Поняла! Только что. Спасибо.


--------------------
Читайте книги: некоторые из них специально для этого написаны.

Перейти в начало страницы
+Цитировать сообщение
СЛАУ
сообщение 22.05.2012, 14:22
Сообщение #10


Доцент
******

Группа: Member
Сообщений: 2212
Регистрация: 18.5.2008
Из: чьего-то странного-странного сна
Пользователь №: 7303
Поблагодарили: 3081 раз(а)




Цитата(Elena @ 22.05.2012, 16:51) *
С минимумом не согласна, у меня по Вашим частотам 12 бит получилось. (IMG:style_emoticons/default/tongue.gif)
Это странно. Потому что я себя проверяла. Я применила алгоритм из статьи Википедии "Код Хаффмана", как я его поняла, к примеру из той же статьи (а15, б7, в6, г6, д5) и у меня получился совершенно тот же результат, что и в этой статье (а0, б100, в101, г110, д111).
Ну да бог с ним.

Сообщение отредактировал СЛАУ - 22.05.2012, 14:24


--------------------
Читайте книги: некоторые из них специально для этого написаны.

Перейти в начало страницы
+Цитировать сообщение
СЛАУ
сообщение 22.05.2012, 15:03
Сообщение #11


Доцент
******

Группа: Member
Сообщений: 2212
Регистрация: 18.5.2008
Из: чьего-то странного-странного сна
Пользователь №: 7303
Поблагодарили: 3081 раз(а)




Цитата(Elena @ 22.05.2012, 16:51) *
А Вы, судя по всему, вместо Хаффмана, Шеннона-Фано использовали, который, кстати, в отличие от Хаффмана, является субоптимальным.

Прочитала в Википедии про алгоритм Шеннона-Фано. Нет, я его не использовала. Я его даже не знала. При построении дерева я шла от листочков дерева к его корню, а не наоборот.
Воля ваша, а я осталась при мнении, что Вы где-то обсчитались.

Сейчас придёт Нинат и за этот флуд ВСЕМ достанется.

Сообщение отредактировал СЛАУ - 23.05.2012, 6:38


--------------------
Читайте книги: некоторые из них специально для этого написаны.

Перейти в начало страницы
+Цитировать сообщение
Elena
сообщение 22.05.2012, 15:48
Сообщение #12


Ректор
********

Группа: Admin
Сообщений: 11202
Регистрация: 30.8.2005
Пользователь №: 197
Поблагодарили: 9027 раз(а)




Русскоязычная википедия, увы, авторитетным источником не является. Будет время, позже подробнее напишу, как я кодировала символы.

Цитата(СЛАУ @ 22.05.2012, 16:03) *
Сейчас придёт Нинат и за этот флуд ВСЕМ достанется.

За флуд здесь достаться может только от меня (как модератора раздела и админа форума) и супермодеров (IMG:style_emoticons/default/skonfuzen.gif)

Цитата(СЛАУ @ 22.05.2012, 15:22) *
Это странно. Потому что я себя проверяла. Я применила алгоритм из статьи Википедии "Код Хаффмана", как я его поняла, к примеру из той же статьи (а15, б7, в6, г6, д5) и у меня получился совершенно тот же результат, что и в этой статье (а0, б100, в101, г110, д111).
Ну да бог с ним.

P.S. У Вас не могло получиться то же самое, что в примере в вики, т.к. там символы а-д не равновероятны.


--------------------
"Искусство математика состоит в нахождении того частного случая, который содержит все зародыши общности" © Гильберт

Путь по звездам вновь означен,
И вновь гудит набат.
В алтарях святые плачут,
И воин сходит в ад,
Сущий ад,
Но ни шагу назад!
© Ария


Поблагодарили:
Перейти в начало страницы
+Цитировать сообщение
СЛАУ
сообщение 22.05.2012, 16:10
Сообщение #13


Доцент
******

Группа: Member
Сообщений: 2212
Регистрация: 18.5.2008
Из: чьего-то странного-странного сна
Пользователь №: 7303
Поблагодарили: 3081 раз(а)




Цитата(Elena @ 22.05.2012, 18:48) *
Будет время, позже подробнее напишу, как я кодировала символы.
Это было бы замечательно. Заранее спасибо.


--------------------
Читайте книги: некоторые из них специально для этого написаны.

Перейти в начало страницы
+Цитировать сообщение
ycheff
сообщение 22.05.2012, 17:28
Сообщение #14


Ректор
********

Группа: Moderator
Сообщений: 6489
Регистрация: 9.12.2006
Из: Моск. обл.
Пользователь №: 3363
Поблагодарили: 12887 раз(а)




Цитата
Почему код Хаффмана префиксный, я пока не поняла, но ладно.


Префиксный - значит многократно пофиксенный.


--------------------
I've never been clever, because need it never...


Поблагодарили:
Перейти в начало страницы
+Цитировать сообщение
Elena
сообщение 23.05.2012, 19:50
Сообщение #15


Ректор
********

Группа: Admin
Сообщений: 11202
Регистрация: 30.8.2005
Пользователь №: 197
Поблагодарили: 9027 раз(а)




Цитата(СЛАУ @ 22.05.2012, 17:10) *
Это было бы замечательно. Заранее спасибо.

Вот:

Прикрепленное изображение


На каждом шаге объединяются самые маловероятные веточки. У вершин в скобках приписаны частоты, чтобы было нагляднее.


--------------------
"Искусство математика состоит в нахождении того частного случая, который содержит все зародыши общности" © Гильберт

Путь по звездам вновь означен,
И вновь гудит набат.
В алтарях святые плачут,
И воин сходит в ад,
Сущий ад,
Но ни шагу назад!
© Ария


Поблагодарили:
Перейти в начало страницы
+Цитировать сообщение
СЛАУ
сообщение 23.05.2012, 20:56
Сообщение #16


Доцент
******

Группа: Member
Сообщений: 2212
Регистрация: 18.5.2008
Из: чьего-то странного-странного сна
Пользователь №: 7303
Поблагодарили: 3081 раз(а)




Цитата(Elena @ 23.05.2012, 22:50) *
Вот:

Прикрепленное изображение

На каждом шаге объединяются самые маловероятные веточки. У вершин в скобках приписаны частоты, чтобы было нагляднее.
Спасибо! Вы правы - 12. Я совсем уже - с кем стала спорить)

А алгоритм в Википедии описан правильно, и я его поняла правильно: я тоже объединяла самые маловероятные веточки. А я уж была в полной растерянности: думаю, неужели в Википедии под названием одного кода описали другой код. Это была бы умопомрачительно странная ситуация, учитывая, что статья написана хорошо.

Просто я с дуру в число листочков дерева добавила листочки, изображающие буквы с нулевыми частотами, и они у меня тоже учавствовали в построении дерева, на одних правах с остальными. А ведь они совсем не нужны и создают совершенно ненужный добавочный "вес" сообщению.

Я сейчас читаю раздел "Адаптивное сжатие" во всё той же статье Википедии. Я уже почти поняла, как кодировать сообщение за один проход, то есть не подсчитывая заранее количество символов в сообщении. И я так поняла Википедию, что если сообщение закодировано вот этим алгоритмом Хаффмана, адаптированным, то таблицу частот передавать не надо, всё и так может быть раскодировано (или я её не так поняла). Но вот метод раскодирования адаптированного алгоритма Хаффмана там не описан. Что печалит. (Или я несу чушь, и раскодирование в классическом и адаптированном варианте одинаково).

И ещё я пока не поняла, на каком основании можно утверждать, что код Хаффмана - оптимальный.

Но это я так, к слову. Всё, я больше не флужу. Я думаю, может, этот нечаянный разговор - в раздел "Математика", отдельной темой? В назидание потомкам. :-)

Сообщение отредактировал СЛАУ - 24.05.2012, 2:08


--------------------
Читайте книги: некоторые из них специально для этого написаны.

Перейти в начало страницы
+Цитировать сообщение
Elena
сообщение 23.05.2012, 21:11
Сообщение #17


Ректор
********

Группа: Admin
Сообщений: 11202
Регистрация: 30.8.2005
Пользователь №: 197
Поблагодарили: 9027 раз(а)




Цитата(СЛАУ @ 23.05.2012, 21:56) *
И ещё я пока не поняла, на каком основании можно утверждать, что код Хаффмана - оптимальный.

Доказательство есть, например, у Шоломова (Л.А. Шоломов, Основы теории дискретных логических и вычислительных устройств, под ред. С.В. Емельянова, М.: Наука, 1980), начало на с. 375. Можно легко найти в сети (если скан разворотами, то в ридере со стр. 188).

Цитата(СЛАУ @ 23.05.2012, 21:56) *
Но это я так, к слову. Всё, я больше не флужу. Я думаю, может, этот нечаянный разговор - в раздел "Математика", отдельной темой? В назидание потомкам. :-)

Это можно, но не сегодня. Если скажете, что конкретно переносить, буду премного благодарна. (IMG:style_emoticons/default/smile.gif)


--------------------
"Искусство математика состоит в нахождении того частного случая, который содержит все зародыши общности" © Гильберт

Путь по звездам вновь означен,
И вновь гудит набат.
В алтарях святые плачут,
И воин сходит в ад,
Сущий ад,
Но ни шагу назад!
© Ария


Поблагодарили:
Перейти в начало страницы
+Цитировать сообщение
СЛАУ
сообщение 23.05.2012, 21:30
Сообщение #18


Доцент
******

Группа: Member
Сообщений: 2212
Регистрация: 18.5.2008
Из: чьего-то странного-странного сна
Пользователь №: 7303
Поблагодарили: 3081 раз(а)




Цитата(Elena @ 24.05.2012, 0:11) *
Доказательство есть, например, у Шоломова (Л.А. Шоломов, Основы теории дискретных логических и вычислительных устройств, под ред. С.В. Емельянова, М.: Наука, 1980), начало на с. 375. Можно легко найти в сети (если скан разворотами, то в ридере со стр. 188).
Спасибо!
Цитата(Elena @ 24.05.2012, 0:11) *
Это можно, но не сегодня. Если скажете, что конкретно переносить, буду премного благодарна. (IMG:style_emoticons/default/smile.gif)
Посты №№
2599, 2601-2611, 2618-2621, 2623.

Сообщение отредактировал СЛАУ - 24.05.2012, 19:08


--------------------
Читайте книги: некоторые из них специально для этого написаны.



Поблагодарили:
Перейти в начало страницы
+Цитировать сообщение
Cerberuser
сообщение 24.05.2012, 17:21
Сообщение #19


Магистр
****

Группа: Member
Сообщений: 569
Регистрация: 25.2.2011
Пользователь №: 106972
Поблагодарили: 911 раз(а)




Цитата(СЛАУ @ 23.05.2012, 20:56) *
И ещё я пока не поняла, на каком основании можно утверждать, что код Хаффмана - оптимальный.

А можно ли вообще хоть какой-то код, генерирующий для каждого символа последовательности бит, считать оптимальным? Насколько я помню, в большинстве нетривиальных случаев минимальный объём каждого элемента вполне может быть не целым... Близок к оптимальности - да, но можно ли говорить об оптимальности?
Перейти в начало страницы
+Цитировать сообщение
Elena
сообщение 25.05.2012, 18:36
Сообщение #20


Ректор
********

Группа: Admin
Сообщений: 11202
Регистрация: 30.8.2005
Пользователь №: 197
Поблагодарили: 9027 раз(а)




Цитата(СЛАУ @ 23.05.2012, 22:30) *
Посты №№
2599, 2601-2611, 2618-2621, 2623.

Уффф, вроде всё перенесла (IMG:style_emoticons/default/smile.gif)

Цитата(Cerberuser @ 24.05.2012, 18:21) *
А можно ли вообще хоть какой-то код, генерирующий для каждого символа последовательности бит, считать оптимальным? Насколько я помню, в большинстве нетривиальных случаев минимальный объём каждого элемента вполне может быть не целым... Близок к оптимальности - да, но можно ли говорить об оптимальности?

Оптимальный = наилучший. Доказательство, что код Хаффмана является оптимальным для посимвольного кодирования, есть в литературе. Например, в упомянутой выше.

Цитата(Cerberuser @ 24.05.2012, 18:21) *
Насколько я помню, в большинстве нетривиальных случаев минимальный объём каждого элемента вполне может быть не целым...

А что понимается под минимальным объемом каждого элемента?


--------------------
"Искусство математика состоит в нахождении того частного случая, который содержит все зародыши общности" © Гильберт

Путь по звездам вновь означен,
И вновь гудит набат.
В алтарях святые плачут,
И воин сходит в ад,
Сущий ад,
Но ни шагу назад!
© Ария


Поблагодарили:
Перейти в начало страницы
+Цитировать сообщение
Cerberuser
сообщение 26.05.2012, 19:38
Сообщение #21


Магистр
****

Группа: Member
Сообщений: 569
Регистрация: 25.2.2011
Пользователь №: 106972
Поблагодарили: 911 раз(а)




Цитата(Elena @ 25.05.2012, 18:36) *
Оптимальный = наилучший. Доказательство, что код Хаффмана является оптимальным для посимвольного кодирования, есть в литературе. Например, в упомянутой выше.

Вопрос снят, ответ понят (IMG:style_emoticons/default/smile.gif)
Перейти в начало страницы
+Цитировать сообщение

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 9.05.2025, 22:58


Rambler's Top100