جدول الحقيقة الذي لم يعلّمك أحدٌ كيف تستخدمه

لُقّنته ثلاث مرات بوصفه تمرينًا منطقيًّا. لكنه كان دائمًا شيئًا آخر — أوثق وسيلة للتعامل مع كل حالة دون أن تفوتك واحدة.

تُعلَّم جداول الحقيقة ثلاث مرات. مرة في المدرسة الابتدائية، ومرة في الثانوية، ومرة في الجامعة. وفي كل مرة الدرس نفسه: P وQ وAND وOR، وشبكةٌ من الصواب والخطأ تُثبت متطابقةً ما تنساها مع الامتحان التالي. ثلاث محاولات على التجريد نفسه، ولا واحدة منها تخبرك بالغرض الذي وُجد من أجله.

وإليك الغرض منه. جدول الحقيقة هو أوثق أداة لتصميم الخوارزميات ستمسكها يومًا — و«الخوارزمية» هنا لا تعني الشيفرة. تعني أي إجراء عليه أن يتعامل مع كل حالة دون أن تفوته واحدة: نصّ دعم، أو عملية تفتيش، أو قاعدة عمل، أو سطر شيفرة. إنه يحوّل سؤال «هل عالجنا كل شيء؟» من أمنيةٍ إلى سؤالٍ يمكنك فعلًا الإجابة عنه.

الطريقة

لها ست خطوات.

  1. صُغ المشكلة كأسئلة نعم/لا. كل سؤال يصبح عمودًا. وإن لم يكن السؤال ثنائيًّا، فجزّئه حتى يصير كذلك.
  2. عدّد كل تركيبة. n من الأسئلة تعطي 2ⁿ من الصفوف، وهذه الصفوف هي كل حالة ممكنة — لا التي فكّرت فيها، بل كلها. التغطية مجانيةٌ لحظةَ تنتهي من العدّ. ورتّب الأعمدة حسب قدرتها على الإقصاء: العامل الأكبر أولًا — السؤال الذي، إذا أُجيب باتجاهٍ واحد، يُسقط أكبر كتلة من الصفوف دفعةً واحدة. أصِب هذا الترتيب ويكاد الجدول يقلّم نفسه بنفسه.
  3. أقصِ — وراقب الجدول يتقلّص. أجب عن السؤال الأول بالاتجاه الذي يُطبِق، فيصبح كل سؤالٍ يليه بلا معنى — إما لأنّ الواقع لا يمكن أن ينتج جوابًا، وإما لأنّ قاعدةً قد حسمت النتيجة سلفًا. علّم تلك الأعمدة بـ-، فتنطوي الكتلة كلها إلى حالةٍ واحدة. كل شريحة تُقلّص الجدول على مرأى العين؛ وذلك التقلّص هو الطريقة وهي تعمل.
  4. حلّ كل حالة باقية. نتيجةٌ واحدة لكل منها، مذكورةٌ بوضوح. وإن لم يكن للحالة نتيجةٌ بيّنة، فقد وجدت للتوّ ثغرةً كانت ستُشحن لولا ذلك على هيئة خلل.
  5. ارسم المخطط الانسيابي. من البداية إلى النهاية، فرعٌ واحد لكل سؤال، بترتيب الإقصاء-أولًا. الحالات الباقية هي أوراقه؛ والنتائج هي حيث تستقرّ.
  6. برمِجه — أو اكتب النصّ، أو إجراء التشغيل المعياري (SOP). تغطيةٌ كاملة تدخل، وإجراءٌ مكتملٌ قابلٌ للإثبات يخرج. لا توجد حالةٌ غير مُختبَرة، لأنه لا توجد حالةٌ غير مُدرَجة.

مثالٌ تطبيقي: رصيف الاستلام

خذ مثالًا حقيقيًّا. مستودعٌ يستلم منتجاتٍ من المورّدين والمصنّعين. وقبل أن ينتقل أي شيء إلى صالات العرض والمتاجر، تُفحص عيّنةٌ من كل دفعة بالباركود عند الرصيف. تحكم ذلك الرصيف قاعدتان ثابتتان: لا باركود، نولّد باركودًا داخليًّا خاصًا بنا؛ أي عدم تطابقٍ هو خطأ المورّد، فتُرفض الشحنة كلها.

أربعة أسئلة نعم/لا لكل عنصرٍ مأخوذٍ كعيّنة، مرتّبةٌ بالأكثر إقصاءً أولًا:

  • هل يوجد باركود؟ — العامل الأكبر؛ فغياب الباركود له قاعدةٌ خاصة به.
  • قابل للمسح؟ — هل يُقرأ الملصق فعلًا.
  • يطابق المتوقّع؟ — هل يساوي الرمز الممسوح ما أعلنه المورّد لذلك العنصر.
  • مُسجَّل؟ — هل الرمز وحدة تخزينٍ (SKU) معروفةٌ في نظامنا.

اكتب كل نعم كـ1 وكل لا كـ0 — هذا كل ما في الأمر الثنائي. وعدد الحالات الممكنة ليس تخمينًا أبدًا: هو دائمًا 2ⁿ، اثنان مرفوعٌ إلى عدد الأسئلة. أربعة أسئلة، 2⁴ = 16 حالة، في كل مرة — وتعدادها ليس إلا عدًّا ثنائيًّا من 0000 إلى 1111. ستة عشر صفًّا، ولم يتطلّب أيٌّ منها حكمًا اجتهاديًّا — أنت فقط عددت. الآن قطّع، بالأكثر إقصاءً أولًا، مُختزِلًا كل كتلةٍ منهارةٍ إلى الصف الوحيد الذي تمثّله حقًّا:

