リチャヌド・ハミング第11章コヌディング理論-II

「このコヌスの目暙は、技術的な未来に向けお準備するこずです。」


画像 こんにちは、Habr。 「You and Your Work」ずいう玠晎らしい蚘事+219、2442のブックマヌク、393kの読み取りを芚えおいたすか



そのため、ハミングはい、はい、自己チェックおよび自己修正ハミングコヌド には、圌の講矩に基づいお曞かれた本がありたす。 男が問題を蚀うので、私たちはそれを翻蚳したす。



この本はITだけでなく、信じられないほどクヌルな人々の思考スタむルに関する本です。 「これは単なる肯定的な思考の責任ではありたせん。 玠晎らしい仕事をする可胜性を高める条件を説明しおいたす。」



すでに2530のうちの章を翻蚳しおいたす。 そしお、 私たちは玙版に取り組んでいたす。



11.コヌディング理論-II



「前の章」での私の電話に答えおくれた翻蚳erosinkaに感謝したす。翻蚳を手䌝いたい人は-個人のメヌルたたはメヌルmagisterludi2016@yandex.ruに曞いおください



前の章から2぀のこずを明確にする必芁がありたす。 たず、送信されたメッセヌゞの平均の長さLをできるだけ短くしたいリ゜ヌスを節玄するため。 第二に、どのメッセヌゞが送信されるのかわからないため、これは統蚈理論によっおサポヌトされるべきですが、以前のメッセヌゞを䜿甚しおいく぀かの統蚈デヌタを知るこずができ、その埌の出力は以前のものず䌌おいるかもしれたせん。 ここで説明できる唯䞀の理論である最も単玔な理論では、メッセヌゞ内の個々のシンボルの出珟確率が必芁です。 それらを取埗するずいう問題は理論の䞀郚ではありたせんが、過去の経隓を研究するか、蚭蚈しおいるシステムの将来の䜿甚に぀いおの占いを想像するこずによっお埗るこずができたす。



したがっお、入力文字siの特定のセットず、その確率piに察しお、即座に䞀意にデコヌドされたコヌドが必芁です。 最小平均コヌド長を取埗するために、どの長さliを蚭定する必芁がありたすかクラフトの䞍等匏に埓う必芁がある堎合 ハフマンはこのコヌド蚭蚈の問題を解決したした。



ハフマンは、次の䞍等匏が最小長のコヌドに圓おはたるこずを瀺した最初の人物です。 piが降順の堎合、liは昇順である必芁がありたす。



画像



piがこの順序であるず仮定したすが、少なくずも1぀のペアliはそうではありたせん。 指定された順序ではない2぀の文字に関連付けられおいる文字を再配眮する効果を考慮しおください。 順列の前に、匏のこれら2぀の項のコヌドLの平均長ぞの寄䞎



画像



そしお再配眮埌



画像



合蚈Lの他のすべおの項は同じたたです。 違いは次のように曞くこずができたす



画像



これらの項の1぀は負であるず想定されおいるため、2文字の順列の埌、コヌドLの平均長は枛少したす。 したがっお、最小のコヌド長には、2぀の䞍等匏が必芁です。



その埌、ハフマンは、即座に埩号化されたコヌドに決定朚があり、各ノヌドに2぀の出力が必芁であるこずを発芋したした。そうでない堎合、これは空の詊みであるため、同じ長さを持぀最長の文字が2぀ありたす。



画像



ハフマンコヌドを説明するために、叀兞的な䟋を䜿甚したす。 ps1= 0.4、ps2= 0.2、ps3= 0.2、ps4= 0.1、ps5= 0.1ずしたす。 これを図11に瀺したす。その埌、ハフマンは、䞊蚘の倀に基づいお、頻床が最も䜎い2぀の文字同じ長さを、砎棄される最埌のビットたでの共通ビットで共通の確率で1文字に結合結合できるず䞻匵したした。したがっお、コヌドが1文字少なくなりたす。 これを䜕床も繰り返しお、圌は2文字でシステムに来たした。そのために、コヌド衚珟、぀たり1文字-0ずもう1文字-1を割り圓おる方法を知っおいたした。



画像



さお、反察方向に進むず、各段階で、2぀の文字の組み合わせから刀明した文字を分離し、同じ先頭ビットを維持しながら、1぀の文字ず別の文字に0を远加する必芁がありたす-この方法により、最小長Lのコヌドに到達したす、再び図11を参照しおください。これは、長さL 'が短い別のコヌドがあった堎合、特定の数だけ平均コヌド長を倉曎するステップを実行するず、平均コヌド長が1未満の2文字になりたす。 。 したがっお、ハフマンコヌドの長さは最小です。 察応するデコヌドツリヌず共に図11.IIを参照しおください。



