الترميز الأحادي

الترميز الأحادي ، أو نظام الأعداد الأحادي ، هو ترميز إنتروبي يُمثل عددًا طبيعيًا ، n ، إما بـ n من الآحاد متبوعة بصفر (إذا فُهم مصطلح العدد الطبيعي على أنه عدد صحيح غير سالب ) أو بـ n - 1 من الآحاد متبوعة بصفر (إذا فُهم مصطلح العدد الطبيعي على أنه عدد صحيح موجب تمامًا ). وبالتالي، يكون طول رمز العدد الأحادي n + 1 وفقًا للتعريف الأول، أو n وفقًا للتعريف الثاني. يتصرف الترميز الأحادي، عند تمثيله عموديًا، مثل الزئبق في الترمومتر، حيث يزداد طوله أو ينقص كلما كبر أو صغر n ، ولذلك يُسمى أحيانًا رمز الترمومتر . [ 1 ] يستخدم تمثيل بديل n أو n - 1 من الأصفار متبوعة بواحد، مما يُبدل الآحاد والأصفار فعليًا، دون فقدان للعمومية . على سبيل المثال، أول عشرة رموز أحادية هي:      

رمز أحاديبديلن (غير سالب)ن (موجب تمامًا)
0101
100112
11000123
1110٠٠٠١34
111100000145
11111000000156
1111110000000167
111111100000000178
11111111000000000189
11111111100000000001910

يُعد الترميز الأحادي ترميزًا فعالًا على النحو الأمثل لتوزيع الاحتمالات المنفصلة التالي

P(ن)=2-ن{\displaystyle \operatorname {P} (n)=2^{-n}\,}

لن=1،2،3،...{\displaystyle n=1,2,3,...}.

في الترميز رمزًا برمز، يكون هذا هو الأمثل لأي توزيع هندسي

P(ن)=(ك-1)ك-ن{\displaystyle \operatorname {P} (n)=(k-1)k^{-n}\,}

حيث k φ = 1.61803398879...، النسبة الذهبية ، أو بشكل أعم، لأي توزيع منفصل حيث

P(ن)P(ن+1)+P(ن+2){\displaystyle \operatorname {P} (n)\geq \operatorname {P} (n+1)+\operatorname {P} (n+2)\,}

لن=1،2،3،...{\displaystyle n=1,2,3,...}على الرغم من أن ترميز غولومب هو الأمثل لترميز الرموز بشكل فردي لمثل هذه التوزيعات الاحتمالية، إلا أنه يحقق قدرة ضغط أفضل للتوزيع الهندسي لأنه لا يتعامل مع رموز الإدخال بشكل مستقل، بل يجمعها ضمنيًا. وللسبب نفسه، يكون أداء الترميز الحسابي أفضل مع التوزيعات الاحتمالية العامة، كما في الحالة الأخيرة المذكورة أعلاه.

يُعد الترميز الأحادي ترميزًا خاليًا من البادئات وترميزًا ذاتي التزامن .

الشفرة الأحادية المستخدمة اليوم

تتضمن أمثلة استخدامات الترميز الأحادي ما يلي:

  • في شفرة غولومب رايس ، يتم استخدام التشفير الأحادي لترميز الجزء الناتج من كلمة شفرة غولومب.
  • في UTF-8 ، يتم استخدام الترميز الأحادي في البايت الأول من تسلسل متعدد البايتات للإشارة إلى عدد البايتات في التسلسل بحيث يمكن تحديد طول التسلسل دون فحص بايتات الاستمرار.
  • تستخدم الشبكات العصبية المدربة فورياً الترميز الأحادي لتمثيل البيانات بكفاءة.

الترميز الأحادي في الشبكات البيولوجية

يُستخدم الترميز الأحادي في الدوائر العصبية المسؤولة عن إنتاج تغريد الطيور . [ 2 ] [ 3 ] النواة في دماغ الطيور المغردة التي تلعب دورًا في كلٍ من تعلم وإنتاج تغريد الطيور هي مركز الصوت العالي (HVC ). تنبعث إشارات التحكم الخاصة بالنغمات المختلفة في تغريد الطيور من نقاط مختلفة في مركز الصوت العالي. يعمل هذا الترميز كترميز مكاني، وهو استراتيجية فعالة للدوائر البيولوجية نظرًا لبساطته ومتانته.

رموز أحادية قياسية بطول التشغيل

