ইকুইভ্যালেন্স রিলেশন ও পার্টিশন
এই পাঠে যা শিখবেন
- ইকুইভ্যালেন্স রিলেশনের সংজ্ঞা এবং ইকুইভ্যালেন্স ক্লাসের ধারণা
- কেন ইকুইভ্যালেন্স ক্লাসগুলো সবসময় একটি সেটকে সম্পূর্ণভাবে পার্টিশন করে — এবং কেন এটি সত্য
- "same remainder mod 3" — একটি সম্পূর্ণ worked উদাহরণ
- Python দিয়ে প্রোগ্রামেটিকভাবে ইকুইভ্যালেন্স ক্লাস গণনা ও যাচাই করা
১ · ইকুইভ্যালেন্স রিলেশন ও ইকুইভ্যালেন্স ক্লাস
একটি সেট $A$-এর উপর রিলেশন $R$-কে ইকুইভ্যালেন্স রিলেশন (Equivalence Relation)Equivalence Relationএকটি রিলেশন যা একসাথে reflexive, symmetric ও transitive — L08-এর তিনটি নির্দিষ্ট বৈশিষ্ট্যের সমাহার। বলা হয় যদি এটি একসাথে reflexive, symmetric, ও transitive হয় (L08 দেখুন)। এই তিনটি বৈশিষ্ট্য মিলে "$a$ ও $b$ একই শ্রেণীর" — এই স্বজ্ঞাত ধারণাটিকে আনুষ্ঠানিক রূপ দেয়।
একটি উপাদান $a \in A$-এর ইকুইভ্যালেন্স ক্লাস (Equivalence Class)Equivalence Class$[a] = \{x \in A \mid (x,a) \in R\}$ — $a$-এর সাথে $R$-এর মাধ্যমে সম্পর্কিত সব উপাদানের সেট। সংজ্ঞায়িত হয় $[a] = \{x \in A \mid (x,a) \in R\}$ — অর্থাৎ $a$-এর সাথে সম্পর্কিত সব উপাদানের সেট।
২ · মূল উপপাদ্য — ইকুইভ্যালেন্স ক্লাস পার্টিশন তৈরি করে
একটি ইকুইভ্যালেন্স রিলেশনের সব ইকুইভ্যালেন্স ক্লাস মিলে $A$-এর একটি পার্টিশন (Partition)Partitionএকটি সেটকে কিছু নন-এম্পটি, পরস্পর ডিসজয়েন্ট উপসেটে ভাগ করা, যাদের ইউনিয়ন পুরো সেট। তৈরি করে — অর্থাৎ (১) প্রতিটি উপাদান ঠিক একটি ক্লাসে পড়ে, (২) কোনো দুটি ক্লাস হয় সম্পূর্ণ একই অথবা সম্পূর্ণ ডিসজয়েন্ট (কখনো আংশিক ওভারল্যাপ করে না), এবং (৩) সব ক্লাসের ইউনিয়ন পুরো $A$।
কেন এটি সত্য — সংক্ষিপ্ত স্বজ্ঞা: ধরুন $[a] \cap [b] \neq \emptyset$, অর্থাৎ কোনো $x$ আছে যা $[a]$ ও $[b]$ দুটোতেই আছে। তাহলে $x \mathrel{R} a$ ও $x \mathrel{R} b$। Symmetric-এর কারণে $a \mathrel{R} x$, এবং transitive-এর কারণে $a \mathrel{R} x$ ও $x \mathrel{R} b$ থেকে $a \mathrel{R} b$ পাওয়া যায়। এখন $[a]$-এর যেকোনো উপাদান $y$-এর জন্য $y \mathrel{R} a$ ও $a \mathrel{R} b$ থেকে transitivity দিয়ে $y \mathrel{R} b$, অর্থাৎ $y \in [b]$ — তাই $[a] \subseteq [b]$, একইভাবে $[b] \subseteq [a]$, তাই $[a] = [b]$। সুতরাং দুটি ক্লাস আংশিক ওভারল্যাপ করতে পারে না — হয় সম্পূর্ণ সমান, নাহলে সম্পূর্ণ আলাদা।
প্রতিটি উপাদান নিজের ক্লাসে আছে (reflexive-এর কারণে $a \in [a]$), তাই কোনো উপাদান "কোনো ক্লাসে নেই" এমন হতে পারে না। উপরের যুক্তির সাথে মিলিয়ে — প্রতিটি উপাদান ঠিক একটি ক্লাসে থাকে, এর বেশি বা কমও না।
৩ · Worked উদাহরণ — mod 3 রিমাইন্ডার
পূর্ণসংখ্যার সেট $\mathbb{Z}$-এর উপর রিলেশন সংজ্ঞায়িত করুন: $a \mathrel{R} b$ যদি $a$ ও $b$-কে ৩ দিয়ে ভাগ করলে একই ভাগশেষ থাকে। এটি reflexive, symmetric ও transitive — একটি ইকুইভ্যালেন্স রিলেশন। এর ঠিক তিনটি ইকুইভ্যালেন্স ক্লাস আছে —
$\{\ldots,-3,0,3,6,9,\ldots\}$
$\{\ldots,-2,1,4,7,10,\ldots\}$
$\{\ldots,-1,2,5,8,11,\ldots\}$
এই তিনটি ক্লাস পরস্পর ডিসজয়েন্ট এবং তাদের ইউনিয়ন পুরো $\mathbb{Z}$ — অর্থাৎ তারা $\mathbb{Z}$-কে সম্পূর্ণভাবে পার্টিশন করে। ঠিক এই ধারণাটিই M5-তে "মডুলার এরিথমেটিক" নামে গভীরভাবে ফিরে আসবে।
from collections import defaultdict
classes = defaultdict(list)
for n in range(15):
classes[n % 3].append(n)
for r in sorted(classes):
print(f"[{r}] (mod 3 = {r}):", classes[r])
# ভেরিফাই: ক্লাসগুলো ডিসজয়েন্ট ও তাদের ইউনিয়ন পুরো রেঞ্জ কভার করে
all_elements = sum(classes.values(), [])
print("\nমোট উপাদান:", len(all_elements))
print("রেঞ্জ(0..14)-এর সাথে মেলে কি না:", set(all_elements) == set(range(15)))
len(all_elements) == 15 নিশ্চিত করে কোনো উপাদান দুইবার গোনা হয়নি (ক্লাসগুলো ডিসজয়েন্ট), এবং
set(all_elements) == set(range(15)) নিশ্চিত করে প্রতিটি উপাদান অন্তত একটি ক্লাসে আছে (ইউনিয়ন
সম্পূর্ণ) — দুটো মিলিয়েই "পার্টিশন" প্রমাণিত হয়।
ভাবনার প্রশ্ন
প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।
প্র ০১ কেন দুটো ইকুইভ্যালেন্স ক্লাস কখনো "আংশিক" ওভারল্যাপ করতে পারে না — হয় সম্পূর্ণ সমান, নাহলে সম্পূর্ণ ডিসজয়েন্ট?
উপরে দেখানো যুক্তি অনুযায়ী, যদি $[a]$ ও $[b]$-এর কোনো একটি সাধারণ উপাদান থাকে, তাহলে symmetric ও transitive বৈশিষ্ট্য ব্যবহার করে দেখানো যায় $a \mathrel{R} b$ — এবং তারপর $[a]$-এর প্রতিটি উপাদান transitivity-এর মাধ্যমে $[b]$-তেও পড়ে যায় (এবং উল্টোটাও)। তাই "একটি সাধারণ উপাদান থাকা" স্বয়ংক্রিয়ভাবে "সম্পূর্ণ একই ক্লাস হওয়া"-কে বাধ্য করে — আংশিক ওভারল্যাপের কোনো সুযোগ থাকে না।
প্র ০২ পূর্ণসংখ্যার উপর রিলেশন $R$: $a \mathrel{R} b$ যদি $|a-b| \leq 1$ — এটি reflexive ও symmetric, কিন্তু ইকুইভ্যালেন্স রিলেশন নয় কেন?
Reflexive: $|a-a|=0 \leq 1$ ✓। Symmetric: $|a-b|=|b-a|$ সবসময় সত্য ✓। কিন্তু Transitive ভেঙে যায় — ধরুন $1 \mathrel{R} 2$ ($|1-2|=1$) এবং $2 \mathrel{R} 3$ ($|2-3|=1$), কিন্তু $1 \mathrel{R} 3$ মিথ্যা কারণ $|1-3|=2 > 1$। যেহেতু transitivity লঙ্ঘিত হয়েছে, এটি ইকুইভ্যালেন্স রিলেশন নয় — এই উদাহরণ মনে করিয়ে দেয় যে তিনটি বৈশিষ্ট্যই একসাথে থাকা আবশ্যক, দুটো থাকলেই যথেষ্ট নয়।
প্র ০৩ বাস্তব জীবনে "পার্টিশন" ধারণাটি কোথায় স্বাভাবিকভাবে দেখা যায়?
যেকোনো সময় যখন একটি বড় দলকে কিছু নন-ওভারল্যাপিং উপদলে ভাগ করা হয় — যেমন একটি বিশ্ববিদ্যালয়ের সব শিক্ষার্থীকে তাদের বিভাগ অনুযায়ী ভাগ করা (প্রতিটি শিক্ষার্থী ঠিক একটি বিভাগে), অথবা সপ্তাহের দিনগুলোকে "কর্মদিবস" ও "সাপ্তাহিক ছুটি"-তে ভাগ করা। M4-এ গ্রাফের connected components ধারণাও আসলে একটি পার্টিশন — একই কম্পোনেন্টে থাকা "পরস্পর reachable" রিলেশনটিও একটি ইকুইভ্যালেন্স রিলেশন।
অনুশীলন
-
হাতে লিখুন: $0$ থেকে $15$ পর্যন্ত পূর্ণসংখ্যাগুলোকে "একই mod 4 রিমাইন্ডার" রিলেশন অনুযায়ী ইকুইভ্যালেন্স ক্লাসে ভাগ করুন।
$[0]=\{0,4,8,12\}$, $[1]=\{1,5,9,13\}$, $[2]=\{2,6,10,14\}$, $[3]=\{3,7,11,15\}$ — মোট ৪টি ক্লাস, প্রতিটিতে ৪টি করে উপাদান, মোট $16$টি উপাদান কভার করে ($0$ থেকে $15$)।
-
যাচাই করুন: প্র ০২-এর "$|a-b| \leq 1$" রিলেশনটি কেন transitive নয় তা নিজের ভাষায় লিখে দেখান একটি ভিন্ন সংখ্যা-জোড়া দিয়ে (উদাহরণে ব্যবহৃত $1,2,3$ ছাড়া অন্য সংখ্যা ব্যবহার করুন)।
উদাহরণ: $5 \mathrel{R} 6$ ($|5-6|=1$), $6 \mathrel{R} 7$ ($|6-7|=1$), কিন্তু $5 \mathrel{R} 7$ মিথ্যা কারণ $|5-7|=2>1$। যেকোনো তিনটি পরপর সংখ্যা $n, n+1, n+2$ দিয়ে একই সমস্যা দেখানো যায় — এটি একটি সাধারণ প্যাটার্ন।
আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ
- কোর্সের সম্পূর্ণ সিলেবাস দেখুন ৪৪টি পাঠ পরবর্তী পাঠ — পার্শিয়াল অর্ডার ও Hasse ডায়াগ্রাম, এবং ফাংশন ও কার্ডিনালিটি।
- Data Structures & Algorithms কোর্স সঙ্গী কোর্স Union-Find (Disjoint Set Union) ডেটা স্ট্রাকচার এই পার্টিশন ধারণার সরাসরি বাস্তবায়ন — DSA কোর্সে দেখুন।
- সব Courses দেখুন ABCL TECH C, C++, Python, Java, JavaScript, DSA, DBMS, HTML & CSS ও Discrete Mathematics — সব এক জায়গায়।