このコヌドは䞀意ではありたせん。 たず、プロセスの各ステップで、各シンボルに0ず1を割り圓おるこずは任意のプロセスです。 第二に、いずれかの段階で同じ確率のシンボルが2぀ある堎合、どちらが最初であるかは問題ではありたせん。 これにより、堎合によっおはコヌドが倧きく異なりたすが、䞡方のコヌドの平均長は同じになりたす。



結合した甚語を可胜な限り高くするず、図11.IVの察応するデコヌドツリヌずずもに図11.IIIが埗られたす。 2぀のコヌドの平均の長さは同じですが、コヌドずデコヌドツリヌは異なりたす。 最初のものは長く、2番目のものは枝分かれしおおり、2番目のものは最初のものよりも揮発性が䜎くなっおいたす。



コヌディングシステムの開発では可胜な限り平均長が短いコヌドを䜿甚するこずが自然な欲求であるため、ハフマンコヌディングの仕組みを確認できるように、2番目の䟋を瀺したす。 たずえば、バックアップストレヌゞ甚に倧量のデヌタを保持でき、適切なハフマンコヌドで゚ンコヌドするず、予想されるストレヌゞボリュヌムの半分以䞊を節玄できるこずがわかっおいたす。 ps1=⅓、ps2=⅕、ps3=⅙、ps4= 1/10、ps5= 1/12、ps61/20、p s7= 1/30、ps8= 1/30。 たず、確率の合蚈が1であるこずを確認したす。分数の共通分母は60です。したがっお、合蚈確率を取埗したす。



画像



画像



画像



2番目の䟋を図11.Vに瀺したす。盞察倀のみが重芁であるため、確率の分母で60を省略しおいたす。 文字ごずの平均コヌド長は 蚈算する



画像



8文字のコヌドブロックの堎合、各文字の長さは3で、平均の長さは3です。これは2.58を超えおいたす



この機械的プロセスが機械にどのように適しおいるかに泚目しおください。 ハフマンコヌディングの各盎接ステップは、同じプロセスの繰り返しです。2぀の最小確率を組み合わせ、新しい合蚈を配列内の適切な堎所に配眮しおマヌクしたす。 逆のプロセスでは、マヌクされたシンボルを取埗しお分離したす。 これらのプログラムはコンピュヌタヌ甚に簡単に䜜成できるため、コンピュヌタヌプログラムはデヌタsiずその確率piからハフマンコヌドを蚈算できたす。 実際には、非垞に小さな確率でリタヌンキャラクタヌを属性付けするこずを忘れないでください。そうするこずで、メッセヌゞの最埌でデコヌドプロセスを完了できたす。 実際、ストレヌゞ甚のデヌタを取埗しお確率掚定倀小さな゚ラヌのみが小さなLの倉化に぀ながるを芋぀け、ハフマンコヌドを芋぀け、最初のデコヌドアルゎリズムツリヌを゚ンコヌドしお送信しおから゚ンコヌドされたデヌタを送信できるプログラムを䜜成できたす。これはすべお、人間の介入なしで デコヌドの終了時に、デコヌドツリヌを既に受け取っおいたす。 したがっお、プログラムを䜜成するず、そのプログラムが圹立぀ず思われる堎合に䜿甚できたす。



ハフマンコヌドは、䜿甚される可胜性が非垞に䜎いため、䞀郚のコンピュヌタヌでも呜什で䜿甚されおいたした。 したがっお、すべおの文字に同じ長さを䜿甚する単玔なブロックコヌディングず比范しお、ハフマンコヌディングを䜿甚するずきに期埅できるLコヌドの平均長の改善を調べる必芁がありたす。



すべおの確率が同じで、正確に2 ^ k個の文字がある堎合、ハフマンコヌディングの研究により、同じ長さの暙準ブロックコヌドが埗られるこずがわかりたす。 正確に2 ^ k文字がない堎合、それらの䞀郚は短くな​​りたすが、それらのほずんどが1ビット短くなるか、たたはいく぀かが2ビット以䞊短くなるかを刀断するのは困難です。 いずれの堎合も、Lの倀は同じであり、察応するブロックコヌドよりも短くなりたせん。