تُعرَّف جميع البيانات الثنائية بقدرتها على تمثيل الأعداد الأحادية في سلاسل متناوبة من الآحاد والأصفار. وهذا يتوافق مع التعريف القياسي للأعداد الأحادية، أي N خانة من نفس العدد 1 أو 0. جميع السلاسل، بحكم تعريفها، تحتوي على خانة واحدة على الأقل، وبالتالي تمثل أعدادًا صحيحة موجبة تمامًا .

نرمز RLالكود التالي
110
211٠٠
3111٠٠٠
411110000
51111100000
6111111000000
711111110000000
81111111100000000
9111111111000000000
1011111111110000000000
...

تضمن هذه الرموز أن تنتهي بشكل صحيح على أي طول من البيانات (عند قراءة بيانات عشوائية) وفي دورة الكتابة (المنفصلة) تسمح باستخدام ونقل بت إضافي (البت المستخدم للبت الأول) مع الحفاظ على أطوال الرموز الأحادية الإجمالية ولكل عدد صحيح N بالضبط.

رموز أحادية غير بادئة قابلة للفك بشكل فريد

فيما يلي مثال على رموز أحادية قابلة للفك بشكل فريد، وهي ليست رمزًا بادئًا وليست قابلة للفك الفوري ( تحتاج إلى نظرة مسبقة لفك التشفير ).

نرمز أحاديبديل
110
21001
3100011
410000111
51000001111
6100000٠١١١١١
710000000111111
81000000001111111
9100000000011111111
1010000000000111111111
...

تسمح هذه الرموز أيضًا (عند كتابة الأعداد الصحيحة غير الموقعة) باستخدام ونقل بت إضافي (البت المستخدم للبت الأول). وبالتالي، فهي قادرة على نقل 'm' عددًا صحيحًا * N بتًا أحاديًا وبتًا إضافيًا واحدًا من المعلومات ضمن m*N بتًا من البيانات.

الرموز الأحادية المتناظرة

يمكن قراءة وفك تشفير الرموز الأحادية المتناظرة التالية على الفور في أي من الاتجاهين:

رمز أحاديبديلن (غير سالب)ن (موجب تمامًا)
1001
٠٠1112
01010123
0110100134
011101000145
01111010000156
0111110100000167
011111101000000178
01111111010000000189
01111111101000000001910
...

تتميز هذه الرموز بخاصية فريدة، وهي أنه عند مسح البيانات (1 و0) لأي توزيع احتمالي بحثًا عن رموز أحادية متناظرة، يكون متوسط ​​طول الرمز الأحادي المتناظر الممسوح ضوئيًا دائمًا حوالي 2. وهذا يساعد في معالجة مخاوف التوقيت، حيث يتعين على كل بروتوكول تقريبًا وضع ضوابط وتوازنات لتدفقات البيانات المستمرة ذات الإنتروبيا المنخفضة والتي قد تتلف مكونات مثل ملحقات USB وما إلى ذلك.

الرموز الأحادية المتعارف عليها

بالنسبة للقيم الأحادية التي يكون طولها الأقصى معروفًا، يمكن استخدام رموز أحادية قياسية ذات طبيعة عددية نوعًا ما وتختلف عن الرموز القائمة على الأحرف. أكبر طول n معروف ، والقيمة العددية 0 (2ن-1{\displaystyle \operatorname {2} ^{n}-1\,}في الدالة التقابلية) أو -1 (22ن-2{\displaystyle \operatorname {2} ^{2n}-2\,}في الدالة التقابلية ) يتم تعيينها كشرط حدودي يعادل تكرار رقم ما بحد أقصى 'ن' مرة، ثم لكل خطوة يتم تقليل عدد الأرقام بمقدار واحد وزيادة/إنقاص النتيجة بالقيمة العددية '1'.

نرمز أحاديتقابلالتقابل القياسيبديلتقابلالتقابل القياسي
11221101122
20112411310215226
3001112811171102211322214
4٠٠٠١1112161111151110222129222230
500001111123211111311111022221612222262
60000011111126411111163111110222221125222222126
7000000111111121281111111127111111022222212532222222254
8000000011111111225611111111255111111102222222150922222222510
900000000111111111251211111111151111111111022222222110212222222221022
10000000000 0111111111 1102311111111111023111111111 1222222222 2204622222222222046

