এই পর্বে যা শিখবেন
- AND, OR, NOT — অর্থ, চিহ্ন, truth table আর দৈনন্দিন উদাহরণ
- ২–৩ চলকের রাশির truth table বানানো, আর অপারেশনের অগ্রাধিকার
- বুলিয়ান সূত্রগুলো, দ্বৈত নীতি, আর ডি মরগানের উপপাদ্যের দুই রকম প্রমাণ
- সূত্র ধরে ধরে রাশি সরল করা — পরীক্ষার খাতার মতো সাজিয়ে
- truth table থেকে SOP-POS লেখা, K-map-এর প্রাথমিক ধারণা — আর search, Excel ও প্রোগ্রামিংয়ে এর ব্যবহার
১ · সত্য-মিথ্যার অঙ্ক — বুলিয়ান অ্যালজেব্রা কী আর কেন
স্কুলের বীজগণিতে x-এর মান হতে পারে ৫, −৩, ২.৭ — যেকোনো সংখ্যা। এবার এমন এক বীজগণিত কল্পনা করুন, যেখানে চলকের মান মাত্র দুটি হতে পারে: 0 অথবা 1. 0 মানে “মিথ্যা”, “না”, “বন্ধ”; 1 মানে “সত্য”, “হ্যাঁ”, “চালু”। এই ছোট্ট জগতের অঙ্কই বুলিয়ান অ্যালজেব্রা (Boolean algebra) — ইংরেজ গণিতবিদ George Boole-এর নামে।
প্রতিদিন আপনি না জেনেই এই অঙ্ক কষছেন। “বৃষ্টি না হলে এবং রিকশা পেলে বাজারে যাব।” “bKash অথবা Nagad — যেকোনোটিতে টাকা পাঠালেই চলবে।” “পাসওয়ার্ড ভুল হলে ঢুকতে দেবে না।” প্রতিটি বাক্যে কিছু শর্ত আছে, প্রতিটি শর্ত হয় সত্য নয় মিথ্যা, আর শর্তগুলো জোড়া লাগছে তিনটি শব্দে — এবং (AND), অথবা (OR), না (NOT).
পর্ব ১৬-তে দেখেছেন, কম্পিউটারের ভেতরে সবকিছু binary — প্রতিটি bit হয় 0 নয় 1. বুলিয়ান অ্যালজেব্রা হলো সেই bit-গুলো নিয়ে সিদ্ধান্ত নেওয়ার গণিত। CPU-র ভেতরের ALU যখন দুটি সংখ্যা যোগ করে, বা আপনার ফোন যখন ঠিক করে আঙুলের ছাপ মিলেছে কি না — সবই শেষ পর্যন্ত কোটি কোটি AND, OR আর NOT-এর হিসাব।
বুলিয়ান অ্যালজেব্রা = চলক শুধু 0/1, অপারেশন মাত্র তিনটি। এই তিনটি দিয়েই কম্পিউটারের প্রতিটি সিদ্ধান্ত লেখা যায়। আর একটি রাশি সরল করা মানে একই যুক্তি কম logic gate দিয়ে বানানো — যা চিপকে সস্তা, দ্রুত আর কম বিদ্যুৎখরুচে করে।
এই পর্বে আমরা থাকব কাগজ-কলমের গণিতে: সূত্র, প্রমাণ, সরলীকরণ। এই রাশিগুলো দিয়ে বাস্তব সার্কিট (গেটের প্রতীক, NAND-NOR দিয়ে সব গেট বানানো) কীভাবে তৈরি হয়, তা দেখবেন পর্ব ২০-এ; আর যোগ করার সার্কিট (adder) বা মাল্টিপ্লেক্সার পর্ব ২১-এ। HSC ICT-র তৃতীয় অধ্যায়ের (সংখ্যা পদ্ধতি ও ডিজিটাল ডিভাইস) বুলিয়ান অংশের সব পদ্ধতি এখানে পরীক্ষার খাতার ধাঁচে দেখানো হয়েছে।
1 + 1 = ? সাবধান! বুলিয়ান অ্যালজেব্রায় 1 + 1 = 1, কারণ এখানে “+” মানে OR — “সত্য অথবা সত্য” = সত্য। কিন্তু বাইনারি গণিতে (পর্ব ১৭) 1 + 1 = 10 (দুই)। একই “+” চিহ্ন, দুই জগতে দুই অর্থ। প্রশ্নে “বুলিয়ান” লেখা থাকলে উত্তর 1.
২ · তিনটি মৌলিক অপারেশন — AND, OR আর NOT
যে চলক শুধু 0 বা 1 হতে পারে, তাকে বলে বুলিয়ান চলক (Boolean variable) — লেখা হয় A, B, C বা X, Y দিয়ে। আর 0 ও 1 হলো দুটি ধ্রুবক (constant). এবার তিনটি অপারেশন একে একে দেখি। প্রতিটির জন্য একটি truth table (সত্যক সারণি) থাকবে — সম্ভাব্য সব ইনপুট আর প্রতিটির ফল সাজানো একটি তালিকা।
AND — “দুটোই লাগবে” (যৌক্তিক গুণ)
HSC ব্যবহারিক বিষয়ের কথা ভাবুন: পাস করতে হলে তত্ত্বীয় অংশে পাস এবং ব্যবহারিক অংশেও পাস — দুটোই লাগবে। ধরুন A = তত্ত্বীয়তে পাস, B = ব্যবহারিকে পাস, F = বিষয়ে পাস। তাহলে F = A·B (পড়ুন “A AND B” বা “A ডট B”). AND সাধারণ গুণের মতোই আচরণ করে: 0 দিয়ে গুণ করলে সব 0.
OR — “যেকোনো একটি হলেই চলবে” (যৌক্তিক যোগ)
একটি সেমিনার হলে ঢুকতে লাগবে স্টুডেন্ট আইডি কার্ড অথবা অতিথি পাস। যেকোনো একটি থাকলেই ঢোকা যাবে, দুটো থাকলেও সমস্যা নেই। A = আইডি আছে, B = অতিথি পাস আছে, F = ঢুকতে পারবেন: F = A + B (পড়ুন “A OR B”). OR-এর ফল 0 হয় শুধু তখনই, যখন সব ইনপুট 0.
NOT — “উল্টে দিন” (পূরক বা complement)
মোবাইলের “Do Not Disturb” চালু থাকলে রিংটোন বাজবে না। A = DND চালু, F = রিং বাজবে: F = A′ (পড়ুন “A প্রাইম”, “A বার” বা “NOT A”). NOT-এর ইনপুট একটিই, আর সে শুধু মান উল্টায়: 0 → 1, 1 → 0.
| A | B | A·B (AND) | A + B (OR) | A′ (NOT) |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 0 |
| 1 | 1 | 1 | 1 | 0 |
সুইচ দিয়ে ভাবুন। একটি বাল্বের লাইনে দুটি সুইচ একটির পর একটি (series) বসালে বাল্ব জ্বলবে শুধু দুটোই চালু থাকলে — এটা AND. আর দুটি সুইচ পাশাপাশি (parallel) বসালে যেকোনো একটি চালু করলেই বাল্ব জ্বলে — এটা OR. ১৯৩৭ সালে ২১ বছরের এক ছাত্র, Claude Shannon, ঠিক এই মিলটিই দেখিয়েছিলেন — নিচে ভাবনার প্রশ্ন ২-এ সেই গল্প।
মনে রাখার সহজ কৌশল: AND-এ একটি 0-ই যথেষ্ট ফল 0 করতে, OR-এ একটি 1-ই যথেষ্ট ফল 1 করতে। তিন বা তার বেশি ইনপুটেও নিয়ম একই — A·B·C = 1 শুধু তিনটিই 1 হলে; A + B + C = 0 শুধু তিনটিই 0 হলে।
৩ · লেখার নিয়ম, অগ্রাধিকার আর truth table বানানো
চিহ্ন — একই জিনিসের কয়েক রকম লেখা
| অপারেশন | পাঠ্যবইয়ে | অন্য রূপ | C/JavaScript-এ | Excel-এ |
|---|---|---|---|---|
| AND | A·B বা শুধু AB | A ∧ B | A && B | AND(A,B) |
| OR | A + B | A ∨ B | A || B | OR(A,B) |
| NOT | A′ বা A (মাথায় দাগ) | ¬A | !A | NOT(A) |
পাঠ্যবই আর হাতে লেখায় সাধারণত মাথায় দাগ (বার) দেওয়া হয়; টাইপ করার সুবিধার জন্য এই পর্বে আমরা প্রাইম (′) ব্যবহার করব — দুটোর অর্থ একই। খেয়াল রাখুন, দাগ কতখানি জুড়ে আছে তা খুব জরুরি: A·B (দুটি আলাদা দাগ) আর A·B (পুরোটার ওপর একটি দাগ) সম্পূর্ণ আলাদা রাশি — ডি মরগানের উপপাদ্য ঠিক এই পার্থক্য নিয়েই।
অগ্রাধিকার — কোনটি আগে
সাধারণ অঙ্কে যেমন গুণ আগে, যোগ পরে, বুলিয়ানেও তেমনি একটি ক্রম আছে:
তাই A + B·C′ মানে A + (B·(C′)) — প্রথমে C উল্টে নিন, তারপর B-এর সাথে AND, শেষে A-এর সাথে OR. যদি আগে A আর B-কে OR করতে চান, বন্ধনী লাগবে: (A + B)·C′. সন্দেহ হলে বন্ধনী দিন — অতিরিক্ত বন্ধনী কখনো ভুল নয়।
truth table বানানোর নিয়ম
প্রতিটি চলক দুটি মান নিতে পারে, তাই n-টি চলকে সমন্বয় হয় 2 × 2 × … (n বার) = 2n-টি। ২ চলকে ৪ সারি, ৩ চলকে ৮ সারি, ৪ চলকে ১৬ সারি। সারিগুলো লেখার নির্ভুল কৌশল: সারিগুলোকে 0 থেকে 2n − 1 পর্যন্ত বাইনারিতে গুনুন (পর্ব ১৬)। তিন চলকে: 000, 001, 010, 011, 100, 101, 110, 111. প্রথম কলামে চারটি 0 তারপর চারটি 1, দ্বিতীয়তে দুটি-দুটি, শেষটিতে একটি-একটি — কোনো সমন্বয় বাদ পড়বে না, দুবারও আসবে না।
উদাহরণ: F = A + B′C-এর truth table. অগ্রাধিকার মেনে মাঝের কলাম (B′, তারপর B′C) আগে বানিয়ে নিন — পরীক্ষার খাতায় এভাবে মাঝের কলাম দেখালে ভুল কম হয়, নম্বরও পুরো পাওয়া যায়:
| A | B | C | B′ | B′C | F = A + B′C |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 1 | 0 | 0 |
| 0 | 0 | 1 | 1 | 1 | 1 |
| 0 | 1 | 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 | 0 | 0 |
| 1 | 0 | 0 | 1 | 0 | 1 |
| 1 | 0 | 1 | 1 | 1 | 1 |
| 1 | 1 | 0 | 0 | 0 | 1 |
| 1 | 1 | 1 | 0 | 0 | 1 |
লক্ষ করুন: A = 1 হলেই (নিচের চার সারি) F = 1, যা-ই হোক B আর C. OR-এ একটি 1-ই যথেষ্ট। এই ধরনের পর্যবেক্ষণ থেকেই সরলীকরণের সূত্রগুলো এসেছে।
৪ · বুলিয়ান সূত্র — যে নিয়মে রাশি ছোট হয়
সাধারণ বীজগণিতে a + 0 = a বা a × 1 = a — এমন কিছু সূত্র আছে যা সব মানের জন্য সত্য। বুলিয়ানেও এমন সূত্র আছে, আর মজার ব্যাপার, কয়েকটি সাধারণ বীজগণিতের সাথে মেলে না। প্রায় প্রতিটি সূত্র জোড়ায় জোড়ায় আসে — একটি OR-রূপ, একটি AND-রূপ। প্রতিটির পেছনের যুক্তি পাশে দেওয়া হলো; মুখস্থ না করে যুক্তিটা বুঝুন।
| সূত্রের নাম | OR-রূপ | AND-রূপ (দ্বৈত) | সহজ যুক্তি |
|---|---|---|---|
| অভেদ (Identity) | A + 0 = A | A · 1 = A | “মিথ্যা অথবা A” = A; “সত্য এবং A” = A |
| শূন্য/প্রভাব (Null, Domination) | A + 1 = 1 | A · 0 = 0 | একটি 1 থাকলেই OR = 1; একটি 0 থাকলেই AND = 0 |
| সমমান (Idempotent) | A + A = A | A · A = A | একই কথা দুবার বললে নতুন কিছু হয় না |
| পূরক (Complement) | A + A′ = 1 | A · A′ = 0 | A আর তার উল্টো — একটি সবসময় সত্য, দুটি একসাথে কখনো নয় |
| দ্বি-পূরক (Involution) | (A′)′ = A | দুবার উল্টালে আগের জায়গায় | |
| বিনিময় (Commutative) | A + B = B + A | A·B = B·A | ক্রম বদলালে ফল বদলায় না |
| সংযোগ (Associative) | (A + B) + C = A + (B + C) | (A·B)·C = A·(B·C) | কোন জোড়া আগে, তাতে কিছু আসে যায় না |
| বণ্টন (Distributive) | A + B·C = (A + B)(A + C) | A·(B + C) = A·B + A·C | নিচে বিস্তারিত — প্রথমটি চমকে দেবে |
| শোষণ (Absorption) | A + A·B = A | A·(A + B) = A | A সত্য হলেই পুরোটা সত্য; A মিথ্যা হলে দুটি পদই মিথ্যা |
| ডি মরগান | (A + B)′ = A′·B′ | (A·B)′ = A′ + B′ | অংশ ৫-এ প্রমাণসহ |
সাধারণ বীজগণিতের সাথে তফাতগুলো খেয়াল করুন: সেখানে a + a = 2a, এখানে A + A = A. সেখানে a + 1 = 1 কখনো নয়, এখানে A + 1 = 1 সবসময়। আর একটি চমক অপেক্ষা করছে বণ্টন সূত্রে।
চমক: A + BC = (A + B)(A + C)
প্রথম রূপটি — A(B + C) = AB + AC — স্কুলের অঙ্কেই শিখেছেন। কিন্তু বুলিয়ানে উল্টো দিকেও বণ্টন চলে: OR-কে AND-এর ওপর ছড়ানো যায়। সাধারণ সংখ্যায় 2 + 3×4 = 14, অথচ (2+3)×(2+4) = 30 — মেলে না। বুলিয়ানে মেলে কেন? বীজগাণিতিক প্রমাণ দেখুন:
ডান পক্ষ = (A + B)(A + C)
= A·A + A·C + B·A + B·C [সাধারণ বণ্টন]
= A + AC + AB + BC [A·A = A, সমমান]
= A(1 + C + B) + BC [A সাধারণ উৎপাদক]
= A·1 + BC [1 + যা-কিছু = 1]
= A + BC = বাম পক্ষ ✔ [অভেদ]
রহস্যটা লুকিয়ে আছে A·A = A আর 1 + X = 1 সূত্রে — সাধারণ সংখ্যায় এ দুটি সত্য নয়, তাই সেখানে দ্বিতীয় বণ্টন চলে না।
শোষণ সূত্রের প্রমাণ — সবচেয়ে কাজের সূত্র
শোষণ সূত্র (absorption) সরলীকরণে সবচেয়ে বেশি লাগে। প্রমাণ মাত্র তিন লাইনের:
A + AB = A·1 + A·B [অভেদ: A = A·1]
= A(1 + B) [বণ্টন]
= A·1 = A ✔ [1 + B = 1]
A(A + B) = AA + AB = A + AB = A ✔
দৈনন্দিন ভাষায়: “বৃষ্টি হলে ছাতা নেব, অথবা বৃষ্টি হলে এবং রোদ থাকলে ছাতা নেব” — দ্বিতীয় অংশটি বাড়তি; প্রথম শর্তই সব বলে দেয়। এর ঘনিষ্ঠ আত্মীয় আরেকটি সূত্রও খুব কাজের: A + A′B = A + B (প্রমাণ: দ্বিতীয় বণ্টন সূত্রে A + A′B = (A + A′)(A + B) = 1·(A + B) = A + B).
৫ · ডি মরগানের উপপাদ্য — দুই রকম প্রমাণ
বুলিয়ান অ্যালজেব্রার সবচেয়ে বিখ্যাত দুটি সূত্র ব্রিটিশ গণিতবিদ Augustus De Morgan-এর নামে — ডি মরগানের উপপাদ্য:
দ্বিতীয় উপপাদ্য: (A · B)′ = A′ + B′
ভাষায় বললে: “A অথবা B — কোনোটিই নয়” মানে “A নয় এবং B নয়”। আর “A এবং B দুটোই সত্য — তা নয়” মানে “A নয় অথবা B নয়”। সেমিনার হলের উদাহরণে: “আইডি অথবা পাস — কিছুই নেই” = “আইডি নেই এবং পাসও নেই”। মনে রাখার ছড়া: দাগ ভাঙুন, চিহ্ন বদলান — পুরো রাশির ওপরের লম্বা দাগ ভেঙে প্রতিটি চলকের ওপর আলাদা দাগ দিন, আর + হয়ে যাবে ·, · হয়ে যাবে +.
প্রমাণ ১: truth table দিয়ে
দুটি রাশি সমান প্রমাণ করার সবচেয়ে নিশ্চিত উপায়: সব ইনপুটের জন্য দুই পক্ষের মান বের করে দেখানো যে প্রতিটি সারিতে মিলে যায়। HSC-তে এভাবেই প্রমাণ লিখতে হয়। নিচে কলাম ধরে ধরে টেবিলটি ভরাট করুন (এখানে প্রতিটি লাইন truth table-এর একটি কলাম; চারটি মান ক্রমে AB = 00, 01, 10, 11-এর জন্য):
| A | |
| B | |
| A + B | |
| বাম পক্ষ: (A + B)′ | |
| A′ | |
| B′ | |
| ডান পক্ষ: A′·B′ |
- ইনপুট কলাম। দুটি চলক, তাই 22 = ৪টি সারি। A কলামে প্রথমে দুটি 0 তারপর দুটি 1, B কলামে 0 আর 1 পালাক্রমে — সব সমন্বয় একবার করে এল।
- A + B. বাম পক্ষের ভেতরের অংশ আগে (বন্ধনী আগে)। OR: শুধু প্রথম সারিতে (00) দুটোই 0, তাই সেখানে 0; বাকি তিন সারিতে অন্তত একটি 1, তাই 1.
- (A + B)′ — বাম পক্ষ। আগের কলামটি উল্টে দিন: 0 1 1 1 → 1 0 0 0. বাম পক্ষ তৈরি।
- A′ আর B′. এবার ডান পক্ষের জন্য প্রতিটি চলক আলাদাভাবে উল্টান: A′ = 1 1 0 0, B′ = 1 0 1 0.
- A′·B′ — ডান পক্ষ। AND: যে সারিতে A′ আর B′ দুটোই 1, শুধু সেখানে 1 — কেবল প্রথম সারি। ফল 1 0 0 0.
- তুলনা। বাম পক্ষ 1 0 0 0, ডান পক্ষ 1 0 0 0 — চারটি সারিতেই হুবহু এক। যেহেতু সম্ভাব্য সব ইনপুট পরীক্ষা হয়ে গেছে, উপপাদ্যটি প্রমাণিত। দ্বিতীয় উপপাদ্যও একইভাবে প্রমাণ করুন: (A·B)′ = 1 1 1 0 আর A′ + B′ = 1 1 1 0.
প্রমাণ ২: Venn diagram দিয়ে
Venn diagram-এ আয়তক্ষেত্রটি হলো সব সম্ভাবনা, বৃত্ত A-এর ভেতর মানে A = 1, বাইরে মানে A = 0. OR মানে দুই বৃত্তের মিলিত জায়গা (union), AND মানে দুই বৃত্তের সাধারণ অংশ (intersection), NOT মানে বৃত্তের বাইরের সব জায়গা।
(A + B)′ আর A′·B′ — একই জায়গা
Shaded region = where the expression is 1
দ্বিতীয় উপপাদ্যও একইভাবে দেখা যায়: (A·B)′ মানে দুই বৃত্তের সাধারণ অংশ (মাঝের লেন্সের মতো জায়গা) বাদে বাকি সব। আর A′ + B′ মানে “A-এর বাইরে অথবা B-এর বাইরে” — নীল বা হলুদ যেকোনো একটি রং যেখানে আছে। মাঝের লেন্সে কোনো রং পড়ে না (সেটি দুই বৃত্তেরই ভেতরে), বাকি সব জায়গায় অন্তত একটি রং — হুবহু একই জায়গা।
দুইয়ের বেশি চলকে, আর দ্বৈত নীতি
ডি মরগান যেকোনো সংখ্যক চলকে খাটে: (A + B + C)′ = A′B′C′ আর (ABC)′ = A′ + B′ + C′. জটিল রাশিতে ধাপে ধাপে প্রয়োগ করুন। উদাহরণ: (AB + C)′ = (AB)′·C′ = (A′ + B′)C′.
সূত্রের তালিকায় দেখেছেন, প্রতিটি সূত্রের একটি “জোড়া” আছে। এর পেছনে আছে দ্বৈত নীতি (duality principle): যেকোনো সত্য বুলিয়ান সূত্রে + আর · অদলবদল করুন, আর 0 আর 1 অদলবদল করুন (চলক আর তাদের প্রাইম যেমন আছে তেমন রেখে) — নতুন সূত্রটিও সত্য হবে। যেমন A + 0 = A-এর dual হলো A·1 = A; A + BC = (A + B)(A + C)-এর dual হলো A(B + C) = AB + AC. ফলে একটি সূত্র প্রমাণ করলে তার জোড়াটি বিনা খরচে পাওয়া যায়।
দ্বৈত (dual) আর পূরক (complement) এক নয়। Dual নিতে শুধু চিহ্ন আর 0/1 বদলান, চলক উল্টান না: A + B′C-এর dual হলো A·(B′ + C). আর complement নিতে ডি মরগান প্রয়োগ করে চলকও উল্টাতে হয়: (A + B′C)′ = A′·(B + C′)। পরীক্ষায় এই দুটি গুলিয়ে ফেলা খুব সাধারণ ভুল — আর বন্ধনী দিতে ভুলবেন না, কারণ অগ্রাধিকার বদলে যায়।
৬ · ধাপে ধাপে সরলীকরণ — পরীক্ষার খাতার মতো করে
একটি বুলিয়ান রাশি যত লম্বা, সার্কিটে তত বেশি গেট লাগে। সরলীকরণের লক্ষ্য: একই truth table রেখে পদ আর চলকের সংখ্যা কমানো। খাতায় লেখার নিয়ম: প্রতিটি লাইনে একটি সূত্র প্রয়োগ করুন, আর ডান পাশে বন্ধনীতে সূত্রের নাম লিখুন। প্রথমে একটি ক্লাসিক উদাহরণ ধাপে ধাপে:
1F = AB + AB′ + A′B2 = AB + AB′ + AB + A′B3 = A(B + B′) + B(A + A′)4 = A·1 + B·15 = A + B
| ব্যবহৃত সূত্র | |
| পদ সংখ্যা | |
| গেট লাগবে |
- দেওয়া রাশি। তিনটি পদ। লক্ষ করুন, AB পদটি বাকি দুটি পদের প্রত্যেকটির সাথে “জোড়া” মেলে: AB আর AB′-তে A সাধারণ, AB আর A′B-তে B সাধারণ। কিন্তু একটি পদ তো দুবার ব্যবহার করা যায় না… যায়!
- সমমান সূত্র: AB = AB + AB. X + X = X, তাই উল্টো দিকে একটি পদকে দুবার লেখা সম্পূর্ণ বৈধ। এই কৌশলটি পরীক্ষায় বারবার কাজে লাগে — একটি পদ দুই দলের সাথে ভাগ করে নেওয়া।
- বণ্টন — সাধারণ উৎপাদক বের করা। প্রথম দুই পদ থেকে A: AB + AB′ = A(B + B′)। শেষ দুই পদ থেকে B: AB + A′B = B(A + A′)।
- পূরক সূত্র। B + B′ = 1 আর A + A′ = 1 — একটি চলক আর তার উল্টো, তাদের যেকোনো একটি সবসময় সত্য।
- অভেদ সূত্র: A·1 = A. ফল A + B. ৩টি AND, ২টি NOT আর একটি ৩-ইনপুট OR-এর জায়গায় এখন একটি মাত্র OR গেট। একই truth table — নিচের কোড চালিয়ে নিজেই মিলিয়ে দেখবেন।
একই প্রশ্নের আরেকটি পথ: AB + AB′ = A(B + B′) = A, তারপর A + A′B = A + B (আগের অংশে দেখা সূত্র)। দুই পথে একই উত্তর — বুলিয়ান সরলীকরণে প্রায়ই একাধিক সঠিক পথ থাকে। এবার পাঠ্যবইয়ের ধাঁচের আরও কয়েকটি সমাধান করা উদাহরণ:
উদাহরণ ১: সরল করুন F = A′B′C + A′BC + AB′C
F = A′C(B′ + B) + AB′C [বণ্টন]
= A′C·1 + AB′C [পূরক]
= C(A′ + AB′) [বণ্টন, অভেদ]
= C(A′ + B′) [X′ + XY = X′ + Y]
= A′C + B′C
উদাহরণ ২: সরল করুন F = (A + B)(A + B′)
F = A + BB′ [দ্বিতীয় বণ্টন]
= A + 0 = A [পূরক, অভেদ]
উদাহরণ ৩: সরল করুন F = ((A + B)′ + C)′ — ডি মরগান দুবার
F = (A + B)″ · C′ [ডি মরগান: (X + Y)′ = X′Y′]
= (A + B)C′ [দ্বি-পূরক]
= AC′ + BC′ [বণ্টন]
উদাহরণ ৪: প্রমাণ করুন AB + A′C + BC = AB + A′C
বাম = AB + A′C + BC(A + A′) [পূরক: A + A′ = 1]
= AB + A′C + ABC + A′BC
= AB(1 + C) + A′C(1 + B) [বণ্টন]
= AB + A′C = ডান ✔ [1 + X = 1]
উদাহরণ ৪-এর পদ্ধতিটি লক্ষ করুন: কখনো রাশিকে ছোট করার আগে ইচ্ছা করে বড় করতে হয় — এখানে BC-কে (A + A′) দিয়ে গুণ করা হয়েছে, যাতে নতুন পদগুলো অন্য পদে শোষিত হয়। এই সূত্রটির নাম consensus theorem; BC পদটি “অপ্রয়োজনীয়”, কারণ তার সব 1 আগেই AB বা A′C দিয়ে ঢাকা।
নিজের সরলীকরণ নিজে যাচাই করুন
প্রতিটি সরলীকরণের পর একটি প্রশ্ন থাকে: আমি কি কোথাও ভুল সূত্র লাগিয়েছি? নিশ্চিত হওয়ার একমাত্র উপায় truth table. নিচের ছোট টুলটি চারটি রাশি-জোড়া সব ইনপুটে হিসাব করে দেখায় তারা সমতুল্য (equivalent) কি না। JavaScript-এ && = AND, || = OR, ! = NOT. চালান চাপুন:
// প্রতিটি জোড়া: বাম রাশি আর ডান রাশি — সব ইনপুটে কি একই ফল দেয়?
const checks = [
["!(A||B) vs !A&&!B", (A, B) => !(A || B), (A, B) => !A && !B],
["!(A&&B) vs !A||!B", (A, B) => !(A && B), (A, B) => !A || !B],
["AB+AB'+A'B vs A+B", (A, B) => A && B || A && !B || !A && B, (A, B) => A || B],
["!(A||B) vs !A||!B", (A, B) => !(A || B), (A, B) => !A || !B]
];
for (const [label, f, g] of checks) {
let rows = "", same = true;
for (const [A, B] of [[0, 0], [0, 1], [1, 0], [1, 1]]) {
const x = f(A, B) ? 1 : 0; // বাম রাশির ফল
const y = g(A, B) ? 1 : 0; // ডান রাশির ফল
rows += ` ${A}${B}→${x}${y}`;
if (x !== y) same = false;
}
console.log(label, "|", rows.trim(), "|", same ? "সমতুল্য ✔" : "সমতুল্য নয় ✘");
}প্রত্যাশিত আউটপুট চার লাইন। প্রতিটি 00→11-এর মানে: ইনপুট A = 0, B = 0-তে বাম রাশির ফল 1, ডান রাশির ফল 1. প্রথম দুই লাইন ডি মরগানের দুই উপপাদ্য — 00→11 01→00 10→00 11→00 আর 00→11 01→11 10→11 11→00, দুটিই “সমতুল্য ✔”. তৃতীয় লাইন আমাদের সরলীকরণ AB + AB′ + A′B = A + B — এটিও ✔. চতুর্থ লাইনে একটি ভুল “সূত্র”: (A + B)′ = A′ + B′ — চিহ্ন বদলাতে ভুলে গেলে যা হয়। আউটপুট 01→01 10→01 দেখায় যে AB = 01 আর 10 সারিতে দুই পক্ষ আলাদা, তাই “সমতুল্য নয় ✘”. একটি সারিতে অমিলই রাশিকে অসমান প্রমাণের জন্য যথেষ্ট। নিজের রাশি পরীক্ষা করতে checks তালিকায় একটি নতুন লাইন যোগ করুন — যেমন (A, B) => A || !A && B বনাম (A, B) => A || B.
৭ · truth table থেকে রাশি — minterm, maxterm, SOP আর POS
এতক্ষণ রাশি থেকে truth table বানিয়েছি। বাস্তবে প্রায়ই উল্টো প্রশ্ন আসে: “আমি চাই এই এই ইনপুটে আলো জ্বলুক” — অর্থাৎ truth table জানা, রাশি অজানা। এর একটি যান্ত্রিক, কখনো-ব্যর্থ-না-হওয়া পদ্ধতি আছে।
উদাহরণ: তিন সদস্যের একটি কমিটি (A, B, C) ভোট দেয়। অন্তত দুজন “হ্যাঁ” (1) বললে প্রস্তাব পাস (F = 1). একে বলে majority (সংখ্যাগরিষ্ঠ) ফাংশন। প্রথমে truth table, তারপর রাশি:
- Minterm: সব চলক নিয়ে AND দিয়ে গড়া এমন পদ, যা truth table-এর ঠিক একটি সারিতে 1 হয়। নিয়ম: সারিতে চলক 1 হলে চলকটি যেমন আছে, 0 হলে তার প্রাইম। সারি 011 → A′BC. সারির দশমিক নম্বর দিয়ে একে m3 লেখা হয়।
- Maxterm: সব চলক নিয়ে OR দিয়ে গড়া এমন পদ, যা ঠিক একটি সারিতে 0 হয়। নিয়ম উল্টো: সারিতে চলক 0 হলে যেমন আছে, 1 হলে প্রাইম। সারি 000 → (A + B + C) = M0; সারি 100 → (A′ + B + C) = M4.
| m0 · 0 0 0 | F = 0 | |
| m1 · 0 0 1 | F = 0 | |
| m2 · 0 1 0 | F = 0 | |
| m3 · 0 1 1 | F = 1 | |
| m4 · 1 0 0 | F = 0 | |
| m5 · 1 0 1 | F = 1 | |
| m6 · 1 1 0 | F = 1 | |
| m7 · 1 1 1 | F = 1 |
- truth table. তিন সদস্য, তাই ৮টি সারি। যেসব সারিতে অন্তত দুটি 1 — সেখানে F = 1. প্রতিটি সারির পাশে তার নম্বর (m0 থেকে m7) লেখা আছে — ABC-কে বাইনারি সংখ্যা ধরে দশমিকে।
- F = 1 সারিগুলো বাছুন। সারি 3 (011), 5 (101), 6 (110) আর 7 (111). বাকি চারটি সারি SOP-তে লাগবে না।
- প্রতিটি সারির minterm. 0 → প্রাইম, 1 → যেমন আছে। 011 → A′BC; 101 → AB′C; 110 → ABC′; 111 → ABC. প্রতিটি পদ ঠিক নিজের সারিতেই 1, অন্য কোথাও নয়।
- OR দিয়ে জুড়ুন। F হবে 1 যদি সারি 3 অথবা 5 অথবা 6 অথবা 7 ঘটে: F = A′BC + AB′C + ABC′ + ABC. এটাই canonical SOP, সংক্ষেপে Σm(3, 5, 6, 7) — Σ মানে “এই minterm-গুলোর যোগফল”।
- POS আর সরল রূপ। একই ফাংশন 0-সারিগুলো দিয়েও লেখা যায়: চারটি maxterm-এর গুণফল, ΠM(0, 1, 2, 4) — Π মানে “গুণফল”। আর সূত্র বা K-map দিয়ে সরল করলে F = AB + BC + AC — “যেকোনো দুজন হ্যাঁ বললেই পাস”, ভাষার সাথে হুবহু মিলে যায়!
এই দুই মানক রূপের নাম SOP (Sum of Products — গুণফলের যোগফল) আর POS (Product of Sums — যোগফলের গুণফল)। যখন প্রতিটি পদে সব চলক থাকে, তাকে বলে canonical (প্রামাণ্য) রূপ; একটি truth table-এর canonical SOP একটিই, তাই দুটি রাশি সমান কি না দেখার আরেক উপায় — দুটির canonical রূপ মিলিয়ে দেখা।
একটি সুন্দর মিল: Σm-এ যে নম্বরগুলো নেই, ΠM-এ ঠিক সেগুলোই থাকে। ৩ চলকে মোট নম্বর ০–৭; Σm(3, 5, 6, 7) হলে ΠM(0, 1, 2, 4). তাই একটি জানলে আরেকটি সঙ্গে সঙ্গে লেখা যায়। কোনটি ব্যবহার করবেন? যে রূপে পদ কম — 1-সারি কম হলে SOP, 0-সারি কম হলে POS.
৮ · আরও গভীরে: Karnaugh map — ছবিতে সরলীকরণ
সূত্র দিয়ে সরলীকরণে একটি সমস্যা: কোন সূত্র কখন লাগাবেন, সেটা অভিজ্ঞতা আর একটু ভাগ্যের ব্যাপার। ১৯৫৩ সালে Bell Labs-এর প্রকৌশলী Maurice Karnaugh একটি ছবিভিত্তিক পদ্ধতি দেন — Karnaugh map বা K-map. বুদ্ধিটা হলো truth table-কে এমন একটি ছকে সাজানো, যেখানে পাশাপাশি দুটি খোপের ইনপুট মাত্র একটি চলকে আলাদা। তখন পাশাপাশি দুটি 1 মানে X·Y + X·Y′ = X — সেই বদলানো চলকটি বাদ পড়ে যায়।
এজন্য কলামের শিরোনাম সাধারণ ক্রমে (00, 01, 10, 11) নয়, Gray code ক্রমে লেখা হয়: 00, 01, 11, 10 — পরপর দুটিতে একটি মাত্র bit বদলায়। আর ছকের ডান কিনারা বাম কিনারার “পাশে” ধরা হয় (10 থেকে 00-তেও একটি bit বদলায়), যেন ছকটি একটি নলের মতো গোল। নিচে কমিটির ভোটের ফাংশনটিই K-map-এ সরল করি:
| A \ BC | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| A = 0 | 0 | 0 | 0 | |
| A = 1 | 0 |
- ছক ভরাট। সারি A = 0 ও 1, কলাম BC Gray ক্রমে 00, 01, 11, 10. প্রতিটি minterm তার খোপে: m3 (A=0, BC=11), m5 (A=1, BC=01), m7 (A=1, BC=11), m6 (A=1, BC=10). বাকি খোপে 0.
- দল ①: m3 আর m7. একই কলামে ওপর-নিচে পাশাপাশি। দুটিতেই B = 1, C = 1; শুধু A বদলায় (0 আর 1). তাই A বাদ — পদটি BC.
- দল ②: m5 আর m7. নিচের সারিতে পাশাপাশি। A = 1, C = 1 দুটিতেই; B বদলায়। পদটি AC. খেয়াল করুন, m7 আবার ব্যবহার হলো — একটি 1 একাধিক দলে থাকতে পারে (সমমান সূত্র, A + A = A).
- দল ③: m6 আর m7. A = 1, B = 1; C বদলায়। পদটি AB. এখন প্রতিটি 1 অন্তত একটি দলে ঢুকে গেছে।
- ফল। সব দলের পদ OR করুন: F = AB + BC + AC. নিয়ম মনে রাখুন: দলের আকার ১, ২, ৪, ৮ (২-এর ঘাত); দল যত বড় তত ভালো (বড় দলে বেশি চলক বাদ পড়ে); দল যত কম তত ভালো। চারটি 1 এক সারিতে বা ২×২ চৌকো হলে দুটি চলক একসাথে বাদ পড়ে।
K-map মানুষের চোখের জন্য দারুণ, কিন্তু ৫–৬ চলকের পর ছক আঁকা আর দল চেনা কঠিন হয়ে যায়। বড় সমস্যার জন্য আছে সারণিভিত্তিক Quine–McCluskey পদ্ধতি, যা কম্পিউটারে চালানো যায় — ভাবনার প্রশ্ন ৫-এ সেই গল্প। আর আজকের চিপ-নকশার সফটওয়্যার আরও উন্নত কৌশলে লাখ লাখ গেটের সার্কিট নিজেই সরল করে।
আরও গভীরে: বুলিয়ান অ্যালজেব্রা আসলে গণিতের একটি বড় শাখার অংশ — সেট তত্ত্ব আর প্রস্তাবনামূলক যুক্তি (propositional logic) একই কাঠামো মেনে চলে, তাই Venn diagram দিয়ে প্রমাণ সম্ভব হয়েছে। K-map-এর “don't care” খোপ, ৪ চলকের ১৬ খোপের ছক, আর গেটের বিলম্ব (propagation delay) কীভাবে নকশা বদলে দেয় — এসব জানতে আমাদের Computer Architecture & Digital Logic কোর্স দেখুন। যাঁরা এই অংশটি বাদ দেবেন, তাঁরা পরের পর্বগুলোতে কিছু হারাবেন না।
৯ · দৈনন্দিন কম্পিউটিংয়ে বুলিয়ান লজিক
বুলিয়ান অ্যালজেব্রা শুধু সার্কিট-নকশাকারীর বিষয় নয়। অফিসের কাজ থেকে প্রোগ্রামিং — প্রতিদিন এর দেখা পাবেন।
সার্চে — Google আর লাইব্রেরি ক্যাটালগ
লাইব্রেরির অনলাইন ক্যাটালগ আর গবেষণা-প্রবন্ধের ডেটাবেসে সরাসরি AND, OR, NOT লিখে খোঁজা যায়: "climate change" AND Bangladesh NOT India. Google-এ নিয়ম একটু আলাদা (পর্ব ১৩-এ দেখা search operator): শব্দগুলোর মাঝের ফাঁকা জায়গাই AND; OR লিখতে হয় বড় হাতের অক্ষরে; আর NOT-এর বদলে মাইনাস চিহ্ন। যেমন ধান চাষ (বন্যা OR খরা) -ভারত — বুলিয়ানে লিখলে P·(Q + R)·S′. আর ডি মরগানও কাজে লাগে: “না বন্যা, না খরা” খুঁজতে -বন্যা -খরা লেখা মানেই (Q + R)′ = Q′·R′.
Spreadsheet-এ — IF(AND())
পর্ব ১০-এ দেখা IF function-এর ভেতরে AND, OR, NOT বসানো যায়। শুরুর সেই পাসের উদাহরণ Excel বা Google Sheets-এ (B কলামে তত্ত্বীয়, C কলামে ব্যবহারিক নম্বর, পাস নম্বর ৩৩ ধরে):
=IF(AND(B2>=33, C2>=33), "পাস", "ফেল")
=IF(OR(D2="আইডি", D2="অতিথি পাস"), "ঢুকতে পারবেন", "দুঃখিত")
=IF(NOT(E2="DND"), "রিং বাজবে", "নীরব")আর ডি মরগান দিয়ে একই সূত্র অন্যভাবে: “ফেল” মানে NOT(পাস) = NOT(AND(B, C)) = OR(NOT B, NOT C) — অর্থাৎ =IF(OR(B2<33, C2<33), "ফেল", "পাস"), একই ফল।
প্রোগ্রামিংয়ে — শর্ত
প্রতিটি প্রোগ্রামিং ভাষার if শর্ত আসলে একটি বুলিয়ান রাশি। C-তে (পর্ব ৩৯-এ শর্ত লিখবেন) if (age >= 18 && hasNID) মানে AND. প্রোগ্রামাররা প্রায়ই ডি মরগান লাগান একটি জটিল শর্তকে পড়তে সহজ করতে: !(x < 0 || x > 100) আর x >= 0 && x <= 100 একই কথা — “x ০ থেকে ১০০-এর মধ্যে”। দ্বিতীয়টি পড়া সহজ। একটি বাড়তি তথ্য: C আর JavaScript-এ &&-এর বাম পাশ 0 (মিথ্যা) পেলে ডান পাশ আর হিসাবই করে না, কারণ 0·যা-কিছু = 0 — একে বলে short-circuit evaluation.
সার্কিটে — সব কিছুর মূলে
আর অবশ্যই চিপ-নকশা। প্রতিটি বুলিয়ান রাশি সরাসরি একটি সার্কিট: প্রতিটি · একটি AND গেট, প্রতিটি + একটি OR গেট, প্রতিটি ′ একটি NOT গেট। গেটগুলো আবার তৈরি হয় transistor দিয়ে, যারা আসলে বিদ্যুৎ-চালিত সুইচ — একসময় এই কাজ করত relay. AB + AB′ + A′B-কে A + B করা মানে ছয়টি গেটের জায়গায় একটি — কোটি কপি বানানো চিপে এই সাশ্রয় বিশাল। গেটের প্রতীক, NAND-NOR আর universal gate দেখবেন পর্ব ২০-এ।
পরীক্ষা ও ইন্টারভিউতে — এ ধরনের প্রশ্ন প্রায়ই আসে (HSC সৃজনশীলে সাধারণত একটি রাশি বা সার্কিট দিয়ে truth table, সরলীকরণ আর প্রমাণ চাওয়া হয়):
- A + A = ? আর A·A′ = ? A + A = A (সমমান); A·A′ = 0 (পূরক)। বুলিয়ানে 1 + 1 = 1.
- n-টি চলকের truth table-এ কয়টি সারি? 2n-টি — ৩ চলকে ৮, ৪ চলকে ১৬.
- ডি মরগানের উপপাদ্য লিখুন ও প্রমাণ করুন। (A + B)′ = A′B′ আর (AB)′ = A′ + B′; ৪ সারির truth table-এ দুই পক্ষের কলাম মিলিয়ে দেখান।
- সরল করুন: A + AB বা AB + AB′. দুটিরই উত্তর A (শোষণ; বণ্টন + পূরক)।
- A + BC = (A + B)(A + C) প্রমাণ করুন। ডান পক্ষ গুণ করে AA = A আর 1 + X = 1 ব্যবহার করুন।
১০ · AI-এর যুগে — সরলীকরণ করাবেন, যাচাই করবেন নিজে
AI চ্যাটবটকে একটি বুলিয়ান রাশি দিলে সে মুহূর্তে ধাপে ধাপে সরলীকরণ লিখে দেয় — দেখতে একদম পাঠ্যবইয়ের মতো। সমস্যা হলো, মাঝের কোনো ধাপে সে কখনো কখনো এমন “সূত্র” লাগায় যা আসলে নেই, অথচ আত্মবিশ্বাসের সাথে নাম লিখে দেয়। শেষ উত্তর ভুল হলেও উপস্থাপনা নিখুঁত থাকে বলে চোখে পড়ে না।
| AI-এর সাধারণ ভুল ধাপ | কেন ভুল / কীভাবে ধরবেন |
|---|---|
| (A + B)′ = A′ + B′ (চিহ্ন বদলায়নি) | ডি মরগানে + অবশ্যই · হয়। AB = 01 সারিতে বাম পক্ষ 0, ডান পক্ষ 1 |
| (AB)′ = A′B′ (একটানা দাগ ভেঙে শুধু আলাদা দাগ) | AB = 10 সারিতে বাম 1, ডান 0 — অসমান |
| A + A′B = B বা A + AB = AB | সঠিক: A + A′B = A + B; A + AB = A |
| সাধারণ বীজগণিতের নিয়ম চাপানো: A + A = 2A | বুলিয়ানে A + A = A; কোনো সহগ (২, ৩) থাকে না |
| K-map-এ ৩টি খোপের দল, বা কোনাকুনি দল | দল হবে ১, ২, ৪, ৮ খোপের, আয়তাকার, পাশাপাশি (কিনারা ঘুরে আসা চলে) |
নিচের prompt-টি কপি করে নিজের রাশি বসিয়ে ব্যবহার করুন। খেয়াল করুন, প্রতিটি ধাপে সূত্রের নাম আর শেষে truth table চাওয়া হয়েছে — যাতে আপনি প্রতিটি দাবি মিলিয়ে দেখতে পারেন:
AI-এর উত্তর হাতে পেলে — যাচাইয়ের চেকলিস্ট
ভাবনার প্রশ্ন
প্রতিটি প্রশ্ন নিয়ে নিজে কিছুক্ষণ ভাবুন — তারপর “→ উত্তর” চাপুন। একজন জুতা-কারিগরের ছেলের দর্শন থেকে আজকের চিপ পর্যন্ত — যুক্তির গণিতের গল্প।
প্র ০১George Boole ১৮৫৪ সালে “The Laws of Thought” লিখেছিলেন — মানুষের চিন্তার নিয়ম খুঁজতে। সেটি কম্পিউটারের ভিত্তি হলো কীভাবে?
George Boole জন্মেছিলেন ১৮১৫ সালে ইংল্যান্ডের Lincoln শহরে, এক জুতা-কারিগরের ঘরে। পরিবারের সামর্থ্য ছিল না বলে বিশ্ববিদ্যালয়ে পড়া হয়নি; গণিত তিনি শিখেছিলেন মূলত নিজে নিজে, বই পড়ে। কিশোর বয়সেই পরিবারের ভার নিতে স্কুলে পড়াতে শুরু করেন। তবুও গণিতের গবেষণা চালিয়ে যান, আর তাঁর কাজের জোরে ১৮৪৯ সালে আয়ারল্যান্ডের Queen's College Cork-এ গণিতের প্রথম অধ্যাপক নিযুক্ত হন — কোনো বিশ্ববিদ্যালয়-ডিগ্রি ছাড়াই।
১৮৪৭ সালে তিনি লেখেন “The Mathematical Analysis of Logic”, আর ১৮৫৪ সালে তাঁর প্রধান গ্রন্থ “An Investigation of the Laws of Thought”. মূল ভাবনাটি ছিল বৈপ্লবিক: অ্যারিস্টটলের সময় থেকে যুক্তিবিদ্যা (logic) ছিল দর্শনের বিষয়, শব্দ আর বাক্যে লেখা। Boole দেখালেন, যুক্তির বাক্যগুলোকে বীজগণিতের মতো প্রতীকে লিখে সমীকরণের মতো কষা যায়। তিনি একটি অদ্ভুত সমীকরণকে কেন্দ্রে রাখলেন: x² = x. সাধারণ সংখ্যায় এটি সত্য শুধু x = 0 আর x = 1-এর জন্য — আর ঠিক এই দুটি মানই তাঁর যুক্তির জগতে লাগে। এই সমীকরণ থেকেই তিনি বের করলেন x(1 − x) = 0 — “কোনো কিছু একসাথে সত্য আর মিথ্যা হতে পারে না”, যা আজকের A·A′ = 0.
তাঁর মূল ব্যবস্থা আজকের রূপের চেয়ে একটু আলাদা ছিল — তাঁর “যোগ” শুধু পরস্পর-বিচ্ছিন্ন জিনিসের জন্য খাটত। পরে William Stanley Jevons-এর মতো যুক্তিবিদরা যোগকে আজকের অন্তর্ভুক্তিমূলক OR-এ বদলান; Jevons ১৮৬৯ সালে যুক্তির সমস্যা সমাধানের একটি যান্ত্রিক “logic piano”-ও বানিয়েছিলেন। ১৮৬৪ সালে মাত্র ৪৯ বছর বয়সে Boole মারা যান।
Boole নিজে কোনো যন্ত্রের কথা ভাবেননি; তিনি চেয়েছিলেন মানুষের চিন্তার নিয়ম বুঝতে। প্রায় আশি বছর তাঁর কাজ ছিল মূলত দার্শনিক আর গণিতবিদদের আলোচনার বিষয়। তারপর একজন তরুণ প্রকৌশলী দেখলেন, Boole-এর 0 আর 1 হুবহু একটি সুইচের বন্ধ আর চালু — পরের প্রশ্নে সেই গল্প।
মূল উপলব্ধি: বিমূর্ত গণিতের প্রয়োগ কখন আসবে, কেউ জানে না। “চিন্তার নিয়ম” খুঁজতে গিয়ে Boole এমন এক ভাষা তৈরি করেছিলেন, যা প্রায় এক শতাব্দী পরে প্রতিটি কম্পিউটারের মাতৃভাষা হয়ে গেল।
প্র ০২Claude Shannon-এর ১৯৩৭ সালের master's thesis-কে কেন “শতাব্দীর সবচেয়ে গুরুত্বপূর্ণ master's thesis” বলা হয়?
Claude Shannon ১৯৩৬ সালে University of Michigan থেকে বৈদ্যুতিক প্রকৌশল আর গণিতে দুটি স্নাতক ডিগ্রি নিয়ে MIT-তে যান। সেখানে তাঁর কাজ ছিল Vannevar Bush-এর “differential analyzer” নামের বিশাল যান্ত্রিক কম্পিউটারের দেখাশোনা — যার নিয়ন্ত্রণ অংশে ছিল শত শত relay (বিদ্যুৎচুম্বকে চলা সুইচ)। সেই সময় টেলিফোন এক্সচেঞ্জ আর এমন যন্ত্রের relay-সার্কিট নকশা করা হতো অভিজ্ঞতা আর আন্দাজে — প্রতিটি নকশা যেন একটি শিল্পকর্ম, কোনো নিয়মিত পদ্ধতি নেই।
Michigan-এ দর্শনের একটি কোর্সে Shannon Boole-এর যুক্তিবিদ্যা পড়েছিলেন। MIT-তে relay-গুলো দেখে তাঁর মাথায় এল: সুইচ বন্ধ = 1, খোলা = 0; দুটি সুইচ একটির পর একটি (series) = AND; পাশাপাশি (parallel) = OR. তাহলে যেকোনো relay-সার্কিট একটি বুলিয়ান রাশি, আর বুলিয়ান সূত্র দিয়ে রাশি সরল করা মানে সার্কিটে সুইচ কমানো! ১৯৩৭ সালে জমা দেওয়া আর ১৯৩৮ সালে প্রকাশিত তাঁর thesis “A Symbolic Analysis of Relay and Switching Circuits”-এ তিনি এটি পূর্ণাঙ্গভাবে দেখান — এমনকি বুলিয়ান রাশি দিয়ে বাইনারি সংখ্যা যোগ করার সার্কিটও নকশা করেন। তখন তাঁর বয়স ছিল মাত্র ২১।
ফলটা ছিল যুগান্তকারী: সার্কিট-নকশা “শিল্প” থেকে “বিজ্ঞান” হলো। একটি সার্কিট কী করবে, তা কাগজে প্রমাণ করা যায়; দুটি সার্কিট সমান কি না, তা হিসাব করে বলা যায়। মনোবিজ্ঞানী Howard Gardner পরে একে বলেছিলেন সম্ভবত শতাব্দীর সবচেয়ে গুরুত্বপূর্ণ, এবং সবচেয়ে বিখ্যাত, master's thesis — কথাটি আজ প্রায়ই উদ্ধৃত হয়। প্রায় একই সময়ে জাপানে Akira Nakashima-সহ আরও কয়েকজন স্বাধীনভাবে কাছাকাছি ধারণায় পৌঁছেছিলেন, তবে Shannon-এর লেখাটিই পশ্চিমা প্রকৌশলে সবচেয়ে প্রভাবশালী হয়।
Shannon এখানেই থামেননি। ১৯৪৮ সালে তিনি “A Mathematical Theory of Communication” লেখেন, যা তথ্যতত্ত্বের (information theory) জন্ম দেয় — “bit” শব্দটি ছাপায় প্রথম আসে সেখানেই (পর্ব ০৪)। অর্থাৎ ডিজিটাল যুগের দুটি স্তম্ভ — সার্কিটের যুক্তি আর তথ্যের মাপ — দুটিই একজনের হাতে।
মূল উপলব্ধি: বড় আবিষ্কার অনেক সময় নতুন কিছু তৈরি নয়, দুটি আলাদা জগতের মধ্যে সেতু দেখা। Boole-এর বীজগণিত আর relay-র সুইচ দুটিই আগে থেকে ছিল; Shannon দেখলেন তারা একই জিনিস।
প্র ০৩Augustus De Morgan কে ছিলেন? তাঁর নামের সূত্রটি কি তিনিই প্রথম আবিষ্কার করেছিলেন?
Augustus De Morgan (১৮০৬–১৮৭১) জন্মেছিলেন ভারতের মাদুরাইয়ে, যেখানে তাঁর বাবা ইস্ট ইন্ডিয়া কোম্পানির সেনা কর্মকর্তা ছিলেন; শিশু বয়সেই পরিবার ইংল্যান্ডে ফিরে যায়। জন্মের কিছু পরেই তিনি এক চোখের দৃষ্টি হারান। Cambridge-এ পড়াশোনায় অসাধারণ হলেও ধর্মীয় শপথ নিতে রাজি না হওয়ায় সেখানে পূর্ণ ডিগ্রি বা পদ নেননি। মাত্র ২২ বছর বয়সে, ১৮২৮ সালে, নতুন প্রতিষ্ঠিত London University-র (আজকের University College London) গণিতের প্রথম অধ্যাপক হন। ১৮৬৫ সালে London Mathematical Society প্রতিষ্ঠায় তাঁর বড় ভূমিকা ছিল, আর তিনি এর প্রথম সভাপতি। “mathematical induction” নামটিও তাঁরই দেওয়া। তিনি Ada Lovelace-কে চিঠির মাধ্যমে গণিত পড়াতেন — সেই Ada, যিনি Babbage-এর Analytical Engine-এর জন্য প্রথম “প্রোগ্রাম” লেখার কৃতিত্ব পান (পর্ব ০২)।
১৮৪৭ সালে তাঁর বই “Formal Logic” প্রকাশিত হয় — প্রায় একই সময়ে Boole-এর প্রথম যুক্তির বইটিও বের হয়। এর পেছনে একটি বিতর্কের গল্প আছে: স্কটিশ দার্শনিক Sir William Hamilton De Morgan-এর বিরুদ্ধে যুক্তিবিদ্যার একটি ধারণা চুরির অভিযোগ তোলেন, আর তা নিয়ে প্রকাশ্য তিক্ত বিতর্ক চলে। এই বিতর্ক দেখেই Boole-এর আগ্রহ জাগে যুক্তিকে গাণিতিকভাবে লেখার। De Morgan আর Boole-এর মধ্যে পরে দীর্ঘ বন্ধুত্বপূর্ণ চিঠিপত্র চলে; বয়োজ্যেষ্ঠ De Morgan স্ব-শিক্ষিত Boole-এর কাজের গুরুত্ব বুঝে তাঁকে উৎসাহ দিতেন।
তাঁর নামের সূত্রটির মূল কথা কি তিনিই প্রথম বলেন? না — “A অথবা B নয় মানে A নয় এবং B নয়” কথাটি মধ্যযুগের যুক্তিবিদরাও (যেমন William of Ockham) শব্দে লিখেছিলেন। De Morgan-এর কৃতিত্ব এটিকে আধুনিক আনুষ্ঠানিক যুক্তিবিদ্যার ভাষায় স্পষ্ট নিয়ম হিসেবে প্রতিষ্ঠা করা, যা পরে বুলিয়ান অ্যালজেব্রার অংশ হয়ে যায়। বিজ্ঞানে এমন প্রায়ই ঘটে — সূত্রের নাম হয় তাঁর নামে, যিনি সেটিকে সবচেয়ে স্পষ্ট ও কাজে লাগানোর মতো করে উপস্থাপন করেন।
আজ ডি মরগানের সূত্র সবচেয়ে বেশি কাজে লাগে চিপ-নকশায়: এর জোরেই শুধু NAND গেট দিয়ে (বা শুধু NOR দিয়ে) AND, OR, NOT সব বানানো যায় — যা পর্ব ২০-এর universal gate-এর মূল কথা।
মূল উপলব্ধি: বিজ্ঞানের অগ্রগতি একক প্রতিভার নয় — বিতর্ক, বন্ধুত্ব, চিঠিপত্র আর পূর্বসূরিদের কাজ মিলে আসে। আর নামকরণ সবসময় “প্রথম কে” তার নিখুঁত হিসাব নয়।
প্র ০৪আজকের চিপে শত শত কোটি transistor. তাহলে দু-একটি গেট কমানোর সরলীকরণ নিয়ে এত মাথাব্যথা কেন?
১৯৫০–৬০-এর দশকে প্রতিটি গেট ছিল আলাদা যন্ত্রাংশ — vacuum tube বা হাতে ঝালাই করা transistor. একটি গেট কমানো মানে সরাসরি টাকা, জায়গা আর তাপ বাঁচানো; তাই হাতে K-map এঁকে প্রতিটি রাশি সরল করা ছিল প্রকৌশলীর দৈনন্দিন কাজ। আজ একটি ফোনের প্রসেসরে কয়েকশো কোটি, বড় চিপে হাজার কোটিরও বেশি transistor. একটি রাশিতে দুটি গেট বাঁচানো সেখানে সমুদ্রে এক ফোঁটা — আর মানুষ হাতে আর এই কাজ করে না, নকশার সফটওয়্যার (logic synthesis tool) স্বয়ংক্রিয়ভাবে করে।
তবুও সরলীকরণ আগের চেয়েও গুরুত্বপূর্ণ, শুধু রূপ বদলেছে। প্রথমত বিদ্যুৎ: প্রতিটি গেট যতবার 0 থেকে 1-এ বদলায়, ততবার একটু শক্তি খরচ হয়। একই সার্কিট কোটি কপি, সেকেন্ডে শত কোটি বার — ছোট সাশ্রয়ও গুণ হয়ে বিশাল হয়। ফোনের ব্যাটারি কতক্ষণ চলবে আর ডেটা সেন্টারের বিদ্যুৎ বিল কত আসবে, তা অনেকটাই এর ওপর নির্ভর করে। দ্বিতীয়ত গতি: সংকেতকে প্রতিটি গেট পার হতে সামান্য সময় লাগে। সবচেয়ে লম্বা গেট-পথ (critical path) ঠিক করে ক্লক কত দ্রুত চলতে পারবে। একটি স্তর কমানো মানে পুরো চিপ দ্রুত চালানোর সুযোগ। তৃতীয়ত তাপ ও আয়তন: transistor এত ছোট হয়েছে যে চিপের সব অংশ একসাথে পুরো গতিতে চালালে অতিরিক্ত গরম হয়ে যায় — তাই প্রতিটি বাঁচানো গেট মূল্যবান।
আর কিছু জায়গায় হাতে সরলীকরণ এখনো সরাসরি দরকার: ছোট microcontroller-এর প্রোগ্রাম, FPGA-র সীমিত resource, প্রোগ্রামের ভেতরের জটিল শর্ত (যেখানে ডি মরগান দিয়ে কোড পরিষ্কার হয়), আর ডেটাবেস কোয়েরির শর্ত অপ্টিমাইজ করা। সবচেয়ে বড় কথা — নকশার সফটওয়্যার যে অ্যালগরিদম চালায়, তা এই বুলিয়ান সূত্রগুলোর ওপরই দাঁড়িয়ে।
মূল উপলব্ধি: সরলীকরণের লক্ষ্য বদলে গেছে “কম যন্ত্রাংশ” থেকে “কম বিদ্যুৎ, কম বিলম্ব”-তে, আর কাজটি মানুষের হাত থেকে সফটওয়্যারের হাতে গেছে। কিন্তু নিয়মগুলো একই — আর সেগুলো না বুঝলে সফটওয়্যারের ফল যাচাই করা যায় না।
প্র ০৫Karnaugh-এর ১৯৫৩ সালের ম্যাপ মানুষের চোখের জন্য, Quine–McCluskey কম্পিউটারের জন্য। কেন দুই রকম পদ্ধতি লাগল, আর বড় সমস্যা কেন এত কঠিন?
১৯৫২ সালে Edward Veitch একটি ছকে truth table সাজানোর ধারণা দেন। পরের বছর, ১৯৫৩ সালে, Bell Labs-এর Maurice Karnaugh সেটিকে উন্নত করেন — সারি আর কলাম Gray code ক্রমে সাজিয়ে, যাতে পাশাপাশি খোপ মানেই একটি চলকের তফাত। মানুষের চোখ আকৃতি চিনতে খুব দক্ষ, তাই K-map-এ পাশাপাশি 1-এর দল দেখামাত্র চোখে পড়ে। ৩–৪ চলকে এটি অসাধারণ কার্যকর, আর তাই আজও পাঠ্যবই আর পরীক্ষায় এটিই শেখানো হয়।
কিন্তু ৫ চলকে লাগে ৩২ খোপ (দুটি ৪×৪ ছক একটির ওপর আরেকটি কল্পনা করতে হয়), ৬ চলকে ৬৪ খোপ — তখন “পাশাপাশি” কোনটি, তা চোখে দেখা কঠিন হয়ে যায়। বাস্তব সার্কিটে চলক থাকে ডজন ডজন। প্রায় একই সময়ে দার্শনিক-যুক্তিবিদ Willard Van Orman Quine (১৯৫২) আর পরে প্রকৌশলী Edward McCluskey (১৯৫৬) একটি সারণিভিত্তিক পদ্ধতি দেন। এতে minterm-গুলোকে তাদের 1-এর সংখ্যা অনুযায়ী দলে সাজিয়ে, যে দুটি পদ মাত্র এক bit-এ আলাদা তাদের জোড়া মিলিয়ে ছোট পদ বানানো হয় — বারবার, যতক্ষণ আর মেলানো না যায়। তারপর একটি সারণি থেকে সবচেয়ে কম পদ বেছে নেওয়া হয়। কোনো ছবি লাগে না, শুধু নিয়ম — ঠিক যা কম্পিউটার ভালো পারে।
তবুও সমস্যা থেকে যায়: চলক বাড়লে পদ্ধতিটির কাজ লাফিয়ে লাফিয়ে বাড়ে। কম্পিউটার বিজ্ঞানে প্রমাণিত হয়েছে, সবচেয়ে ছোট SOP খুঁজে বের করা সাধারণভাবে একটি NP-hard সমস্যা — অর্থাৎ বড় আকারে নিখুঁত উত্তর দ্রুত বের করার কোনো জানা উপায় নেই। তাই ১৯৮০-র দশকে IBM আর University of California, Berkeley-র গবেষকরা Espresso-র মতো heuristic প্রোগ্রাম তৈরি করেন, যা নিখুঁত না হলেও খুব কাছাকাছি উত্তর অনেক দ্রুত দেয়। আজকের চিপ-নকশার সফটওয়্যার এমন কৌশলেরই উত্তরসূরি, আর সেগুলো শুধু দুই স্তরের SOP নয়, বহু স্তরের সার্কিট নিয়েও কাজ করে।
মূল উপলব্ধি: একই সমস্যার জন্য মানুষের চোখের উপযোগী আর যন্ত্রের উপযোগী পদ্ধতি আলাদা হয়। আর কিছু সমস্যা এমন কঠিন যে “নিখুঁত” ছেড়ে “যথেষ্ট ভালো, দ্রুত” বেছে নেওয়াই বুদ্ধিমান প্রকৌশল।
অনুশীলন
খাতা-কলম নিয়ে বসুন। প্রতিটি উত্তর শেষে truth table বা উপরের টুল দিয়ে মিলিয়ে নিন।
-
truth table বানান: F = A′B + AC-এর পূর্ণ truth table লিখুন (মাঝের কলাম A′, A′B, AC-সহ)। কোন কোন সারিতে F = 1? Σm আকারে লিখুন।
৩ চলক, ৮ সারি। A′B = 1 শুধু A = 0, B = 1 হলে — সারি 010 আর 011. AC = 1 শুধু A = 1, C = 1 হলে — সারি 101 আর 111. তাই F = 1 সারি 2, 3, 5, 7-এ; বাকি সারি 000, 001, 100, 110-এ F = 0. উত্তর: F = Σm(2, 3, 5, 7), আর POS-এ ΠM(0, 1, 4, 6).
-
সরল করুন: (ক) F = XY + X′Z + YZ (খ) F = (A + B)′ + (A′B). প্রতিটি লাইনে সূত্রের নাম লিখুন।
(ক) YZ = YZ(X + X′) = XYZ + X′YZ [পূরক, বণ্টন]। তাই F = XY + XYZ + X′Z + X′YZ = XY(1 + Z) + X′Z(1 + Y) = XY + X′Z [1 + যা-কিছু = 1] — consensus theorem, পর্বের উদাহরণ ৪-এর মতো।
(খ) (A + B)′ = A′B′ [ডি মরগান]। F = A′B′ + A′B = A′(B′ + B) [বণ্টন] = A′·1 = A′ [পূরক, অভেদ]। যাচাই: A = 0 হলে F = 1, A = 1 হলে দুটি পদই 0.
-
প্রমাণ করুন দুইভাবে: (A + B)(A + C) = A + BC — একবার বীজগাণিতিকভাবে, একবার ৮ সারির truth table দিয়ে। তারপর ব্যাখ্যা করুন, সাধারণ সংখ্যায় এটি কেন সত্য নয়।
বীজগাণিতিক প্রমাণ অংশ ৪-এ আছে: গুণ করে AA + AC + AB + BC, তারপর AA = A আর A(1 + C + B) = A. truth table-এ দুই পক্ষের কলাম হবে 0 0 0 1 1 1 1 1 (সারি 000 থেকে 111) — A = 1 হলে দুই পক্ষই 1, A = 0 হলে দুই পক্ষই BC. সাধারণ সংখ্যায় a·a = a² ≠ a আর 1 + c ≠ 1, তাই ধাপ দুটি অচল — যেমন a = 2, b = 3, c = 4-এ বাম পক্ষ ৩০, ডান পক্ষ ১৪.
-
বাস্তবে বুলিয়ান: (ক) “ধান চাষ” নিয়ে এমন লেখা খুঁজুন যাতে “বন্যা” অথবা “খরা” আছে, কিন্তু “ভারত” নেই — Google-এ কী লিখবেন, আর বুলিয়ান রাশিতে কী হবে? (খ) Excel-এ: গণিতে (B2) ৮০ বা তার বেশি অথবা বিজ্ঞান মেলায় পুরস্কার (C2 = "হ্যাঁ") থাকলে “বৃত্তি”, নইলে “—” — সূত্রটি লিখুন।
(ক) Google-এ:
"ধান চাষ" (বন্যা OR খরা) -ভারত. বুলিয়ানে P = ধান চাষ, Q = বন্যা, R = খরা, S = ভারত হলে F = P·(Q + R)·S′. বন্ধনী না দিলে অগ্রাধিকারের কারণে অর্থ বদলে যেতে পারত।(খ)
=IF(OR(B2>=80, C2="হ্যাঁ"), "বৃত্তি", "—"). ডি মরগান দিয়ে উল্টো করে লিখলে:=IF(AND(B2<80, C2<>"হ্যাঁ"), "—", "বৃত্তি")— একই ফল দেয়।
নিজেকে যাচাই করুন
ভুল হলে কারণসহ ব্যাখ্যা পাবেন, আবার চেষ্টাও করতে পারবেন।
ক্রমtruth table থেকে সরল SOP রাশি পাওয়ার ধাপগুলো সাজান (▲▼ চেপে সরান)
- সব চলকের সব সমন্বয় (2ⁿ সারি) দিয়ে truth table লেখা
- যে সারিগুলোতে আউটপুট 1, সেগুলো বাছাই করা
- প্রতিটি বাছাই করা সারির minterm লেখা (0 হলে প্রাইম)
- minterm-গুলো OR দিয়ে জুড়ে Σm রূপ লেখা
- সূত্র বা K-map দিয়ে রাশিটি সরল করা
বুলিয়ান অ্যালজেব্রায় A + 1-এর মান কত?
- A
- 1
- 0
- A′
ডি মরগানের উপপাদ্য অনুযায়ী (A·B)′ কোনটির সমান?
- A′ + B′
- A′·B′
- A + B
- (A + B)′
৪টি ইনপুট চলক থাকলে একটি পূর্ণ truth table-এ কয়টি সারি লাগে?
- ৪
- ৮
- ১২
- ১৬
বুলিয়ান রাশি A + AB সরল করলে কী পাওয়া যায়?
- AB
- A + B
- A
- B
তিন চলকের (A, B, C) truth table-এর যে সারিতে A = 1, B = 0, C = 1, তার minterm কোনটি?
- A′BC′
- AB′C
- A + B′ + C
- ABC
দ্বৈত নীতি (duality principle) অনুযায়ী A + 0 = A সূত্রের dual কোনটি?
- A·0 = 0
- A + 1 = 1
- A′ + 1 = A
- A·1 = A
শব্দকোষ
লেখার মধ্যে ডটেড দাগ দেওয়া শব্দে মাউস রাখুন বা চাপুন — অর্থ দেখাবে। এই পর্বের সব নতুন শব্দ এখানে একসাথে:
মনে রাখুন
- চলক শুধু 0/1, অপারেশন তিনটি: AND (·) — সব 1 হলে 1; OR (+) — একটি 1 হলেই 1; NOT (′) — উল্টায়। অগ্রাধিকার: বন্ধনী → NOT → AND → OR. বুলিয়ানে 1 + 1 = 1.
- truth table-এ 2n সারি; সব সারি মিললে দুটি রাশি সমান — এটাই সবচেয়ে নিশ্চিত প্রমাণ।
- মূল সূত্র: A + A = A, A·A′ = 0, A + 1 = 1, A + AB = A, A + A′B = A + B, A + BC = (A + B)(A + C); প্রতিটির dual-ও সত্য।
- ডি মরগান: (A + B)′ = A′B′, (AB)′ = A′ + B′ — দাগ ভাঙুন, চিহ্ন বদলান। Dual আর complement এক নয়।
- 1-সারি → minterm → SOP (Σm); 0-সারি → maxterm → POS (ΠM); K-map-এ পাশাপাশি 1-এর দল একটি চলক মুছে দেয়। AI-এর সরলীকরণ সবসময় truth table-এ যাচাই করুন।
আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ
- পর্ব ২০ · লজিক গেট, truth table আর universal gateপরবর্তী পর্ববুলিয়ান রাশিকে বাস্তব সার্কিটে রূপ দেওয়া।
- কম্পিউটার ফান্ডামেন্টালস ও ICT · কোর্স হোম৫৫টি পর্বপুরো কোর্সের রোডম্যাপ — কোন পর্ব কখন।
- Computer Architecture & Digital Logicগভীরে যানK-map, combinational আর sequential সার্কিটের পূর্ণ নকশা।
- C প্রোগ্রামিংপাশের ট্র্যাক&&, ||, ! আর bitwise অপারেটরে বুলিয়ান লজিক হাতে-কলমে।