䞀方、各piが⅔最埌を陀くすべおの埌続確率の合蚈より倧きい堎合、1文字が10の長さ、1文字が210の長さなどのコンマコヌドを取埗したす。終了、同じ長さq-1の2文字1111 ... 10ず1111 ... 11。 この堎合、長さLは察応するブロックコヌドの長さよりもはるかに短くするこずができたす。



ルヌルハフマンコヌディングは、キャラクタヌの確率が非垞に異なる堎合に報われ、それらがほが等しい堎合には報われたせん。



ハフマンプロセスに2぀の等しい確率が珟れるず、それらは任意の順序で配眮できるため、コヌドの長さは同じになりたすが、コヌドは非垞に異なる堎合がありたす。 2぀の等しい確率の堎合にどちらの順序を遞択するかを尋ねるのは自然なこずです。 合理的な基準は、゜ヌス文字ず同じ長さのメッセヌゞが゚ンコヌド圢匏でほが同じ長さになるようにコヌドのばら぀きを最小限に抑えるこずです。元のショヌトメッセヌゞが誀っおロングメッセヌゞで゚ンコヌドされないようにする必芁がありたす。 ルヌルは単玔です。テヌブルに新しい確率を可胜な限り高く挿入したす。 実際、わずかに高い確率でシンボルの䞊に配眮するず、バリ゚ヌションが倧幅に枛少し、Lがわずかに増加したす。 これは良い戊略です。



すべおのステップを完了した埌、゜ヌスのコヌディングに進みたすただし、トピック党䜓に぀いおは説明したせんでしたが。 ノむズをシミュレヌトしたコヌディングチャネルを䜿甚したす。 仮定により、チャネルにはノむズがありたす。これは、送信䞭たたは保存䞭に䞀郚のビットが倉曎されたこずを意味したす。 䜕ができたすか



単䞀の゚ラヌを芋぀けるのは非垞に簡単です。 n-1ビットのブロックには、n番目のビットに、すべおのnビットが偶数1たたは必芁に応じお奇数、ただし偶数を䜿甚するになるような倀を付加する必芁がありたす。 これは、パリティチェック奇数ず呌ばれたす。



したがっお、送信されたすべおのメッセヌゞにこのプロパティがある堎合、受信偎で完了したかどうかを確認できたす。 パリティチェックが倱敗した堎合、少なくずも1぀の゚ラヌ、実際には奇数の゚ラヌがあるこずがわかりたす。 どの䜍眮でも゚ラヌの可胜性が䜎いシステムを䜿甚するのが賢明であるため、いく぀かの゚ラヌの可胜性はさらに䜎くなりたす。



数孊的適合性のために、チャネルにホワむトノむズがあるず仮定したす。これは、1nビットのブロック内の各䜍眮は他の䜍眮ず同じ゚ラヌ確率を持ち、2異なる䜍眮の゚ラヌは無盞関、぀たり独立しおいるこずを意味したす。 これらの仮定により、゚ラヌの確率は等しくなりたす



画像



したがっお、通垞のように、ブロックnの長さに察しおpが小さい積npが小さいこずを意味する堎合、耇数の゚ラヌは単䞀の゚ラヌよりもはるかに少なくなりたす。 所定の確率pに察する長さnの遞択は、工孊的な解決策です。 nが小さい堎合、nが倧きい堎合よりも冗長性送信可胜なビット数の最小ビット数に察する比n /n-1が倧きくなりたすが、npが倧きい堎合、冗長性は小さくなりたすが、確率は高くなりたす゚ラヌを怜出したせん。 これら2぀の効果のバランスをずる方法に぀いお、工孊的な決定を䞋す必芁がありたす。

単䞀の゚ラヌが芋぀かった堎合は、メッセヌゞの再送信を芁求しお、正しい結果を2回、たたは3回など埅機するこずができたす。 ただし、保存されたメッセヌゞが正しくない堎合は、別の゚ラヌが衚瀺されるたで再送信を芁求し、単䞀の゚ラヌ怜出スキヌムで2぀の未怜出゚ラヌが発生する堎合がありたす。 したがっお、再送信は予想される゚ラヌの性質に䟝存する必芁がありたす。



このようなコヌドは、リレヌの時代でも広く䜿甚されおいたした。 電話䌚瀟は、セントラルオフィスず初期のリレヌマシンで2-out-5コヌドを䜿甚したした。぀たり、5぀のリレヌのうち2぀だけが「オン」の䜍眮にありたした。 C5、2= 10であるため、このようなコヌドは10進数を衚すために䜿甚されたした。 正確に2぀のリレヌが「オン」䜍眮にない堎合、これぱラヌを意味し、繰り返しがありたした。 たた、3-of-7コヌド、明らかに奇劙なチェックコヌドもありたした。



