Крафтын тэнцэтгэл биш

Кодчлолын онолоор (coding theory) Крафтын тэнцэтгэл биш (Леон Крафтын нэрээр нэрлэгдсэн) нь префикс код (prefix code) бүрдүүлэх хангалттай нөхцлийг бүрдүүлэхээс (uniquely decodable code) гадна өгөгдсөн урттай нууц үгийн тайлагдагдахгүй байх кодыг бүрдүүлэхэд чухал үүрэг гүйцэтгэдэг. Энэхүү тэнцэтгэл биш нь компьютерийн шинжлэх ухаан болон мэдээлэл технелогийн префикс код болон модны хүрээнд хэрэглэгддэг.

Цаашилбал, Крафтын тэнцэтгэл биш нь префикс кодын(prefix code) нууц үгийн уртыг хязгаарладаг болно. Жишээ нь: хэрэв ашиглагдаж буй нууц үгийн (codeword) уртын илтгэгч функцыг авахад үлдсэн утга нь магадлалын олонлогийн функцтэй төстэй утга үлдэх бөгөөд нийт хэмжээ нь 1-ээс бага буюу тэнцүү байна. Крафтын тэнцэтгэл биш нь нууц үгийн хүрээнд зарцуулах нэгдсэн нөөцөнд хүндрэлтэй тусах бөгөөд нууц үг богино байх тусам илүү хүндрэлтэй байна. 

 Хэрэв Крафтын тэнцэтгэл биш нь тодорхой тэнцэл биш агуулж байвал кодын хувьд илүүдэлтэй байна. 
 Хэрэв Крафтын тэнцэтгэл биш нь тэнцэл биш агуулж байвал асуулгыг бүрэн код  гэнэ. 
 Хэрэв Крафтын тэнцэтгэл биш нь тэнцэл биш хэлбэртэй бол код нь цор ганц задлагч (uniquely decodable) байна . 

Крафтын тэнцэтгэл бишийг 1949 онд Крафт гаргаж ирсэн. Гэхдээ Крафтын судалгаанд зөвхөн префикс кодын талаар л бичсэн ба Раймонд Рэдхэффэрийн тэнцэл биштэй адилтгаж анализ хийсэн байдаг. 1956 онд  -ийн  энэхүү тэнцэл бишийг ашиглан гаргасан нээлтийн дараа энэхүү тэнцэл бишийг Крафт-МкМилланын теором гэж мөн хэлэх болсон.  1955 онд Joseph Leo Doob-ны гаргаж байсан цор ганц задлагч uniquely decodable кодын ерөнхий байдал болон зарин хэлбэрийн префикс кодын шинж чанарыг нь энэхүү тэнцэл бишийг ашиглан нотолсон юм.    

 Жишээ
 Хоёртын мод 

Хоёртын модны (binary tree)навчнуудаар префикс кодын тодорхойлж болохыг Крафтын тэнцэтгэл биш нь баталдаг.



Энд нийлбэр нь нийт навчны нийлбэрүүд бөгөөд. Ямар нэгэн хүүхэдгүй(No child) орой. Өргөн нь үзүүрийн язгуурын зай болно. 

 Чайтингийн тогтмол 
Мэдээллийн технологийн шинжлэх ухааны алгоритмийн онолын хувьд Чайтины (Chaitin) тогтмол нь

Энэ нь хязгааргүй нийлбэр бөгөөд бичлэгийн хувьд зөв ч гацаж буй програмын хувьд нэг нэмэгдэхүүн байна.|p| нь p-гийн бит-ийн эгнээний уртыг тодорхойлно. Зөв бичигдсэн ч гацаж буй програмын хувьд префикс агуулсан нэмэгдэхүүн байхгүй бөгөөд иймд програм нь префикс код байхгүй байх шаардлагатай. Гэвч битийн эгнээ нь префикс код тул Крафтын тэнцэтгэл бишээр  .

 Тодорхойлолт 
Эх үүсвэр бүрийг үсгээр тэмдэглэн

цор ганц задлах нь  нь үсэг хүртэл кодлох ба нууц үгийн урт нь дараахи байдлаар илэрхийлэгдэнэ.

тэгэхээр

Тухайн  -ийн хүрээнд дээрх тэнцэл бишийг хангаж буй дурын натурал тоонуудын хувьд эдгээр нууц үгийн урттай  цор ганц задлах код нь  үсгийн хэмжээнд оршиж байдаг.

цор ганц задлах код нь префикс код байх тохиолдол элбэг байдаг. Иймд Крафтын тэнцэтгэл биш нь префикс код агуулж байдаг. 

 Префикс кодын баталгаа 

