পাঠ ১০ · ৪৪-এর মধ্যে · মডিউল ২
Home / Courses / Discrete Mathematics / পার্শিয়াল অর্ডার

পার্শিয়াল অর্ডার ও Hasse ডায়াগ্রাম

Partial orders & Hasse diagrams
৮ মিনিট পড়া শুরু · Beginner Python কোডসহ সম্পূর্ণ বাংলায়

এই পাঠে যা শিখবেন

  • পার্শিয়াল অর্ডার ও পোসেটের সংজ্ঞা, comparable/incomparable ও total order
  • Hasse ডায়াগ্রাম আঁকার নিয়ম — কোন এজ রাখা হয়, কোনটি বাদ দেওয়া হয়
  • divisibility পোসেট $\{1,2,3,4,6,12\}$-এর সম্পূর্ণ Hasse ডায়াগ্রাম
  • maximal/minimal, greatest/least, upper/lower bound, join/meet-এর সংক্ষিপ্ত পরিচয়

১ · পার্শিয়াল অর্ডারের সংজ্ঞা

একটি সেট $A$-এর উপর রিলেশন $\preceq$ কে পার্শিয়াল অর্ডার (Partial Order)Partial Orderএকটি রিলেশন যা একসাথে reflexive, antisymmetric ও transitive — L08-এর তিনটি নির্দিষ্ট বৈশিষ্ট্যের সমাহার। বলা হয় যদি এটি একসাথে reflexive, antisymmetric, ও transitive হয় (L08 দেখুন)। জোড়া $(A, \preceq)$-কে তখন একটি পোসেট (Poset)Poset"Partially Ordered Set"-এর সংক্ষিপ্ত রূপ — একটি সেট $A$ ও তার উপর একটি পার্শিয়াল অর্ডার $\preceq$ একসাথে। ("Partially Ordered Set") বলা হয়। L08-এ দেখেছি "divides" ও "$\leq$" উভয়ই পার্শিয়াল অর্ডার।

দুটি উপাদান $a, b \in A$ কে comparable বলা হয় যদি $a \preceq b$ অথবা $b \preceq a$ হয়। যদি কোনোটিই সত্য না হয়, তারা incomparable। যদি একটি পোসেটে প্রতিটি জোড়া উপাদান comparable হয়, তাকে বলা হয় total order (যেমন $\leq$ পূর্ণসংখ্যায়) — কিন্তু "divides" পোসেটে $2$ ও $3$ incomparable ($2 \nmid 3$ এবং $3 \nmid 2$), তাই এটি শুধু একটি পার্শিয়াল অর্ডার, total order নয়।

২ · Hasse ডায়াগ্রাম আঁকার নিয়ম

একটি পোসেটের সব রিলেশন ($a \preceq b$-এর সব জোড়া) আঁকলে ডায়াগ্রাম অপ্রয়োজনীয়ভাবে জটিল হয়ে যায় — reflexive loop ($a \preceq a$) ও transitive এজ (যেমন $1 \preceq 4$, যা $1 \preceq 2 \preceq 4$ থেকেই বোঝা যায়) বাদ দেওয়া যায়। একটি Hasse ডায়াগ্রামHasse Diagramএকটি পোসেটের শুধু "covering" রিলেশন দেখানো ডায়াগ্রাম — reflexive loop ও transitive এজ বাদ দিয়ে, নিচ থেকে উপরের দিকে ক্রম বাড়ে এমনভাবে আঁকা। শুধু covering সম্পর্ক দেখায়: $a$, $b$-এর একটি কভার (লেখা হয় $a \prec\!\cdot b$) যদি $a \prec b$ হয় এবং এমন কোনো $c$ না থাকে যেখানে $a \prec c \prec b$ (অর্থাৎ মাঝে কিছু নেই)। নিয়ম — বড় উপাদান উপরে আঁকা হয়, ছোট নিচে; এজে কোনো তীরচিহ্ন থাকে না, কারণ "উপরের দিক" নিজেই দিক নির্দেশ করে।