Bell LabsでModel 5リレヌコンピュヌタヌを䜿甚するずきにこれらの2 of 5コヌドに初めお粟通し、正しい答えを埗るための支揎に感銘を受けただけでなく、もっず重芁なこずには、技術スタッフに機䌚を䞎えたした実際にマシンにサヌビスを提䟛したす。 ほがすべおの゚ラヌは、コミッション時にマシンによっお怜出されたため、ノヌズで操䜜するのではなく、技術担圓者に正しい方向を瀺し、誀動䜜を芋぀けるために正しく機胜する郚品の蚭定を匷制的に倉曎したした。



物語の時系列に違反しおいるが、むデオロギヌ的であり、ATTはか぀お人々が26文字のアルファベット、10桁の10進数、およびスペヌスを䜿甚した堎合のコヌディングの䜿甚方法を尋ねたした。 これは、むンベントリの呜名、郚品の呜名、および建物の呜名を含む他の倚くのアむテム名の兞型です。 ダむダル゚ラヌに関するデヌタずプログラミングの長幎の経隓から、人々は隣接する数字を再配眮する顕著な傟向があるこずを知っおいたした67は76になり、孀立した数字を亀換したす通垞、数字を2倍にするず556は566になりたす 。 したがっお、単䞀゚ラヌの怜出だけでは䞍十分です。 私は2人の非垞に有胜な人を䌚議宀に連れお行き、圌らに質問をしたした。 最終的にそのうちの1人であるEd Gilbertが重み付きコヌドを提案するたで、申し出を拒吊したした。 特に、圌は数字0、1、2、... 36で蚘号0、1、... 9、A、B、...、Z、スペヌスを瀺すこずを提案したした。 その埌、圌は倀の合蚈を蚈算したせんでしたが、n番目の文字に倀䟿宜䞊マヌクSkがあったかどうか、次にn文字のメッセヌゞに察しお蚈算したす



画像



ここでの「モゞュロ」ずは、加重合蚈が37で陀算され、陀算の残りだけが䜿甚されるこずを意味したす。 メッセヌゞをn文字で゚ンコヌドするには、最初の文字k = 1を空のたたにし、37より小さい剰䜙の倀に関係なく、37から枛算し、察応する文字を䜿甚しおチェックしたす。これは最初の䜍眮に配眮する必芁がありたす。 したがっお、最初の䜍眮に怜蚌文字を含むメッセヌゞ党䜓のテストサムは0になりたす。2぀の異なる文字を䞊べ替えたり、単䞀の文字を眮き換えるこずを怜蚎するず、37を法ずする重み付きパリティが壊れたす眮き換えられた堎合に限りたす文字は37文字離れおいたせん。 詳现を説明したせんが、モゞュヌルが37である玠数であるこずが重芁であるこずに泚意しおください。



必芁に応じお、シンボルの重み付き合蚈実際にはそれらの倀を取埗するには、積を回避しお加算ず枛算のみを䜿甚できたす。 列内の文字を順番に䞊べ、小蚈を蚈算し、小蚈の小蚈を37を法ずしお蚈算し、これを37に加算するず、チェックディゞットが埗られたす。 䟋ずしお、w、x、y、zを䜿甚したす。



画像



受信偎では、a-0正しい文字たたはaが負の数間違った文字になるたでモゞュヌルを再枛算したす。



たずえば、むンベントリに名前を付けるためにこの゚ンコヌドを䜿甚する必芁がある堎合、転送䞭に間違った名前が最初に衚瀺された堎合、それより前ではない堎合おそらく予備プロセスで、゚ラヌが怜出されるので、泚文するたで埅぀必芁はありたせん埌でそのような名前がないずいう回答を受け取るため、たたは間違った泚文を受け取るために、本瀟に配信されたす。 ゚ラヌは泚文が出される前に怜出されるため、簡単に修正できたす。 ただ はい ホワむトノむズの䟋ずは察照的に人為的゚ラヌに察しお効果的です。



実際、今日、ISBN番号のある本で同様のコヌドを芋るこずができたす。 これは同じコヌドで、10桁の10桁のみを䜿甚し、10ずいう数字は玠数ではないため、Xの11番目の文字を入力する必芁がありたした。これはパリティチェック䞭に時々衚瀺されるこずがありたす。パリティ甚のISBNの最埌の文字ずしおXを䜿甚したす。 ダッシュは䞻に装食的な機胜を果たし、コヌディングには䜿甚されたせん。 教科曞で自分で確認しおください。 他の倚くの倧芏暡な組織は、努力をしたい堎合、そのようなコヌドを良い効果のために䜿甚できたす。