upright=1.5|thumb|2-тын модны жишээ. Улаан өнгөөр тэмдэглэсэн зангилаа нь префикс кодыг тодоор илэрхийлнэ. Тухайн зангилаанаас салаалж буй салаануудын тоог тооцоолох аргачлалыг доор үзүүлж байна.
Дээрхээс   гэж үзвэл   нь  -тын модны  -ын нийт өргөн болно.  -тын модны  өргөний салаа бүрийн үсгийн хувьд урт нь  байна. Префикс  кодын  -дэх үгийн салаа нь   ба  нь эхэүү зангилаанаас үүсэх язгуурын нь  туслах модны  навчнууд байна.


Иймээс код нь префикс код тул,

.

тэгэхээр, is  өргөний хувьд дурын нийт салааны нийлбэр нь,

бөгөөд эндээс үүдэн.

Дурын  натурал тоонуудын дараалал нь,

Ингэснээр Крафтын тэнцэтгэл бишийн хүрээнд  урттай нууц үгтэй префикс код боловсруулж болох ба энэ нь  өргөнтэй -тын туслах модоор таслагдах болно. Эхлээд  өргөнтэй модноос дурын зангилааг сонгож тухайн зангилааны бүх салааг устгах. Ингэснээр нийт модны   зангилааны бутархай нь ашиглаж буй нууц үгийн үлдэгдэл болох болно. Дараагын давталт нь  бутархайг  модноос салгана.   давталтын дараагаас,

Энэхүү бутархайг бодолтоос бүхэн устгаснаар нууц үгийн үлдсэн хэсэг нь ч нэсэн устах болно.Гэвч онолын хувьд энэхүү нийлбэр нь бүх -ийн хувьд 1-ээс бага байна. Тэгэхээр префикс кодын урттай  байх бүх л  эх үүсвэрийн тэмдэгтийн хүрээнд боловсруулж болно.

 Хоёртын модны баталгаа 

Энд  нь 2-тын мод гэвэл  нь  модны нэг хүүхэдтэй залгаасыг холбосон 2-тын мод юм.  -ын бүх залгаас нь нэг эсвэл хоёр хүүхэдтэй байна.  -ын салаа бүр нь  -д орсон байгаа иймд

Дурын сонголтын хувьд  нь одоогын залгаасын хувьд навчинд хүртлээ баруун зүүн талруугаа тогтмол хөдөлж байдаг. Энэхүү хөдөлгөөн нь нэг навчинд хүрэх магадлал нь , бөгөөд  байна. тэгэхээр  магадлалын тархаалт нь  болно

Үр дүнгийн эсрэг утгын нотолгоог дээр үзүүлэв.

 Ерөнхий тохиолдлын баталгаа 
S кодын хүрээнд x-ийн эсрэг функц нь доорх гэж үзвэл

-ийн өмнө байгаа  нь хувьсагч   урттай нууц үгийн ялгаатай дугаар юм. Энд min нь S-ийн хамгийн богино нууц үгийн урт ба max нь хамгийн урт нууц үгийн урт болно.

Дурын эерэг бүхэл тоо m нь Sm бүтээгдэхүүнийг m-ээр хааж байна гэж үзэх бөгөөд -ийг агуулж байдаг бол  нь 1 болон n-ийн  хооронд зааглагддаг. S нь цор ганц задлах боломжтой шинжтэй ба, хэрэв , бол  байна. Өөрөөр хэлбэл -ийн бүх хэллэг нь -ийн нууц үгнүүдийн онцгой дарааллаас үүссэн байна. Иймд  -ийн хувьд  функцээс  үүсгэх боломжгүй юм.



Энд -д байгаа -ийн өмнөх   хувьсагч нь -д байгаа  уртын үгийн тоо юм.  нь -ээс урт байж болохгүй. Иймд дурын эерэг x нь



Хэрэв x = r хэмээн орлуулсан тохиолдолд


Тухайн  нь дурын бүхэл эерэг тоо байна. Тэнцэтгэл бишийн зүүн тал нь -ийн илтгэгч зэргээр өсөх ба баруун тал нь шугаман хэлбэрээр өснө. Тэнцэтгэл биш нь -ийн бүх утгын хувьд зөв байх боломж нь . Иймд -ийн тодорхойлолт ёсоор бид дараахи тэнцэл биштэй болно.

 Жагсаалт 
 .

 .

Ангилал:Графын онол
Ангилал:Кодын онол
Ангилал:Тэнцэтгэл биш