Метод Шеннона-Фано

แชร์
ฝัง
  • เผยแพร่เมื่อ 6 เม.ย. 2017
  • Метод оптимального кодирования Шеннона-Фано позволяет минимизировать избыточность кода. Под кодированием понимается процесс отображения одного набора знаков в другой: представление символов одного (исходного) алфавита в виде символов другого (кодового) алфавита. никакое кодовое слово не должно быть началом никакого другого кодового слова. Код, полученный методом Шеннона-Фано, удовлетворяет условию Фано или принципу префиксности: никакое кодовое слово не должно быть началом никакого другого кодового слова.

ความคิดเห็น • 48

  • @nahodkiWB309
    @nahodkiWB309 7 ปีที่แล้ว +39

    Спасибо за понятное объяснение!

    • @romantsarev1145
      @romantsarev1145  7 ปีที่แล้ว +2

      Вера, рад что Вам понравилось.

  • @Sasha-bm1df
    @Sasha-bm1df 5 ปีที่แล้ว +9

    Очень доходчиво. Спасибо !

  • @infup
    @infup 2 ปีที่แล้ว +10

    Отличное объяснение! Спасибо.

  • @user-wq9oy7hx6z
    @user-wq9oy7hx6z ปีที่แล้ว +2

    Спасибо большое. Очень понятное объяснение.

  • @Bezon4ik
    @Bezon4ik 5 ปีที่แล้ว +3

    Спасибо, помог

  • @den-ned
    @den-ned 2 ปีที่แล้ว

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

    • @romantsarev1145
      @romantsarev1145  10 หลายเดือนก่อน +1

      Ну, как, пригодилось?

    • @den-ned
      @den-ned 10 หลายเดือนก่อน

      @@romantsarev1145 Нет, программирование стало менее актуальным с тех пор, и с осени прошлого года перестал его изучать и занялся другой деятельностью, вполне успешно)

  • @raydenshow9952
    @raydenshow9952 6 ปีที่แล้ว +1

    Спасибо вам большое за объеснение

  • @psbd758
    @psbd758 3 ปีที่แล้ว

    Благодарочку кидаю

  • @user-gh1sd2ki1e
    @user-gh1sd2ki1e 2 ปีที่แล้ว +1

    Здравствуйте, замечательный разбор, а не подскажете как делятся группы например при вероятностях 0.4 0.2 0.4?
    В какую группу относим второй элемент, к первому или к последнему? Просто разность вероятности 2ух групп в таком случае одинакова

    • @romantsarev1145
      @romantsarev1145  2 ปีที่แล้ว +1

      Здравствуйте! На Ваше усмотрение.

  • @user-um8cm4pt9w
    @user-um8cm4pt9w 3 ปีที่แล้ว +1

    Спасибо за хорошее объяснение, но есть вопрос.
    Чем Шеррон-Фано отличается от Хаффмана? Просто записано буквально одинаково.

    • @romantsarev1145
      @romantsarev1145  3 ปีที่แล้ว +5

      В метода Хаффмана мы всегда выбираем минимальные вероятности (сначала среди вероятностей отдельных символов, потом уже и сумм вероятностей). При этом, сортировать предварительно вообще не обязательно. В методе же Ш-A это обязательное условие. Например, этим отличается.
      В большинстве случаев длина последовательности, сжатой по методу Шеннона - Фано, равна длине сжатой последовательности с использованием кодирования Хаффмана. Однако на некоторых последовательностях могут сформироваться неоптимальные коды Шеннона - Фано, поэтому более эффективным считается сжатие методом Хаффмана (с) Википедия: ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%A8%D0%B5%D0%BD%D0%BD%D0%BE%D0%BD%D0%B0_%E2%80%94_%D0%A4%D0%B0%D0%BD%D0%BE

  • @oxygensss4390
    @oxygensss4390 4 ปีที่แล้ว +2

    Тему понял, но я не знаю зачем это и где пригодится. Объясните пожалуйста

    • @perfpg8691
      @perfpg8691 3 ปีที่แล้ว

      В моем институте в ближайшее время мы будем писать архиватор на си, с помощью этого метода

  • @user-id5nx6bq1v
    @user-id5nx6bq1v 3 ปีที่แล้ว

    Здравствуйте Роман могли бы мне помочь с решением похожей задачи?

    • @romantsarev1145
      @romantsarev1145  10 หลายเดือนก่อน

      Полагаю, что уже не актуально. Что-то не заметил Вашего комментария в свое время. Лучше было на биржу фриланса обратиться. Там бы точно помогли.

  • @markysermak6546
    @markysermak6546 5 ปีที่แล้ว +4

    ничего не понятно, но очень интересно

    • @romantsarev1145
      @romantsarev1145  5 ปีที่แล้ว

      Твой комментарий порадовал меня

  • @user-wf2gn4pj9f
    @user-wf2gn4pj9f 4 ปีที่แล้ว

    такой вопрос : я получил кодовые значения для каждого символа но я не могу понять надо считывать длину кодовой комбинации ? Просто мне надо использовать формулу для уменьшения средней длины кодовой комбинации.

    • @romantsarev1145
      @romantsarev1145  4 ปีที่แล้ว

      Метод Шеннона-Фано дает оптимальный код. Код тем оптимальнее, чем средняя длина кодового слова ближе к минимально возможной. Так что, если Вы хотите узнать насколько код оптимален, то нужно посчитать одно и второе.

    • @user-wf2gn4pj9f
      @user-wf2gn4pj9f 4 ปีที่แล้ว

      @@romantsarev1145 Спасибо большое за ответ !

  • @qwiy5955
    @qwiy5955 4 ปีที่แล้ว

    в конце не понял, как добиваются однозначности декодирования?

    • @romantsarev1145
      @romantsarev1145  4 ปีที่แล้ว +1

      Ни одно кодовое слово не является началом другого кодового слова. То есть, нет ситуации, когда один символ закодирован, например, как 11, а другой - 110, и непонятно при считывании второй единицы (при декодировании) это уже первый символ закончился или второй еще идет. Это называется выполнением принципа префиксности или соблюдением условия Фано.

  • @user-yu4og4cp6o
    @user-yu4og4cp6o 3 หลายเดือนก่อน

    А доказательство эффективности где?

    • @romantsarev1145
      @romantsarev1145  3 หลายเดือนก่อน

      Нету. Не ставил такой цели

  • @levkornev1013
    @levkornev1013 3 ปีที่แล้ว

    Не совсем понятно как двоичный код может обеспечить префиксность если количество элементов больше 8

    • @romantsarev1145
      @romantsarev1145  3 ปีที่แล้ว

      Принцип префиксности - ни одно кодовое слово не может быть началом другого кодового слова. Одно должно выполняться всегда и не зависит ни от системы счисления, ни от числа элементов.

    • @levkornev1013
      @levkornev1013 3 ปีที่แล้ว

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

    • @romantsarev1145
      @romantsarev1145  3 ปีที่แล้ว

      @@levkornev1013 Вы поняли верно. Принцип префиксности позволяет ОДНОЗНАЧНО декодировать символы закодированного сообщения, которые идут сплошняком. Но мне не понятно, что Вам не понятно. Возможно повторный просмотр видео снимет возникшие вопросы. Если нет, задайте их более развернуто.

    • @levkornev1013
      @levkornev1013 3 ปีที่แล้ว

      @@romantsarev1145 спасибо за ответ, разобрал пример и понял что трактуется однозначно

  • @mihrankhachatryan3693
    @mihrankhachatryan3693 4 ปีที่แล้ว

    Вот почему не можно в универе так объяснить?????????

    • @romantsarev1145
      @romantsarev1145  4 ปีที่แล้ว +4

      Отчего же?! Именно так в Сибирском федеральном университете и преподаю.

  • @almazmukushev5993
    @almazmukushev5993 3 ปีที่แล้ว

    У кого есть готовый код на джаве. Шеннона фано??? Или Хаффмана?

    • @nanashi106
      @nanashi106 3 ปีที่แล้ว

      Есть на с++

    • @almazmukushev5993
      @almazmukushev5993 3 ปีที่แล้ว

      @@nanashi106 можешь скинуть

    • @almazmukushev5993
      @almazmukushev5993 3 ปีที่แล้ว

      @@nanashi106 А код Хэмминга есть?

    • @nanashi106
      @nanashi106 3 ปีที่แล้ว

      @@almazmukushev5993 Нет, только Шеннона-фано и Хаффмана

    • @zhanabaizhuzupov3031
      @zhanabaizhuzupov3031 3 ปีที่แล้ว

      @@nanashi106 можете ли мне отпр

  • @stivensti2031
    @stivensti2031 ปีที่แล้ว

    автору западло пример привести?

    • @romantsarev1145
      @romantsarev1145  ปีที่แล้ว +1

      Приятно, что на зоне нас тоже смотрят. Для невнимательных: пример начинается на 0:30 и заканчивается на 3:40. И уже потом описание метода в общем виде.