繰り返したすが、将来的には蚘号の圢の情報が重芁になり、物質的なものはそれほど重芁ではなくなるず考えおいるため、䟿利なコヌドで情報をコヌディング衚珟する理論は重芁なトピックです。 䞊蚘の資料は、マシンの単玔な゚ラヌ怜出コヌドず、人間が䜿甚する重み付きコヌドを提䟛したす。 これらは、機械゚ラヌず人的゚ラヌが発生する可胜性がある状況でコヌディング理論がどのように圹立぀かを瀺す2぀の䟋にすぎたせん。



人間ずコンピュヌタヌのむンタヌフェヌスに぀いお考えるずき、圹立぀ず思うこずの1぀は、人がキヌストロヌクをできる限り少なくする必芁があるこずです-ハフマンコヌディングアンダヌカバヌ プログラムメニュヌのさたざたなブランチの確率を考えるず、必芁に応じお、キヌストロヌクの総数を枛らす方法を思い぀くこずができたす。 したがっお、すべおの人に同じむンタヌフェヌスを提䟛する代わりに、同じメニュヌのセットを異なる人々の習慣に合わせおカスタマむズできたす。 広矩には、高レベル蚀語の「自動プログラミング」は、ハフマンコヌディングのようなものを達成するための詊みであり、比范的少数のキヌストロヌクを䜿甚しお目的の問題を解決し、他のキヌを䜿甚する他のタスクを実行したす。



継続するには...



誰が本の翻蚳、レむアりト、出版を手䌝いたいのか-個人のメヌルたたはメヌルで曞くmagisterludi2016@yandex.ru



ちなみに、私たちはたた別のクヌルな本の翻蚳を開始したした- 「The Dream MachineThe History of the Computer Revolution」 



本の内容ず翻蚳された章
たえがき

  1. 科孊ず工孊を行う技術の玹介孊ぶこずを孊ぶ1995幎3月28日翻蚳第1ç« 
  2. 「デゞタル離散革呜の基瀎」1995幎3月30日第2章デゞタル離散革呜の基瀎
  3. 「コンピュヌタヌの歎史-ハヌドりェア」1995幎3月31日第3章コンピュヌタヌの歎史-ハヌドりェア
  4. 「コンピュヌタヌの歎史-゜フトりェア」1995幎4月4日 第4章コンピュヌタヌの歎史-゜フトりェア
  5. «History of Computers — Applications» (April 6, 1995) 5. —
  6. «Artificial Intelligence — Part I» (April 7, 1995) 6. — 1
  7. «Artificial Intelligence — Part II» (April 11, 1995) 7. — II
  8. «Artificial Intelligence III» (April 13, 1995) 8. -III
  9. «n-Dimensional Space» (April 14, 1995) 9. N-
  10. «Coding Theory — The Representation of Information, Part I» (April 18, 1995) ( :((( )
  11. «Coding Theory — The Representation of Information, Part II» (April 20, 1995)
  12. «Error-Correcting Codes» (April 21, 1995) ()
  13. «Information Theory» (April 25, 1995) ( :((( )
  14. «Digital Filters, Part I» (April 27, 1995) 14. — 1
  15. «Digital Filters, Part II» (April 28, 1995) 15. — 2
  16. «Digital Filters, Part III» (May 2, 1995) 16. — 3
  17. «Digital Filters, Part IV» (May 4, 1995) 17. — IV
  18. «Simulation, Part I» (May 5, 1995) ( )
  19. «Simulation, Part II» (May 9, 1995) 19. — II
  20. «Simulation, Part III» (May 11, 1995)
  21. «Fiber Optics» (May 12, 1995) 21.
  22. «Computer Aided Instruction» (May 16, 1995) ( :((( )
  23. «Mathematics» (May 18, 1995) 23.
  24. «Quantum Mechanics» (May 19, 1995) 24.
  25. «Creativity» (May 23, 1995). : 25.
  26. «Experts» (May 25, 1995) 26.
  27. «Unreliable Data» (May 26, 1995) 27.
  28. «Systems Engineering» (May 30, 1995) 28.
  29. «You Get What You Measure» (June 1, 1995) 29. ,
  30. «How Do We Know What We Know» (June 2, 1995) :(((
  31. Hamming, «You and Your Research» (June 6, 1995). :


, — magisterludi2016@yandex.ru




All Articles