تتطلب الشفرات المعيارية (المختلفة عن شفرة هوفمان المعيارية حيث يُناقش دليل الشفرات فقط) وقتًا أقل للمعالجة لفك التشفير. يُستخدم مصطلح "معياري" للإشارة إلى استخدام أي طريقة، وخاصةً الطرق العددية، أي عندما تُعالج الشفرات كأرقام وليست كسلاسل نصية. إذا كان عدد الشفرات المطلوبة لكل طول رمز مختلفًا عن 1، أي إذا كان هناك عدد أكبر من الشفرات غير الأحادية المطلوبة بطول معين، فسيتم تحقيق ذلك عن طريق زيادة/إنقاص القيم عدديًا دون تقليل الطول. للحصول على مجموعة من الشفرات بطول معين، يجب البدء بشرط الحد، عادةً 0...0 لأكبر شفرة وآخرها، ثم العمل تصاعديًا، بزيادة القيمة عدديًا حتى استنفاد عدد الشفرات ذات الطول المحدد، ثم اقتطاع عدد من البتات من اليمين وزيادة العدد المتبقي بمقدار 1 للحصول على أول رقم من النطاق التالي (مجموعة الأرقام التي تنتمي إلى طول معين)، وهكذا من أكبر طول إلى أصغر طول.

