Foundations of AI: Agents and Search
AI-সংক্রান্ত প্রশ্ন থাকা প্রায় প্রতিটি IT চাকরির পরীক্ষা এখান থেকেই শুরু হয়: AI-এর সংজ্ঞা, Turing test, AI বনাম ML বনাম DL, agent-এর প্রকারভেদ, PEAS, এবং সবচেয়ে গুরুত্বপূর্ণ search — BFS/DFS complexity-র টেবিল ও f = g + h সহ A*। BSCS AP 17.01.2026-এ A* বনাম BFS নিয়ে পূর্ণ ১০ নম্বরের প্রশ্ন এসেছে (§১.৮)। McCarthy, admissible heuristic, forward/backward chaining ও fuzzy operator নিয়ে MCQ সহজ নম্বর। এই অধ্যায়ের টেবিলগুলো মুখস্থ রাখুন।
১.১AI কী? — সংজ্ঞা ও Turing Test
Artificial Intelligence (AI) হলো কম্পিউটার বিজ্ঞানের সেই শাখা যা এমন যন্ত্র ও প্রোগ্রাম তৈরি করে যেগুলো সাধারণত মানুষের বুদ্ধিমত্তা লাগে এমন কাজ করতে পারে — উপলব্ধি (perceiving), যুক্তি (reasoning), শেখা, ভাষা বোঝা, পরিকল্পনা ও কাজ করা। "Artificial Intelligence" শব্দটির প্রবর্তক John McCarthy (Dartmouth proposal, ১৯৫৫–৫৬) একে বলেছেন "the science and engineering of making intelligent machines"।
প্রচলিত পাঠ্যবই (Russell & Norvig, Artificial Intelligence: A Modern Approach) সংজ্ঞাগুলোকে দুটি অক্ষে ভাগ করে: চিন্তা (thinking) বনাম কাজ (acting), এবং সাফল্য মাপা হয় মানুষের সাথে তুলনায় বনাম rationality (আদর্শ মান — "সঠিক কাজটি করা") দিয়ে।
| মানুষের মতো (Human-like) | যৌক্তিক (Rational) | |
|---|---|---|
| চিন্তা | Thinking humanly — cognitive modelling: মানুষ যেভাবে চিন্তা করে সেভাবে চিন্তা করা প্রোগ্রাম (cognitive science, মনোবিজ্ঞানের পরীক্ষা, brain imaging) | Thinking rationally — "laws of thought": formal logic দিয়ে সঠিক যুক্তি (Aristotle-এর syllogism → logic programming) |
| কাজ | Acting humanly — Turing test পদ্ধতি: এমন আচরণ যাতে মানুষ তাকে মানুষ থেকে আলাদা করতে না পারে | Acting rationally — rational agent পদ্ধতি: সর্বোত্তম (প্রত্যাশিত) ফলাফল অর্জনের জন্য কাজ করা। পাঠ্যবই ও আধুনিক AI এটিই অনুসরণ করে |
Turing Test
Alan Turing ১৯৫০ সালে তাঁর "Computing Machinery and Intelligence" প্রবন্ধে একে Imitation Game নামে প্রস্তাব করেন। একজন মানব প্রশ্নকর্তা (interrogator) লেখার মাধ্যমে একজন লুকানো মানুষ ও একটি লুকানো যন্ত্রের সাথে কথা বলেন। প্রশ্নকর্তা যদি নির্ভরযোগ্যভাবে বলতে না পারেন কোনটি যন্ত্র, তবে যন্ত্রটি উত্তীর্ণ। উত্তীর্ণ হতে কম্পিউটারের লাগবে: natural language processing, knowledge representation, automated reasoning ও machine learning। Total Turing Test-এ ভিডিও সংকেত ও বাস্তব বস্তুও থাকে, তাই এতে computer vision ও robotics-ও লাগে।
Chinese Room (John Searle, ১৯৮০) — যুক্তি দেয় যে symbol manipulation দিয়ে টেস্টে উত্তীর্ণ হওয়া মানেই প্রকৃত বোঝা নয়। weak AI (বুদ্ধিমত্তার অনুকরণ) বনাম strong AI (প্রকৃত মন আছে) বিতর্কের ভিত্তি।
• "Rational" মানে প্রত্যাশিত performance measure সর্বোচ্চ করা, নিখুঁত বা সর্বজ্ঞ (omniscient) হওয়া নয়।
• AI-এর জনক (শব্দ) = McCarthy; Turing = তাত্ত্বিক কম্পিউটার বিজ্ঞানের জনক ও টেস্টের প্রবর্তক।
১.২AI-এর প্রকারভেদ: Narrow, General, Super
| প্রকার (সক্ষমতা অনুযায়ী) | অর্থ | অবস্থা / উদাহরণ |
|---|---|---|
| Narrow AI (ANI, weak AI) | একটি নির্দিষ্ট কাজ বা সীমিত কয়েকটি কাজে দক্ষ; সম্পর্কহীন কাজে দক্ষতা স্থানান্তর করতে পারে না | আজকের সব ব্যবহৃত AI: face unlock, spam filter, fraud detection, chess engine, LLM chat assistant |
| General AI (AGI, strong AI) | যেকোনো বুদ্ধিবৃত্তিক কাজে মানুষের সমান বোঝা, শেখা ও জ্ঞান প্রয়োগের ক্ষমতা | অর্জিত হয়নি; গবেষণার লক্ষ্য (⚠ আজকের বড় মডেলগুলো "AGI-এর পথে ধাপ" কিনা তা বিতর্কিত) |
| Super AI (ASI) | সৃজনশীলতা ও সামাজিক দক্ষতাসহ প্রতিটি ক্ষেত্রে সেরা মানুষকেও ছাড়িয়ে যায় | কাল্পনিক; AI safety ও নৈতিকতায় আলোচিত |
আরেকটি জনপ্রিয় শ্রেণিবিভাগ (কার্যকারিতা অনুযায়ী): Reactive machines (স্মৃতি নেই, যেমন Deep Blue) → Limited memory (সাম্প্রতিক ডেটা ব্যবহার করে, যেমন self-driving car, বেশিরভাগ ML মডেল) → Theory of mind (আবেগ ও বিশ্বাস বোঝে — গবেষণা পর্যায়ে) → Self-aware (কাল্পনিক)।
১.৩AI বনাম ML বনাম DL বনাম Generative AI
| পরিভাষা | সংজ্ঞা | মূল বিষয় |
|---|---|---|
| AI | যেকোনো কৌশল যা যন্ত্রকে বুদ্ধিমানের মতো আচরণ করায় | হাতে লেখা rule ও search-ও এর অন্তর্ভুক্ত — শেখার প্রয়োজন নেই |
| ML | স্পষ্টভাবে প্রোগ্রাম না করে ডেটা থেকে প্যাটার্ন শেখে এমন সিস্টেম। Tom Mitchell: কোনো প্রোগ্রাম task T ও performance measure P-এর সাপেক্ষে experience E থেকে শেখে, যদি E দিয়ে T-তে তার performance (P দিয়ে মাপা) বাড়ে | Supervised, unsupervised, reinforcement learning; feature প্রায়ই হাতে তৈরি |
| DL | বহু hidden layer-বিশিষ্ট artificial neural network ব্যবহারকারী ML | কাঁচা ডেটা থেকে নিজেই feature শেখে; বিপুল ডেটা ও GPU লাগে |
| Generative AI | যে DL মডেল প্রশিক্ষণ-ডেটার মতো নতুন কনটেন্ট তৈরি করে (text, image, audio, code) | LLM (GPT, Claude, Gemini, Llama) Transformer-এর উপর তৈরি; বিপরীতে discriminative মডেল শ্রেণিবিভাগ/পূর্বাভাস করে |
১.৪AI-এর সংক্ষিপ্ত ইতিহাস
| বছর | মাইলফলক |
|---|---|
| ১৯৪৩ | McCulloch ও Pitts — artificial neuron-এর প্রথম গাণিতিক মডেল |
| ১৯৫০ | Turing — "Computing Machinery and Intelligence", Imitation Game (Turing test) |
| ১৯৫৬ | Dartmouth workshop (McCarthy, Minsky, Shannon, Rochester) — একটি গবেষণাক্ষেত্র হিসেবে AI-এর জন্ম; "Artificial Intelligence" শব্দ |
| ১৯৫৭–৫৮ | Rosenblatt-এর Perceptron; McCarthy তৈরি করেন LISP (১৯৫৮) |
| ১৯৬০-এর দশক | ELIZA chatbot (Weizenbaum); DENDRAL expert system (রসায়ন) |
| ১৯৬৯ | Minsky ও Papert-এর বই Perceptrons single-layer perceptron-এর সীমাবদ্ধতা দেখায় (যেমন XOR) |
| ১৯৭০-এর দশক | Prolog (১৯৭২); MYCIN চিকিৎসা expert system; প্রথম "AI winter" — অতিরিক্ত প্রতিশ্রুতির পর অর্থায়ন হ্রাস |
| ১৯৮০-এর দশক | বাণিজ্যিক expert system-এর জোয়ার (যেমন XCON/R1); ১৯৮৬-এ backpropagation জনপ্রিয় হয় (Rumelhart, Hinton, Williams); ১৯৮০-এর শেষ–১৯৯০-এর শুরুতে দ্বিতীয় AI winter |
| ১৯৯৭ | IBM Deep Blue বিশ্ব দাবা চ্যাম্পিয়ন Garry Kasparov-কে হারায় |
| 2011 | IBM Watson কুইজ শো Jeopardy! জেতে |
| 2012 | AlexNet (GPU-তে deep CNN) বড় ব্যবধানে ImageNet জেতে — deep learning জোয়ারের শুরু |
| 2016 | DeepMind-এর AlphaGo Go চ্যাম্পিয়ন Lee Sedol-কে হারায় |
| 2017 | "Attention Is All You Need" — Transformer architecture (LLM-এর ভিত্তি) |
| 2022 | ChatGPT জনসাধারণের জন্য উন্মুক্ত — generative AI মূলধারায় আসে |
| 2024 | পদার্থবিজ্ঞানে নোবেল Hopfield ও Hinton (neural network); রসায়নে Baker-এর সাথে যৌথভাবে Hassabis ও Jumper (AlphaFold — protein structure prediction) |
১.৫Intelligent Agent
Agent হলো এমন যেকোনো কিছু যা sensor-এর মাধ্যমে পরিবেশ উপলব্ধি (perceive) করে এবং actuator-এর মাধ্যমে তার উপর কাজ (act) করে। Agent function প্রতিটি percept sequence-কে একটি action-এ map করে; agent program একে একটি ভৌত architecture-এ বাস্তবায়ন করে (Agent = Architecture + Program)।
Rational agent: প্রতিটি সম্ভাব্য percept sequence-এর জন্য এমন action বেছে নেয় যা percept sequence-এর প্রমাণ ও নিজস্ব অন্তর্নির্মিত জ্ঞানের ভিত্তিতে তার performance measure সর্বোচ্চ করবে বলে প্রত্যাশিত। Rationality নির্ভর করে (১) performance measure, (২) পরিবেশ সম্পর্কে পূর্বজ্ঞান, (৩) সম্ভাব্য action, (৪) এখন পর্যন্ত percept sequence-এর উপর।
PEAS — task environment নির্দিষ্ট করা
| Agent | Performance measure | Environment | Actuators | Sensors |
|---|---|---|---|---|
| স্বয়ংক্রিয় ট্যাক্সি | নিরাপদ, দ্রুত, আইনসম্মত, আরামদায়ক যাত্রা; মুনাফা | রাস্তা, ট্রাফিক, পথচারী, যাত্রী | Steering, accelerator, brake, horn, display | Camera, LiDAR/radar, GPS, speedometer |
| চিকিৎসা রোগনির্ণয় সিস্টেম | সুস্থ রোগী, কম খরচ | রোগী, হাসপাতাল, কর্মী | প্রশ্ন, পরীক্ষা, রোগনির্ণয়, চিকিৎসার display | উপসর্গ ও পরীক্ষার ফলের keyboard entry |
| ব্যাংকের fraud-detection agent | ধরা পড়া জালিয়াতি, কম false alarm, গ্রাহকের কম ভোগান্তি | Card/mobile/internet-banking লেনদেন, গ্রাহক, প্রতারক | Approve, decline, hold, OTP/alert পাঠানো, case খোলা | লেনদেনের stream, device/location ডেটা, গ্রাহকের ইতিহাস |
| ব্যাংকের customer-service chatbot | সঠিক উত্তর, সমাধানের হার, সন্তুষ্টি | গ্রাহক, core-banking ডেটা, FAQ ভান্ডার | Text/voice উত্তর, ticket তৈরি, মানুষের কাছে হস্তান্তর | লেখা/বলা বার্তা, account ডেটা |
Task environment-এর বৈশিষ্ট্য
| মাত্রা | অর্থ |
|---|---|
| Fully বনাম partially observable | Sensor কি প্রতি মুহূর্তে সম্পূর্ণ প্রাসঙ্গিক অবস্থা দেয়? (Poker: প্রতিপক্ষের তাস লুকানো → partial) |
| Deterministic বনাম stochastic | পরবর্তী অবস্থা কি বর্তমান অবস্থা ও action দিয়ে সম্পূর্ণ নির্ধারিত? (ছক্কা, ট্রাফিক → stochastic) |
| Episodic বনাম sequential | Episodic: প্রতিটি সিদ্ধান্ত স্বাধীন (প্রতিটি ছবি শ্রেণিবদ্ধ করা)। Sequential: বর্তমান action ভবিষ্যৎকে প্রভাবিত করে (দাবা, গাড়ি চালানো) |
| Static বনাম dynamic | Agent চিন্তা করার সময় কি পরিবেশ বদলায়? Semi-dynamic: পরিবেশ স্থির কিন্তু সময়ের সাথে স্কোর বদলায় (ঘড়িসহ দাবা) |
| Discrete বনাম continuous | সসীম সংখ্যক আলাদা অবস্থা/action (দাবা) বনাম বাস্তব-মানের (steering angle, গতি) |
| Single বনাম multi-agent; known বনাম unknown | অন্য agent কি প্রতিযোগিতা/সহযোগিতা করছে? Agent কি নিয়ম (action-এর ফলাফল) জানে? |
| Environment | Observable | Agents | Deterministic | Episodic | Static | Discrete |
|---|---|---|---|---|---|---|
| Crossword puzzle | Fully | Single | Deterministic | Sequential | Static | Discrete |
| ঘড়িসহ দাবা | Fully | Multi | Deterministic | Sequential | Semi | Discrete |
| Poker | Partially | Multi | Stochastic | Sequential | Static | Discrete |
| ট্যাক্সি চালানো | Partially | Multi | Stochastic | Sequential | Dynamic | Continuous |
| Image classification | Fully | Single | Deterministic | Episodic | Semi | Continuous |
সবচেয়ে কঠিন ক্ষেত্র হলো partially observable, multi-agent, stochastic, sequential, dynamic, continuous ও unknown — যেমন বাস্তব জগতে গাড়ি চালানো।
Agent-এর প্রকারভেদ (সরলতম থেকে সবচেয়ে সক্ষম)
| Agent-এর ধরন | কীভাবে action বেছে নেয় | উদাহরণ |
|---|---|---|
| Simple reflex | শুধু বর্তমান percept-এর উপর condition–action (if–then) rule; কোনো স্মৃতি নেই। শুধু fully observable পরিবেশে কাজ করে; নইলে অসীম loop-এ পড়তে পারে | Thermostat; স্বয়ংক্রিয় দরজা; vacuum: "if dirty then suck" |
| Model-based reflex | একটি internal state রাখে, যা পৃথিবী কীভাবে বদলায় ও action কী প্রভাব ফেলে তার model দিয়ে হালনাগাদ হয়; partial observability সামলায় | যে গাড়ি blind spot-এ থাকা অন্য গাড়িকে মনে রাখে |
| Goal-based | একটি লক্ষ্য (goal) থাকে; জিজ্ঞেস করে "এই action sequence কি লক্ষ্যে পৌঁছাবে?" — search ও planning ব্যবহার করে | GPS route finder; puzzle solver |
| Utility-based | একটি utility function অবস্থা কতটা ভালো তা স্কোর করে; সর্বোচ্চ প্রত্যাশিত utility-র action বেছে নেয়; trade-off ও অনিশ্চয়তা সামলায় | সময়, টোল ও নিরাপত্তার ভারসাম্য রেখে রুট; loan-pricing সিস্টেম |
| Learning | অভিজ্ঞতা থেকে উন্নত হয়। চারটি অংশ: performance element (action বেছে নেয়), learning element (উন্নতি করে), critic (performance standard-এর সাপেক্ষে feedback দেয়), problem generator (অনুসন্ধানমূলক action প্রস্তাব করে) | "mark as spam" থেকে শেখা spam filter; নতুন case দিয়ে পুনঃপ্রশিক্ষিত fraud মডেল |
১.৬Search হিসেবে সমস্যা সমাধান
একটি goal-based agent শুরু থেকে লক্ষ্যে পৌঁছানোর action sequence খুঁজে (search) সমস্যা সমাধান করে। একটি সুসংজ্ঞায়িত সমস্যার পাঁচটি অংশ:
- Initial state — agent কোথা থেকে শুরু করে (যেমন ঢাকায়)।
- Actions — একটি অবস্থায় কী করা যায় (পাশের শহরে যাওয়া)।
- Transition model — action-এর ফলে যে অবস্থা হয়।
- Goal test — এটি কি লক্ষ্য অবস্থা? (চট্টগ্রামে কিনা?)
- Path cost — ধাপের খরচের যোগফল (কিমি, সময়, টাকা)।
Initial state, actions ও transition model মিলে state space তৈরি করে — একটি graph যার node হলো state আর edge হলো action। Solution হলো initial state থেকে goal পর্যন্ত একটি path; optimal solution-এর path cost সর্বনিম্ন। Search algorithm একটি search tree তৈরি করে: frontier (open list) তৈরি হয়েছে কিন্তু বিস্তার হয়নি এমন node রাখে; explored set (closed list) একই state বারবার দেখা এড়ায় (graph search)।
Search কৌশলের মাপকাঠি: Completeness (সমাধান থাকলে সবসময় পায়?), Optimality (সর্বনিম্ন-খরচের সমাধান পায়?), Time complexity (তৈরি হওয়া node), Space complexity (মেমরিতে রাখা node)। প্রকাশ করা হয় b = branching factor, d = সবচেয়ে অগভীর goal-এর গভীরতা, m = state space-এর সর্বোচ্চ গভীরতা দিয়ে।
১.৭Uninformed (Blind) Search
Uninformed কৌশল শুধু সমস্যার সংজ্ঞা ব্যবহার করে — কোনো state লক্ষ্যের কত কাছে সে জ্ঞান নেই।
| কৌশল | ধারণা | Frontier data structure |
|---|---|---|
| Breadth-First (BFS) | সবচেয়ে অগভীর node আগে বিস্তার, স্তরে স্তরে | FIFO queue |
| Uniform-Cost (UCS) | সর্বনিম্ন path cost g(n)-এর node আগে বিস্তার (Dijkstra-র মতো) | g(n)-এর উপর priority queue |
| Depth-First (DFS) | সবচেয়ে গভীর node আগে বিস্তার; dead end-এ backtrack | LIFO stack (বা recursion) |
| Depth-Limited (DLS) | Depth limit l সহ DFS; গভীরতা l-এর node-কে leaf ধরা হয় | LIFO stack |
| Iterative Deepening (IDS) | goal না পাওয়া পর্যন্ত l = 0, 1, 2, … দিয়ে DLS চালানো | LIFO stack |
| Bidirectional | শুরু থেকে সামনে ও goal থেকে পেছনে একসাথে খোঁজা; দুটি মিললে থামা | দুটি frontier |
| মাপকাঠি | BFS | UCS | DFS | DLS | IDS | Bidirectional |
|---|---|---|---|---|---|---|
| Complete? | হ্যাঁ¹ | হ্যাঁ¹,² | না | না (l < d হলে) | হ্যাঁ¹ | হ্যাঁ¹,⁴ |
| Optimal? | হ্যাঁ³ | হ্যাঁ | না | না | হ্যাঁ³ | হ্যাঁ³,⁴ |
| Time | O(bd) | O(b1+⌊C*/ε⌋) | O(bm) | O(bl) | O(bd) | O(bd/2) |
| Space | O(bd) | O(b1+⌊C*/ε⌋) | O(bm) | O(bl) | O(bd) | O(bd/2) |
¹ b সসীম হলে; ² প্রতিটি ধাপের খরচ ≥ কোনো ε > 0 হলে; ³ সব ধাপের খরচ সমান হলে; ⁴ দুই দিকেই BFS হলে। C* = optimal solution-এর খরচ। পুনরাবৃত্ত state এড়ালে (graph search) সসীম state space-এ DFS complete, কিন্তু কখনোই optimal নয়।
IDS প্রতিবার উপরের স্তরগুলো আবার তৈরি করে: d·b + (d−1)·b² + … + 1·bd = 50 + 400 + 3,000 + 20,000 + 100,000 = 123,450টি node — সময় মাত্র প্রায় ১১% বেশি, কিন্তু মেমরি মাত্র O(bd) ≈ 50টি node।
সিদ্ধান্ত: state space বড় এবং সমাধানের গভীরতা অজানা হলে IDS-ই পছন্দের uninformed পদ্ধতি।
• DFS-এর মেমরি কম (O(bm)), কিন্তু অসীম বা চক্রযুক্ত space-এ চিরকাল চলতে পারে।
• সব ধাপের খরচ সমান হলে UCS, BFS-এর মতো আচরণ করে।
১.৮Informed (Heuristic) Search ও A*
Informed search একটি heuristic function h(n) ব্যবহার করে = node n থেকে goal পর্যন্ত সবচেয়ে সস্তা path-এর আনুমানিক খরচ (h(goal) = 0)। এটি evaluation function f(n) দিয়ে node বেছে নেয়।
| Algorithm | f(n) | Complete? | Optimal? | মন্তব্য |
|---|---|---|---|---|
| Uniform-cost (তুলনার জন্য) | g(n) | হ্যাঁ | হ্যাঁ | লক্ষ্যের দিক উপেক্ষা করে |
| Greedy best-first | h(n) | না (সসীম space-এ graph search হলে হ্যাঁ) | না | দ্রুত, সোজা লক্ষ্যের দিকে যায়; বিভ্রান্ত হতে পারে |
| A* | g(n) + h(n) | হ্যাঁ¹ | h admissible হলে হ্যাঁ (tree search) / consistent হলে (graph search) | একই h-বিশিষ্ট optimal algorithm-গুলোর মধ্যে সবচেয়ে কম node বিস্তার করে; প্রধান দুর্বলতা মেমরি (exponential) |
¹ সসীম branching factor ও ধাপের খরচ ≥ ε > 0 হলে। মেমরি-সাশ্রয়ী রূপ: IDA* (iterative-deepening A*), SMA* (simplified memory-bounded A*)।
Admissible: প্রতিটি n-এর জন্য h(n) ≤ h*(n) (প্রকৃত খরচ h*-এর চেয়ে কখনো বেশি অনুমান করে না)। উদাহরণ: মানচিত্রে সরলরেখার দূরত্ব।
Consistent (monotone): প্রতিটি successor n′-এর জন্য h(n) ≤ c(n, n′) + h(n′) (triangle inequality)। Consistent ⇒ admissible (উল্টোটা নয়)।
বিশেষ ক্ষেত্র: h = 0 ⇒ A* = UCS; শুধু f = h ⇒ greedy; f = g + w·h, w > 1 ⇒ weighted A* (দ্রুত, optimality হারাতে পারে)।
h₁ = ভুল জায়গার টাইল (misplaced tiles): 5, 1, 2 ভুল জায়গায় → h₁ = 3।
h₂ = Manhattan distance (প্রতিটি টাইলের সারি + কলাম চালের যোগফল): 5 → 2, 1 → 1, 2 → 1 → h₂ = 4।
দুটিই admissible (প্রতিটি ভুল টাইলের অন্তত একটি চাল, এবং অন্তত তার Manhattan distance সমান চাল লাগে)। প্রতিটি state-এ h₂ ≥ h₁, তাই h₂, h₁-কে dominate করে — h₂-সহ A* কখনো বেশি node বিস্তার করে না। নিয়ম: সবচেয়ে বড় admissible heuristic বেছে নিন।
A*-এর ধাপে ধাপে উদাহরণ
▶ ধাপে ধাপে অ্যানিমেশন: A* vs greedy best-first on this graph
G পর্যন্ত প্রকৃত সর্বনিম্ন খরচ: C = 3, B = 5, A = 7, S = 8, তাই প্রতিটি h ≤ প্রকৃত খরচ (admissible); প্রতিটি edge-এ h(n) ≤ c + h(n′)-ও সত্য (consistent)।
| ধাপ | বিস্তার (সর্বনিম্ন f) | নতুন / হালনাগাদ node: g + h = f | ধাপের পর frontier |
|---|---|---|---|
| 0 | — | S: 0 + 7 = 7 | S(7) |
| 1 | S | A: 1 + 6 = 7; B: 4 + 4 = 8 | A(7), B(8) |
| 2 | A | A হয়ে B: 3 + 4 = 7 (8-এর চেয়ে ভালো, হালনাগাদ); C: 6 + 2 = 8; G: 13 + 0 = 13 | B(7), C(8), G(13) |
| 3 | B | B হয়ে C: 5 + 2 = 7 (8-এর চেয়ে ভালো, হালনাগাদ) | C(7), G(13) |
| 4 | C | C হয়ে G: 8 + 0 = 8 (13-এর চেয়ে ভালো, হালনাগাদ) | G(8) |
| 5 | G — goal নির্বাচিত, থামুন | Path S → A → B → C → G, খরচ 1 + 2 + 2 + 3 = 8 (optimal) | |
BFS (সবচেয়ে কম edge): A হয়ে গভীরতা 2-এ G পায়: S → A → G, খরচ 1 + 12 = 13 — সবচেয়ে কম ধাপ, সবচেয়ে বেশি খরচ।
UCS (f = g): এটিও খরচ 8 দেয়। এই ছোট graph-এ এটি A*-এর সমান node বিস্তার করে; বড় মানচিত্রে ভালো h থাকায় A* সেই বেশিরভাগ node এড়িয়ে যায় যা UCS বিস্তার করত।
নিয়ম: goal test প্রয়োগ হয় node যখন বিস্তারের জন্য নির্বাচিত হয় তখন, তৈরি হওয়ার সময় নয় — তাই ধাপ 2-এ G(13) গ্রহণ করা হয়নি।
সংক্ষিপ্ত উত্তর:
- BFS অন্ধ (blind): লক্ষ্য কোথায় তা উপেক্ষা করে স্তরে স্তরে সব দিকে ছড়ায়; O(bd) node পরীক্ষা ও মেমরিতে রাখে। কেবল সব edge-এর খরচ সমান হলে optimal।
- A* অভিমুখী (directed): সর্বনিম্ন f(n) = g(n) + h(n)-এর node বিস্তার করে। লক্ষ্য থেকে দূরে সরে যাওয়া path-এর h বড় হয়, তাই সেগুলো দেরিতে বা কখনোই বিস্তার হয় না — search space ছেঁটে ফেলা (pruning) হয় এবং খোঁজ লক্ষ্যের দিকে একটি সরু "করিডর" অনুসরণ করে। h যত নিখুঁত, তত কম node বিস্তার হয়।
- নিখুঁত পথের নিশ্চয়তা কেন না-ও থাকতে পারে: A* কেবল h admissible হলে (graph search-এ consistent-ও) optimal। দ্রুততার জন্য বাস্তব সিস্টেম প্রায়ই inadmissible বা weighted heuristic (f = g + w·h, w > 1) অথবা greedy search (f = h) ব্যবহার করে। এগুলো দ্রুত লক্ষ্যের দিকে ছোটে এবং সামান্য দীর্ঘ পথ দিতে পারে — সময় ও মেমরি বনাম optimality-র trade-off। (চিত্র ১.২: greedy খরচ 8-এর বদলে 9 পায়।)
- উদাহরণ: সরলরেখার দূরত্বকে h ধরে ঢাকা → চট্টগ্রাম: BFS রাজশাহী, ময়মনসিংহ, খুলনাও ঘাঁটে; A* মূলত কুমিল্লা–ফেনী দিক দিয়ে যায় এবং অনেক কম শহর পরীক্ষা করে।
১.৯Adversarial Search: Minimax ও Alpha-Beta Pruning
পূর্ণ তথ্যযুক্ত দুই-খেলোয়াড়ের zero-sum খেলায় (দাবা, tic-tac-toe) একজন খেলোয়াড় (MAX) utility সর্বোচ্চ করতে চায় এবং প্রতিপক্ষ (MIN) তা সর্বনিম্ন করতে চায়। Game tree-তে MAX ও MIN স্তর পর্যায়ক্রমে আসে; leaf হলো utility মানসহ terminal state।
Minimax: node-এর মান = utility (terminal হলে); সন্তানদের max (MAX node); সন্তানদের min (MIN node)। Depth-first recursion দিয়ে গণনা হয়। Time O(bm), space O(bm)। ধরে নেয় প্রতিপক্ষ সর্বোত্তমভাবে খেলে।
Alpha-beta pruning minimax-এর সমান move দেয়, কিন্তু যে শাখা সিদ্ধান্তে প্রভাব ফেলতে পারে না সেগুলো বাদ দেয়। α = path-এ এখন পর্যন্ত MAX যে সর্বোচ্চ মান নিশ্চিত করতে পারে; β = এখন পর্যন্ত MIN যে সর্বনিম্ন মান নিশ্চিত করতে পারে। α ≥ β হলে prune করুন।
দ্বিতীয় MIN node: প্রথম leaf 2, তাই এই node-এর মান ≤ 2। MAX-এর কাছে আগেই 3 আছে, তাই সে কখনো এই শাখা বেছে নেবে না (β = 2 ≤ α = 3) → leaf 4 ও 6 prune হয়।
তৃতীয় MIN node: 14, 5, 2 সবই দেখতে হয় (14 ও 5 তিনের বেশি; কেবল শেষ leaf 2 দেখায় এটি খারাপ) → মান 2।
Root = max(3, ≤2, 2) = 3 — সাধারণ minimax-এর সমান।
নিখুঁত move ordering-এ alpha-beta O(bm)-এর বদলে প্রায় O(bm/2) node পরীক্ষা করে — একই সময়ে প্রায় দ্বিগুণ গভীরে খুঁজতে পারে। বাস্তব game program নির্দিষ্ট গভীরতায় থেমে প্রকৃত utility-র বদলে একটি evaluation function (যেমন দাবায় ঘুঁটির মান গণনা) ব্যবহার করে।
১.১০Knowledge Representation ও Reasoning; Expert System
একটি knowledge-based agent formal ভাষায় বাক্যের একটি knowledge base (KB) রাখে এবং inference পদ্ধতি দিয়ে নতুন বাক্য বের করে (TELL ও ASK)।
Propositional logic
Atomic proposition (P, Q) যা হয় সত্য না হয় মিথ্যা, connective দিয়ে যুক্ত: ¬ (NOT), ∧ (AND), ∨ (OR), ⇒ (implies), ⇔ (if and only if)।
| P | Q | P ⇒ Q | P ⇔ Q |
|---|---|---|---|
| T | T | T | T |
| T | F | F | F |
| F | T | T | F |
| F | F | T | T |
De Morgan: ¬(P ∧ Q) ≡ ¬P ∨ ¬Q; ¬(P ∨ Q) ≡ ¬P ∧ ¬Q
Modus Ponens: P ⇒ Q, P ⊢ Q
Modus Tollens: P ⇒ Q, ¬Q ⊢ ¬P
Resolution: P ∨ Q, ¬Q ∨ R ⊢ P ∨ R
Tautology = সবসময় সত্য; contradiction = সবসময় মিথ্যা; satisfiable = অন্তত একটি model-এ সত্য।
First-order (predicate) logic
যোগ করে object (constant: Rahim, Sonali), predicate (Customer(x), Owns(x, y)), function (BranchOf(x)), variable ও quantifier: ∀ (for all — সকলের জন্য) ও ∃ (there exists — অন্তত একটি আছে)। এটি সব object সম্পর্কে এমন কথা বলতে পারে যা propositional logic সংক্ষেপে প্রকাশ করতে পারে না।
| বাংলা | First-order logic |
|---|---|
| ঋণ আছে এমন প্রত্যেক গ্রাহক সুদ দেন। | ∀x (Customer(x) ∧ HasLoan(x) ⇒ PaysInterest(x)) |
| কিছু ঋণ খেলাপি। | ∃x (Loan(x) ∧ Defaulted(x)) |
| কোনো গ্রাহক প্রতারক নন। | ∀x (Customer(x) ⇒ ¬Fraudster(x)) ≡ ¬∃x (Customer(x) ∧ Fraudster(x)) |
অন্যান্য উপস্থাপন: production rule (IF condition THEN action), semantic network (node ও is-a-এর মতো লেবেলযুক্ত link, inheritance সহ), frame (slot ও filler-সহ object, class-এর মতো), ontology (ধারণা ও সম্পর্কের যৌথ শব্দভান্ডার)।
Expert system
Expert system হলো এমন প্রোগ্রাম যা একটি সংকীর্ণ ক্ষেত্রে মানব বিশেষজ্ঞের জ্ঞান ধারণ করে বিশেষজ্ঞ-মানের পরামর্শ বা সিদ্ধান্ত দেয়। ক্লাসিক উদাহরণ: DENDRAL (রসায়ন), MYCIN (ব্যাকটেরিয়াজনিত সংক্রমণ নির্ণয়), XCON/R1 (কম্পিউটার অর্ডার configure করা)।
| উপাদান | ভূমিকা |
|---|---|
| Knowledge base | বিশেষজ্ঞদের কাছ থেকে নেওয়া ক্ষেত্রভিত্তিক তথ্য ও IF–THEN rule |
| Inference engine | Fact-এর উপর rule প্রয়োগ করে সিদ্ধান্তে পৌঁছায় (forward বা backward chaining); rule-এর দ্বন্দ্ব মেটায় |
| Working memory | বর্তমান case-এর fact |
| User interface | ব্যবহারকারীর কাছ থেকে প্রশ্ন/fact নেয়, পরামর্শ দেখায় |
| Explanation facility | "কেন?" ও "কীভাবে?"-এর উত্তর দেয় — ব্যবহৃত rule দেখায় |
| Knowledge acquisition | Knowledge engineer-কে rule যোগ ও হালনাগাদ করতে সাহায্য করে |
| ভিত্তি | Forward chaining | Backward chaining |
|---|---|---|
| দিক | Fact → সিদ্ধান্ত (data-driven) | Goal/অনুমান → সমর্থনকারী fact (goal-driven) |
| শুরু | জানা fact দিয়ে; যে rule-এর IF অংশ পূরণ হয় সেটিই চালায় (fire) | একটি goal দিয়ে; যে rule-এর THEN অংশ goal-এর সাথে মেলে সেটি খুঁজে তার IF অংশ প্রমাণের চেষ্টা করে |
| উপযোগী | Monitoring, control, planning, alert তৈরি | রোগনির্ণয় (diagnosis), নির্দিষ্ট প্রশ্নের উত্তর |
| উদাহরণ | Production system (যেমন CLIPS, Rete-ভিত্তিক engine) | Prolog; MYCIN |
R2: IF GoodCredit AND HasCollateral THEN ApproveLoan
Fact: Salary = 60,000; NoDefaultHistory; HasCollateral।
Forward: R1-এর IF অংশ সত্য → GoodCredit যোগ → R2-এর IF অংশ সত্য → ApproveLoan যোগ।
Backward: Goal ApproveLoan? → R2-এর জন্য লাগবে GoodCredit ও HasCollateral। HasCollateral একটি fact; GoodCredit? → R1-এর জন্য লাগবে Salary ≥ 50,000 (fact) ও NoDefaultHistory (fact) → প্রমাণিত → ApproveLoan।
১.১১Fuzzy Logic — সংক্ষেপে
প্রবর্তক Lotfi Zadeh (১৯৬৫)। ক্লাসিক্যাল (crisp) logic-এ একটি বাক্য 0 বা 1; fuzzy logic-এ থাকে সত্যের মাত্রা / membership μ ∈ [0, 1]। "উচ্চ আয়", "গরম", "ঝুঁকিপূর্ণ"-এর মতো অস্পষ্ট ধারণার জন্য উপযোগী।
OR: μA∨B = max(μA, μB)
NOT: μ¬A = 1 − μA
Rule: IF HighIncome AND GoodHistory THEN LowRisk → শক্তি = min(0.6, 0.8) = 0.6।
HighIncome OR GoodHistory = max = 0.8; NOT HighIncome = 0.4।
Fuzzy inference system: Fuzzification (membership function, যেমন triangular, দিয়ে crisp input → membership মাত্রা) → rule evaluation (min/max-সহ IF–THEN rule) → aggregation → defuzzification (fuzzy output → একটি crisp সংখ্যা, সাধারণত centroid পদ্ধতি)। প্রচলিত মডেল: Mamdani ও Sugeno। ব্যবহার: যন্ত্রপাতি ও শিল্প controller (washing machine, air conditioner), decision support, risk scoring।
১.১২বাংলাদেশের ব্যাংকিং ও সরকারি খাতে AI-এর প্রয়োগ
| ক্ষেত্র | AI কৌশল | সাধারণ ব্যবহার |
|---|---|---|
| Fraud detection ও AML | Supervised ML, anomaly detection, rule + score | Card, MFS ও internet-banking লেনদেনের real-time scoring; সন্দেহজনক প্যাটার্ন compliance পর্যালোচনার জন্য চিহ্নিত করা |
| Credit scoring | ML classification, কখনো rule-based expert system | ঋণ/SME ঋণের সিদ্ধান্ত, credit history নেই এমন গ্রাহকের জন্য বিকল্প ডেটাসহ |
| e-KYC ও onboarding | Computer vision (face matching, liveness), OCR | Selfie-কে NID ছবির সাথে মেলানো; NID/ফর্ম স্বয়ংক্রিয়ভাবে পড়া |
| গ্রাহকসেবা | NLP chatbot, LLM assistant, speech recognition (বাংলা ও ইংরেজি) | ব্যালান্স, কার্ড ব্লক, FAQ-এর ২৪/৭ উত্তর; মানুষের কাছে হস্তান্তর |
| Document processing | OCR, NLP classification ও extraction | চেক প্রসেসিং, trade-finance ডকুমেন্ট, সরকারি নথি ও আবেদন নিষ্পত্তি |
| Cybersecurity ও IT operations | Anomaly detection, log analytics | অস্বাভাবিক login ও network traffic শনাক্ত করা; ATM/server বিকলের পূর্বাভাস |
| সরকারি সেবা | Chatbot, NLP, analytics, optimisation | নাগরিক হেল্পডেস্ক, সেবা-অনুরোধ routing, পরিকল্পনা ও পূর্বাভাস |
⚠ নির্দিষ্ট ব্যাংকের প্রয়োগ, জাতীয় AI নীতির সংস্করণ ও পরিসংখ্যান প্রায়ই বদলায়; কেবল সরকারি, তারিখযুক্ত উৎস থেকে উদ্ধৃত করুন।
১.১৩লিখিত অনুশীলন
মডেল উত্তর: Rational agent প্রতিটি percept sequence-এর জন্য তার percept ও অন্তর্নির্মিত জ্ঞানের ভিত্তিতে এমন action বেছে নেয় যা performance measure সর্বোচ্চ করবে বলে প্রত্যাশিত (rational ≠ সর্বজ্ঞ)। PEAS: P — ধরা পড়া জালিয়াতি, কম false-positive হার, গ্রাহকের কম ভোগান্তি, দ্রুত সিদ্ধান্ত; E — লেনদেনের stream (card, MFS, internet banking), গ্রাহক, প্রতারক; A — approve, decline, hold, OTP/alert পাঠানো, case খোলা; S — লেনদেনের বিবরণ, device ID, location, গ্রাহকের ইতিহাস। Environment: partially observable (প্রতারকের উদ্দেশ্য লুকানো), multi-agent (প্রতারক কৌশল বদলায়), stochastic, sequential (অতীত প্যাটার্ন সিদ্ধান্তকে প্রভাবিত করে), dynamic (লেনদেন আসতেই থাকে), এবং কার্যত continuous (পরিমাণ, সময়)। সেরা নকশা: একটি learning, utility-based agent, যা জালিয়াতির ক্ষতি ও প্রকৃত গ্রাহককে আটকানোর খরচের মধ্যে ভারসাম্য রাখে।
মডেল উত্তর: §১.৭-এর টেবিল আঁকুন। BFS: complete, সমান ধাপ-খরচে optimal, O(bd) time ও space — মেমরিই সমস্যা। DFS: O(bm) space, কিন্তু অসীম/চক্রযুক্ত space-এ incomplete এবং optimal নয়। UCS: যেকোনো ধনাত্মক ধাপ-খরচে complete ও optimal, g(n) অনুযায়ী বিস্তার, O(b1+⌊C*/ε⌋)। IDS: ক্রমবর্ধমান limit দিয়ে DLS বারবার চালায় — BFS-এর মতো complete ও (সমান খরচে) optimal, DFS-এর মতো O(bd) মেমরি; অতিরিক্ত খরচ সামান্য (b = 10, d = 5: 123,450 বনাম 111,110 node)। state space বড়, সমাধানের গভীরতা অজানা ও ধাপ-খরচ সমান হলে IDS বেছে নিন।
মডেল উত্তর: MAX/MIN ও minimax মানের সংজ্ঞা (§১.৯), তারপর চিত্র ১.৩: MIN মান 3, 2, 2 → root 3। α-β-তে: প্রথম শাখার পর α = 3; দ্বিতীয় শাখায় প্রথম leaf 2 ওই MIN node-কে ≤ 2 ≤ α করে, তাই leaf 4 ও 6 prune হয়। Pruning নিরাপদ, কারণ বাদ পড়া শাখা MAX-কে কেবল এমন মান দিতে পারে যা MAX কখনো বেছে নেবে না (বা MIN কখনো হতে দেবে না) — root-এর minimax মান অপরিবর্তিত থাকে। ভালো move ordering-এ খরচ O(bm) থেকে প্রায় O(bm/2)-এ নামে, ফলে প্রোগ্রাম প্রায় দ্বিগুণ গভীরে খুঁজতে পারে।
মডেল উত্তর: সংজ্ঞা ও উদাহরণ (MYCIN, DENDRAL, XCON)। উপাদান: knowledge base, inference engine, working memory, user interface, explanation facility, knowledge-acquisition module (knowledge engineer)। Forward chaining data-driven (fact → সিদ্ধান্ত; monitoring, alert); backward chaining goal-driven (goal → fact; diagnosis, Prolog, MYCIN)। §১.১০-এর ঋণ অনুমোদনের উদাহরণ নিয়ে দুটি ধাপই দেখান। সীমাবদ্ধতা: knowledge-acquisition bottleneck, নিজের ক্ষেত্রের বাইরে ভঙ্গুর, rule রক্ষণাবেক্ষণ লাগে, ML-এর সাথে যুক্ত না হলে শেখে না।