جدول حقيقة متحرك: 16 صفًّا ثنائيًّا تُبنى بالعدّ من 0000 إلى 1111، ثم تنهار عبر أربع شرائح إقصاءٍ إلى خمس حالات من A إلى E.

ست عشرة حالة تُبنى بالعدّ الثنائي، ثم تنهار عبر أربع شرائح إلى خمس.

الشريحة 1 — الباركود = 0. لا باركود: لا شيء يُمسح أو يُطابق أو يُبحث عنه — وله قاعدةٌ خاصة (توليد باركود داخلي). تذهب الأعمدة الثلاثة الأخيرة إلى -، وكتلة «لا باركود» كلها ليست ثماني حالات، بل واحدة. سؤالٌ واحد، وانطوى نصف الجدول في سطرٍ واحد.

الشريحة 2 — الباركود = 1، المسح = 0. ملصقٌ لا يُقرأ لا يعطي قيمةً للمطابقة أو البحث — والملصق غير المقروء عيبٌ من المورّد. يذهب «التطابق» و«معروف» إلى -؛ فتُختزل الصفوف الأربعة غير المقروءة إلى واحد.

الشريحة 3 — الباركود = 1، المسح = 1، التطابق = 0. وهنا الانهيار الأدقّ. عدم التطابق يرفض الشحنة كلها بالقاعدة — فسواءٌ أكان الرمز معروفًا أم لا، لا يغيّر ذلك شيئًا. «معروف» ليست بلا جوابٍ هنا؛ بل هي ببساطة غير ذات صلة. علّمها بـ-؛ فيُختزل صفّا عدم التطابق إلى واحد.

الشريحة 4 — الباركود = 1، المسح = 1، التطابق = 1. الآن فقط تستحقّ «معروف» مكانها: فالباركود الصالح المطابق إما وحدة تخزينٍ نحملها أصلًا، وإما جديدةٌ لإدراجها. صفّان، وحالتان حقيقيتان. أسنِد النتائج ويُحسم الجدول:

الباركودالمسحالتطابقمعروفالنتيجة
0A — توليد باركود داخلي؛ التسجيل؛ الإفراج إلى التوزيع
10B — رفض الشحنة: ملصقٌ غير مقروء (المورّد)
110C — رفض الشحنة: عدم تطابق الباركود (المورّد)
1110D — إدراج وحدة تخزين جديدة؛ التسجيل؛ الإفراج إلى التوزيع
1111E — قبول وحدة تخزين معروفة؛ الإفراج إلى التوزيع

ست عشرة تركيبة، خمس حالات — ثلاثٌ منها كتلٌ كاملة حسمها سؤالٌ واحد فورًا: لا باركود، غير مقروء، عدم تطابق. والمخطط الانسيابي ينبثق مباشرةً من الشرائح، بالأكثر إقصاءً أولًا: خطآ المورّد يلتقيان عند رفض الشحنة واحد؛ ومسارات القبول الثلاثة يؤدّي كلّ منها دوره، ثم تندمج في الإفراج إلى التوزيع؛ وكل مسارٍ ينتهي عند نهايةٍ واحدة. وحده العنصر النظيف المطابق يبلغ السؤال الأخير.

مخطط قرار: هل يوجد باركود؟ لا ← توليد باركود داخلي؛ نعم ← قابل للمسح؟ لا ← رفض؛ نعم ← يطابق المتوقّع؟ لا ← رفض؛ نعم ← مُسجَّل؟ لا ← إدراج وحدة تخزين جديدة، نعم ← قبول الوحدة المعروفة. مسارات القبول تُفرِج إلى التوزيع؛ وكل المسارات تنتهي عند النهاية.

أهذه مجرّد قوة غاشمة؟

لاحِظ الآن ما حدث للتوّ، فهو يبدو تمامًا كالشيء الجدير بالتجنّب. تعداد كل التركيبات 2ⁿ هو قوة غاشمة — شرّير مقالةٍ سابقة في هذه السلسلة، الخطوة التي تتخطّى السؤال الذي تطرحه بنيةٌ أذكى. فأيّهما إذن؟

كلاهما، في موضعه الصحيح. أنت تستخدم القوة الغاشمة على المشكلة — فمجال الحالات صغيرٌ ومحدودٌ ومنتهٍ (2ⁿ فوق حفنةٍ من الأسئلة الثنائية)، لذا فتعداده لا يكلّف شيئًا تقريبًا ويشتري تغطيةً كاملة. ثم تحلّ بنيويًّا: الواقع وقواعدك تختزل الصفوف المحسومة، وترتيب الإقصاء-أولًا يقلّم الباقي بسرعة، وكل حالةٍ باقيةٍ تنال جوابًا حقيقيًّا. القوة الغاشمة على التعريف رخيصةٌ وصادقة. والقوة الغاشمة على الحل هي النوع المكلف. عدّد المشكلة باستقصاء؛ وحلّها ببنية. إنها الخطوة نفسها التي في تعريف المشكلة تعريفًا كاملًا قبل مدّ اليد إلى الجواب — الاكتمال هو المقصد، وجدول الحقيقة ليس إلا الأداة التي تجعل الاكتمال قابلًا للفحص.

سُلّم إليك هذا ثلاث مرات وقيل لك إنه تمرينٌ منطقي. لم يكن قط تمرينًا منطقيًّا. كان وسيلةً لئلّا تفوتك حالةٌ بعد اليوم.

شارك هذا المنشور
علامات التصنيف
الأرشيف
«لديك إمكاناتٌ حقيقية» — ما الذي تخبرك به هذه العبارة فعلًا
إنه مديحٌ يعني واحدةً من اثنتين — راصدٌ اكتفى بملاحظتك، أو البنّاء النادر الذي يعرف حقًّا كيف يطوّر ما يراه.