يمكن البدء من أقصر طول (مع إعطائه قيمة عددية لأكبر شرط حدي، مثل 1 في النظام الثنائي أو 2 في النظام التقابلي)، والعمل تنازليًا مع تقليل القيمة العددية بمقدار 1 لكل رمز جديد بنفس الطول، أو (تقليل القيمة العددية بمقدار 1 وزيادة الطول) (إضافة 2 أو 22، إلخ، أو تحديد الحد الأدنى للنطاق الجديد إلى 2*n+1 (ثنائي) أو 2*n + 2 (تقابلي) أو 4*n + 3 (ثنائي مع زيادة 2 بت للمجموعة التالية) أو 4*n + 6 (تقابلي مع زيادة 2 بت للمجموعة التالية)، إلخ. يتيح لك هذا إنشاء رموز دون معرفة التردد مسبقًا. يمكنك اختيار زيادة المجموعة التالية بمقدار 2 بت بدلًا من 1 لاستيعاب 3 رموز جديدة و1 لاحتمالية وجود رموز جديدة، أو رمزين جديدين و2 للرموز غير المعروفة لاحتواء أطوال الرموز، لأنه إذا وصلت إلى أدنى شرط حدي من الناحية العددية، لا يمكنك إضافة المزيد من الرموز.

يمكن استخدام كلتا الطريقتين لإنشاء رموز قياسية (رقمية) بنفس طول أي مجموعة رموز هوفمان (محدودة الطول وحجم الرمز)، ويمكن استخدام طريقة التدرج من الأصغر إلى الأكبر مع أي مجموعة رموز هوفمان أو غيرها، محدودة الطول أو عشوائية الطول. وتكمن الميزة في أن المحلل يصبح رقميًا بدلًا من كونه قائمًا على الأحرف. راجع الورقة البحثية لمقارنة عدد عمليات الوصول إلى الذاكرة.

رموز غولدباخ الثنائية

رموز غولدباخ الثنائية (أو ما يشبه رموز غولدباخ G0 ) هي رموز أحادية متصلة ببعضها، ويمكنها تمثيل الكسور غير التافهة (التي لا تساوي صفرًا أو واحدًا). ​​يمثل طول الرمز الأحادي الأول 'n' البسط، بينما يمثل الطول الإجمالي للرمزين الأحاديين ('n' + 'm') المقام. وبالتالي، فإن إجمالي عدد البتات اللازمة لتمثيل الكسر كاملًا هو الأساس نفسه 'n' + 'm'، وإجمالي عدد البتات اللازمة لتمثيل أي مقام هو 1.

شفرةقيمة
11نصف
1011/3
0112/3
10011/4
01012/4
00113/4
100011/5
010012/5
001013/5
٠٠٠١١4/5
...

عادةً ما يُحذف الأساس لكل رقم على حدة عند تمثيل الأعداد، لافتراض أن جميع الأرقام تنتمي إلى أساس معين. مع ذلك، يمكن تمثيل جميع الأعداد بصيغة أساس متغير، حيث يكون لكل رقم أساس مختلف. وقد استُخدمت هذه الصيغة سابقًا للأعداد متعددة اللغات أو لحل ألغاز سودوكو، حيث كان تغيير الأساس من رقم لآخر هو الحل الوحيد. هذا الأمر مفهوم بديهيًا للأعداد العشرية بين 0 و1، والتي هي عبارة عن مجموع كسور، ولكنه غير شائع الاستخدام أو معروف للأعداد الصحيحة الأكبر من 0. لذا، يصبح تمثيل المقام أو الأساس (عادةً ما يكون رمزًا سفليًا يُكتب بجانب العدد) مسألة كتابة الأساس كرمز سفلي لكل رقم أو استخدام رموز غولدباخ الثنائية.

N (عدد صحيح >= 0) = A x + B y + C z  ; ( A,B,C >= 0 و < x,y,z ) أو ( A,B,C > 0 و <= x,y,z للترميز التقابلي)

M (عدد عشري < 1 و > 0) = A/x + B/y + C/z  ؛ (A، B، C > 0 و < x، y، z و x < y < z للكسور غير التافهة)

حيث يقلل كل رقم في الأساس n مساحة البحث إلى 1/n والباقي هو مسألة طرح الكسر الدقيق ومواصلة العملية.

لاحظ أنه في صيغة M (العدد العشري العائم) من هذه الطريقة، تكون جميع الأرقام كسورًا مجموعها يساوي M، لذا فإن ضرب عددين عشريين مخزنين في هذا التمثيل هو مسألة إجراء DIGIT_COUNT1 x DIGIT_COUNT2 عمليات ضرب صغيرة بالتوازي بأي ترتيب وجمع القيم. أو يمكن اختيار تخزين

البسط1 * البسط2 / المقام2 * المقام2

تنسيق البيانات وعدم إجراء العملية إلا عند الحاجة إلى القيمة. أو حساب العمليات الممكنة مسبقًا وعدم إجراء أي عمليات على الإطلاق إذا كان الحد الأقصى لعدد الأرقام/الدقة محدودًا إلى حوالي 64 بت.

يُتيح هذا استخدام العمليات الحسابية الصحيحة للأعداد العشرية ذات الفاصلة العائمة، بما في ذلك الأعداد العشرية ذات الدقة العشوائية. علاوة على ذلك، ونظرًا لأن استخدام مقامات عشوائية لتمثيل الجزء العشري من العدد العشري عملية معقدة (وتمثيلها باستخدام n بت سيكون مرهقًا)، فإن هذه الطريقة تُناسب المقامات الصغيرة، حيث يُمكن ببساطة استخدام متواليات من المقامات المتزايدة، بدءًا من:

O (أعداد عشرية ذات عدد عشري أقل من 1 وأكبر من 0) = A/x، B/x، C/y، D/z، E/z  ؛ (A، B، C، D، E > 0 و < x، y، z و x < y < z للكسور غير التافهة)

الحصول على بعض مساحة التخزين ولكن مع استهلاك الطاقة وفقدان بعض التوازي.

باستخدام مقام 2، استمر في كتابة كود غولدباخ حتى تصل إلى الصفر، ثم زد المقام بمقدار واحد (3 في هذه الحالة)، وابحث عن البسط، واكتب كود غولدباخ الثنائي، وكرر العملية مع مقام 3 حتى تصل إلى الصفر، ثم زد المقام إلى 4 وهكذا. بما أن الصفر كسر بسيط، فلا حاجة لكتابة أي كود خاص به، مع العلم أن المقام التالي سيكون إما مساويًا له أو أكبر منه بمقدار واحد، مما يعني أنه تم العثور على الصفر سابقًا وزيادة المقام. تكمن ميزة هذه الطريقة في إمكانية تمثيل الصور ثنائية البؤرة، حيث يمكن تمثيل تشوهات الصورة عالية الدقة، مثل تلك الناتجة عن بيانات صور الكواكب أو السماء، باستخدام كسور مستمرة تزداد دقتها مع كل رقم، بينما يمكن تمثيل المقدمة بدقة مختلفة. علاوة على ذلك، فإن الزيادة في المقام عند كل صفر تؤدي إلى بديهية حيث لا يمكن أن يكون الرقم التالي إلا 1 (1/2 يناسب 1/3 فقط وليس 2/3، و1/3 يناسب 1/4 فقط وليس 2/4، 3/4، إلخ)، لذلك يُسمح حتى بضرب الباقي في الأساس قبل زيادة المقام لزيادة الدقة وتكبير الصورة في منطق يشبه الفراكتال.

يمكنك استخدام أطوال تشغيل لرموز أساسية متزايدة أو يمكنك وضع قاعدة بسيطة مفادها أن كل رقم سيؤدي إلى زيادة الأساس/المقام:

P (عدد عشري > 0) = A/x + B/y + C/z  ؛ (A، B، C > 0 و < x، y، z و x < y < z للكسور غير التافهة)

ببساطة، احذف الصفر وزد الأساس في كل خطوة بدءًا من 2. يعني تقليل الأساس الظاهر أنه رقم جديد ولا حاجة لفاصل. هذا يزيد حجم البتات قليلاً، لكنها ذات إنتروبيا منخفضة، أو يمكن كتابة عدد الأرقام أولاً ثم تبديلها بعدة طرق لتخزين DIGIT_COUNT! من البيانات بتكلفة زهيدة (تكلفة عدد قليل من الأرقام).

كما هو واضح، لا يمكن أن يكون أي كسر غير تافه أكبر من 1، لذلك إذا كان هناك احتمال أن يتسبب الجزء الصحيح من P ( I ) في عدد كبير من الكسور، فقد يكون من الأسهل البدء بـ (2*I-1)/(2*I) والعمل للخلف (حتى البدء والعد يجب أن يكون كافيًا) حتى تصل القيمة المتبقية إلى < 0 ثم تغيير الاتجاه (بدءًا من 1/2 لأعلى).

الترميز الأحادي المعمم

قدّم سوبهاش كاك نسخةً معممةً من الترميز الأحادي لتمثيل الأعداد بكفاءةٍ أعلى بكثير من الترميز الأحادي القياسي. [ 4 ] إليك مثالٌ على الترميز الأحادي المعمم للأعداد الصحيحة من 0 إلى 15، والذي يتطلب 7 بتات فقط (حيث يتم اختيار ثلاثة بتات عشوائيًا بدلًا من بت واحد في الترميز الأحادي القياسي لعرض العدد). لاحظ أن التمثيل دوري، حيث تُستخدم علامات لتمثيل الأعداد الصحيحة الأعلى في الدورات الأعلى.

نرمز أحاديأحادي معمّم
000000000
1100000111
2110٠٠٠١١١٠
31110٠٠١١١٠٠
4111100111000
51111101110000
611111100010111
7111111100101110
81111111101011100
911111111100111001
10111111111101110010
111111111111100100111
1211111111111101001110
13111111111111100011101
141111111111111100111010
1511111111111111101110100

يتطلب الترميز الأحادي المعمم تحديد نطاق الأرقام المراد تمثيلها مسبقًا لأن هذا النطاق يحدد عدد البتات المطلوبة.

انظر أيضاً

ملحوظات

  1. يُقابل مصطلح "الترميز الأحادي" في الأدبيات العلمية الألمانية مصطلح " BCD-Zählcode "، والذي يُترجم إلى " رمز العد العشري المُرمّز ثنائيًا ". يجب عدم الخلط بين هذا المصطلح والمصطلح الألماني المشابه " BCD-Code " الذي يُترجم إلى "رمز BCD " في اللغة الإنجليزية.

مراجع

  1. "قاموس جامعة ألبرتا لعلوم الإدراك: شفرة الترمومتر" . www.bcp.psych.ualberta.ca . تاريخ الاسترجاع: 31-05-2025 .
  2. فييت، آي آر؛ سيونغ، إتش إس (2007). "نماذج الشبكات العصبية لإنتاج تغريد الطيور وتعلمه وتشفيره". في: سكواير، إل؛ أولبرايت، تي؛ بلوم، إف؛ غيج، إف؛ سبيتزر، إن (محررون). الموسوعة الجديدة لعلم الأعصاب . إلسيفير .
  3. مور، جيه إم؛ وآخرون (2011). "تقارب المسارات الحركية يتنبأ بحجم ذخيرة المقاطع الصوتية لدى الطيور المغردة" . وقائع الأكاديمية الوطنية للعلوم في الولايات المتحدة الأمريكية . 108 ( 39): 16440-16445 . Bibcode : 2011PNAS..10816440M . doi : 10.1073/pnas.1102077108 . PMC 3182746. PMID 21918109 .   
  4. كاك، س. (2015). "الترميز الأحادي المعمم". الدوائر والأنظمة ومعالجة الإشارات . 35 (4): 1419-1426 . doi : 10.1007/s00034-015-0120-7 . S2CID 27902257 .