৩ · Worked উদাহরণ — divisibility পোসেট

$S = \{1,2,3,4,6,12\}$ সেটের উপর "divides" রিলেশন বিবেচনা করুন। কভারিং জোড়াগুলো হলো — $1$ কভার করে $2$ ও $3$ (কারণ মাঝে কিছু নেই); $2$ কভার করে $4$ ও $6$; $3$ কভার করে $6$; এবং $4$ ও $6$ উভয়ে কভার করে $12$। লক্ষ করুন $1 \mid 4$ সত্য হলেও এজ নেই, কারণ $1 \prec 2 \prec 4$ — এটি একটি transitive সম্পর্ক, covering নয়।

1 2 3 4 6 12
{1,2,3,4,6,12} সেটের উপর "divides" পোসেটের Hasse ডায়াগ্রাম — ৭টি কভারিং এজ, ১ সবচেয়ে নিচে, ১২ সবচেয়ে উপরে।
Python
S = [1, 2, 3, 4, 6, 12]

def divides(a, b):
    return b % a == 0

covers = []
for a in S:
    for b in S:
        if a != b and divides(a, b):
            has_between = any(
                c != a and c != b and divides(a, c) and divides(c, b)
                for c in S
            )
            if not has_between:
                covers.append((a, b))

print("কভারিং এজ (Hasse ডায়াগ্রামের এজ):")
for a, b in sorted(covers):
    print(f"  {a} → {b}")
print("\nমোট এজ:", len(covers))

    
কোড আউটপুট উপরের SVG ডায়াগ্রামের ৭টি এজের সাথে হুবহু মিলবে: $1{\to}2$, $1{\to}3$, $2{\to}4$, $2{\to}6$, $3{\to}6$, $4{\to}12$, $6{\to}12$।

৪ · Maximal/minimal, bounds, ও join/meet

একটি উপাদান maximal যদি তার উপরে কেউ না থাকে (কোনো $b$ নেই যেখানে $a \prec b$); minimal হলে তার বিপরীত। যদি একটি একক উপাদান সবার চেয়ে বড় হয় (বাকি সবার সাথে comparable এবং বড়), তাকে বলা হয় greatest element (এবং দ্বৈতভাবে least element)। আমাদের উদাহরণে $1$ হলো least element (সবাইকে ভাগ করে) এবং $12$ হলো greatest element (সবার দ্বারা ভাগ হয়) — তাই এই পোসেটটি "bounded"।

একটি উপসেটের upper bound এমন একটি উপাদান যা উপসেটের প্রতিটি উপাদানের চেয়ে বড় বা সমান; lower bound এর বিপরীত। সবচেয়ে ছোট upper bound-কে বলা হয় join ($\vee$, least upper bound), সবচেয়ে বড় lower bound-কে বলা হয় meet ($\wedge$, greatest lower bound)। মজার ব্যাপার — divisibility পোসেটে join আসলে LCM এবং meet আসলে GCD! যেমন $\{2,3\}$-এর join $= \text{lcm}(2,3) = 6$, $\{4,6\}$-এর meet $= \gcd(4,6) = 2$। L25-এ GCD ও LCM-এর সম্পূর্ণ আলোচনা এই একই কাঠামোর গভীরতর রূপ।

মূল কথা · Key takeaway

Hasse ডায়াগ্রাম একটি পোসেটের "সম্পূর্ণ তথ্য" ন্যূনতম দৃশ্যত আকারে ধরে রাখে — reflexive ও transitive এজ বাদ দিয়েও কিছুই হারায় না, কারণ সেগুলো covering এজ থেকে পুনর্গঠনযোগ্য। এই একই "শুধু জরুরি সম্পর্ক রাখো" নীতি M4-এ গ্রাফ থিওরির spanning tree ধারণাতেও ফিরে আসবে।

ভাবনার প্রশ্ন

প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।

প্র ০১ Hasse ডায়াগ্রামে $1 \to 4$ এজ কেন আঁকা হয় না, যদিও $1 \mid 4$ সত্য?

কারণ $1 \mid 4$ একটি transitive সম্পর্ক, covering সম্পর্ক নয় — $1$ ও $4$-এর মাঝে $2$ আছে ($1 \mid 2 \mid 4$)। Hasse ডায়াগ্রামের নিয়ম অনুযায়ী শুধু covering এজ ($a \prec b$ যেখানে মাঝে কিছু নেই) আঁকা হয়; বাকি সব সম্পর্ক এই covering এজগুলো থেকে transitivity প্রয়োগ করে পুনর্গঠন করা যায় — তাই আলাদা করে আঁকার দরকার নেই।

প্র ০২ $2$ ও $3$ কেন incomparable, এবং এর মানে কী এই পোসেট সম্পর্কে?

$2 \mid 3$ মিথ্যা (৩, ২ দ্বারা নিঃশেষে বিভাজ্য নয়) এবং $3 \mid 2$ ও মিথ্যা — তাই কোনো দিকেই সম্পর্ক নেই, তারা incomparable। এর মানে এই পোসেটটি একটি total order নয় — সব জোড়া উপাদান একে অপরের সাথে তুলনীয় নয়। Hasse ডায়াগ্রামে এটি দেখা যায় $2$ ও $3$-এর মধ্যে কোনো সরাসরি বা পরোক্ষ পথ না থাকা হিসেবে (একজন আরেকজনের পূর্বপুরুষ/উত্তরসূরি নয়)।

প্র ০৩ divisibility পোসেটে "join" আসলে LCM এবং "meet" আসলে GCD — এই সংযোগটি কেন স্বাভাবিক?

Join মানে সবচেয়ে ছোট upper bound — অর্থাৎ এমন সবচেয়ে ছোট সংখ্যা যা উভয় সংখ্যা দ্বারা বিভাজ্য, যা ঠিক LCM (least common multiple)-এর সংজ্ঞা। Meet মানে সবচেয়ে বড় lower bound — এমন সবচেয়ে বড় সংখ্যা যা উভয় সংখ্যাকে ভাগ করে, যা ঠিক GCD (greatest common divisor)-এর সংজ্ঞা। এই দুই ধারণা এতটাই অভিন্ন যে L25-এ যখন GCD/LCM নিয়ে বিস্তারিত পড়বেন, সেটি আসলে এই একই পোসেট-তাত্ত্বিক কাঠামোর একটি বিশেষ প্রয়োগ মাত্র।

অনুশীলন

  1. হাতে আঁকুন: $\{1,2,4,8\}$ সেটের উপর "divides" পোসেটের Hasse ডায়াগ্রাম আঁকুন (কতগুলো কভারিং এজ হবে?)।

    এই সেটে ৩টি কভারিং এজ: $1 \to 2$, $2 \to 4$, $4 \to 8$ — একটি সরলরৈখিক চেইন, কারণ এই সেটে প্রতিটি জোড়া উপাদান আসলে comparable ($2^0, 2^1, 2^2, 2^3$)। এটি একটি total order-এর উদাহরণ — Hasse ডায়াগ্রামে এটি একটি সরল উলম্ব লাইন হিসেবে দেখা যায়।

  2. গণনা করুন: উপরের কোড সেলে S-এর মান [1, 2, 4, 8]-এ পরিবর্তন করুন এবং Run চেপে যাচাই করুন এটি ৩টি কভারিং এজ দেয় কি না।

    হ্যাঁ — আউটপুটে $1 \to 2$, $2 \to 4$, $4 \to 8$ দেখাবে, মোট ৩টি এজ, যা উপরের হাতে-আঁকা উত্তরের সাথে মিলে যায়।

আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ

আগের পাঠ
ইকুইভ্যালেন্স রিলেশন ও পার্টিশন