Artificial Intelligence Notes (BTECH 3rd year)


Artificial Intelligence (AI) is a branch of computer science that focuses on creating systems capable of performing tasks that typically require human intelligence. These tasks include understanding natural language, recognizing patterns in data, making decisions, and solving problems. Despite the incredible progress made in AI research and development, there are several challenges and limitations that AI faces.

Problems of AI:

  • One of the primary challenges in AI is the complexity of human intelligence. While AI systems can excel at specific tasks, they often struggle with tasks that humans find easy, such as understanding context or common sense reasoning.
  • Another challenge is the lack of common sense knowledge in AI systems. While they may perform well within the confines of specific tasks, they often lack the ability to generalize their knowledge to new situations.
  • Ethical concerns also arise with the development of AI, including issues related to privacy, bias, and job displacement.

AI Techniques:

  • AI techniques encompass a wide range of methods and algorithms designed to simulate human intelligence. These techniques include:
    • Machine Learning: Algorithms that enable computers to learn from data and make predictions or decisions without being explicitly programmed.
    • Natural Language Processing: Techniques for analyzing and generating human language, enabling computers to understand, interpret, and respond to text or speech.
    • Computer Vision: Methods for processing and analyzing visual information, allowing computers to interpret and understand images or videos.
    • Robotics: The integration of AI techniques into robotic systems to enable autonomous perception, decision-making, and action.

Tic-Tac-Toe Problem:

  • Tic-Tac-Toe serves as a classic example problem in AI, demonstrating concepts such as game playing, search algorithms, and decision-making.
  • In this problem, two players take turns placing their symbols (X or O) on a 3×3 grid until one player wins by achieving a line of three symbols in a row, column, or diagonal, or the game ends in a draw.
  • AI techniques can be applied to develop strategies for playing Tic-Tac-Toe optimally, such as using search algorithms to explore possible moves and selecting the best move based on predefined criteria or learned patterns.

Intelligent Agents

Agents & Environment:

  • An intelligent agent is an entity that perceives its environment through sensors and acts upon it using actuators to achieve its goals.
  • The environment is the external context in which the agent operates, consisting of everything outside the agent’s control that may affect its behavior.
  • Agents interact with the environment by sensing its state, selecting actions based on their goals and knowledge, and executing those actions to affect the environment.

Nature of Environment:

  • Environments can be classified based on properties such as observability, determinism, and episodicity.
  • Observable environments allow agents to fully perceive their current state, while partially observable environments provide only partial information.
  • Deterministic environments have predictable outcomes for actions, while stochastic environments involve uncertainty.
  • Episodic environments consist of a series of distinct episodes with no influence from previous episodes, while sequential environments involve a sequence of actions and states that influence future behavior.

Structure of Agents:

  • Agents can be organized into various structures based on their internal components and decision-making processes.
  • Simple reflex agents operate based on condition-action rules, mapping percept sequences to actions without considering future consequences.
  • Model-based reflex agents maintain an internal model of the environment to anticipate the effects of their actions and make more informed decisions.
  • Goal-based agents formulate goals and plan sequences of actions to achieve those goals, considering the future consequences of their actions.
  • Utility-based agents assess the desirability of different outcomes using a utility function and select actions that maximize expected utility.

Goal-Based Agents:

  • Goal-based agents operate by defining goals or objectives they aim to achieve in the environment.
  • These agents employ reasoning and planning to generate sequences of actions that lead to the attainment of their goals.
  • Goal-based agents may use search algorithms to explore possible action sequences and select the most promising ones based on predefined heuristics or domain-specific knowledge.

Utility-Based Agents:

  • Utility-based agents evaluate the desirability of different outcomes using a utility function that assigns numerical values to states or outcomes.
  • These agents select actions that maximize expected utility, considering the potential consequences of their actions and their associated utilities.
  • Utility-based agents enable more flexible and nuanced decision-making compared to simple goal-based agents, as they can trade off between conflicting goals based on their relative importance.

Learning Agents:

  • Learning agents are capable of improving their performance over time through experience and interaction with the environment.
  • These agents learn from feedback provided by the environment or external sources, such as rewards or penalties for their actions.
  • Learning agents can employ various learning algorithms, including supervised learning, unsupervised learning, and reinforcement learning, to acquire knowledge and improve their decision-making capabilities.

Problem Solving


  • In the context of AI, a problem refers to a task or objective that an agent aims to accomplish within its environment.
  • Problems can vary widely in complexity and domain, ranging from simple puzzles to real-world challenges such as planning and decision-making.
  • Formulating problems effectively is crucial for developing AI solutions, as it defines the scope and constraints of the problem-solving process.

Problem Space & Search:

  • Problem space represents the set of all possible states and actions that an agent can encounter while attempting to solve a problem.
  • Search algorithms systematically explore the problem space to find solutions or paths leading to desired outcomes.
  • Defining the problem as a state space search involves representing states, actions, and transitions between states in a formal model, such as a graph or tree.
  • Production systems represent problem-solving knowledge as a set of production rules, each specifying a condition-action pair that triggers a specific response.
  • Problem characteristics, such as the size of the problem space, the complexity of state transitions, and the presence of constraints, influence the choice of search algorithms and problem-solving strategies.

Issues in the Design of Search Programs:

  • Designing effective search algorithms involves addressing various challenges and trade-offs, including:
    • Efficiency: Balancing the computational resources required for search with the quality of solutions obtained.
    • Completeness: Ensuring that search algorithms can find a solution if one exists within the problem space.
    • Optimality: Finding the best possible solution or an approximation to it within a reasonable time frame.
    • Heuristics: Developing informed strategies for guiding the search process toward promising areas of the problem space.
    • Memory and Space Complexity: Managing the memory and storage requirements of search algorithms, particularly for large or complex problem spaces.

Solving Problems by Searching:

In artificial intelligence, problem-solving often involves searching through a space of possible solutions to find one that satisfies certain criteria or constraints. This process typically involves the following components:

  1. Problem-Solving Agents:
    • Problem-solving agents are entities within an environment that aim to achieve specific goals by generating sequences of actions.
    • These agents perceive their environment, formulate goals or objectives, and then plan and execute actions to achieve those goals.
  2. Searching for Solutions:
    • Searching for solutions involves systematically exploring the space of possible states and actions to find a sequence of actions that leads to a desirable outcome.
    • The search process often begins with an initial state representing the current configuration of the problem and proceeds by generating successor states through actions until a goal state is reached.

Uniform Search Strategies:

Uniform search strategies are systematic methods for exploring the search space in a uniform manner, typically based on the order in which states are expanded. Here are some common uniform search strategies:

  1. Breadth-First Search (BFS):
    • Breadth-first search explores the search space level by level, expanding all successor states of the current state before moving to the next level.
    • It guarantees finding the shallowest goal state, making it complete for finite state spaces with branching factor bounded by a constant.
    • BFS uses a FIFO (First-In-First-Out) queue to store states at each level.
  2. Depth-First Search (DFS):
    • Depth-first search explores the search space by recursively exploring as far as possible along each branch before backtracking.
    • It may not find the shallowest goal state and is not complete if the state space is infinite or the search tree has cycles.
    • DFS uses a LIFO (Last-In-First-Out) stack to store states, typically implemented using recursive function calls.
  3. Depth-Limited Search (DLS):
    • Depth-limited search is a variant of depth-first search that limits the depth of exploration, preventing infinite search in infinite spaces.
    • It is often used when depth-first search encounters problems such as infinite loops in cyclic graphs.
    • DLS introduces a depth limit parameter, specifying the maximum depth to explore.
  4. Bidirectional Search:
    • Bidirectional search explores the search space from both the initial state and the goal state simultaneously, aiming to meet in the middle.
    • It typically requires knowledge of both the initial and goal states and may reduce the search space compared to unidirectional search.

Comparing Uniform Search Strategies:

  • The choice of a search strategy depends on various factors such as the size and structure of the search space, the availability of domain knowledge, and the desired properties of the solution.
  • Breadth-first search guarantees finding the shortest path in terms of the number of actions but may require significant memory for storing expanded states.
  • Depth-first search is memory-efficient but may get stuck in infinite loops or take longer to find a solution if it explores deep branches first.
  • Depth-limited search balances memory usage and completeness by limiting the depth of exploration but may miss solutions beyond the depth limit.
  • Bidirectional search can be more efficient than unidirectional search in certain cases but requires additional overhead for managing two search processes.

Heuristic Search Strategies:

Heuristic search strategies aim to improve search efficiency by incorporating domain-specific knowledge or heuristics to guide the search process. These strategies prioritize exploring promising paths likely to lead to a solution.

  1. Greedy Best-First Search:
    • Greedy best-first search selects the node that appears to be the closest to the goal based on a heuristic evaluation function.
    • It prioritizes nodes that are estimated to be most promising without considering the entire path.
    • Greedy best-first search can be highly efficient but may not always find the optimal solution.
  2. A Search:*
    • A* search combines the advantages of both uniform cost search and greedy best-first search by considering both the cost of the path from the start node and an estimate of the cost to reach the goal.
    • It uses a heuristic function that estimates the cost of the cheapest path from the current node to the goal.
    • A* search guarantees finding the optimal solution if the heuristic function is admissible (never overestimates the true cost) and consistent (satisfies the triangle inequality).
    • It efficiently explores the most promising paths first while avoiding unnecessary exploration of unpromising paths.
  3. Memory-Bounded Heuristic Search:
    • Memory-bounded heuristic search algorithms aim to balance the trade-off between search efficiency and memory usage by limiting the amount of memory allocated for storing search states.
    • These algorithms often use techniques such as iterative deepening or adaptive cutoffs to control memory usage dynamically.

Local Search Algorithms & Optimization Problems:

Local search algorithms focus on improving solutions iteratively by making small incremental changes to the current solution. These algorithms are often used for optimization problems where the goal is to find the best solution among a large set of possible solutions.

  1. Hill Climbing Search:
    • Hill climbing search iteratively moves from one solution to a neighboring solution that improves the objective function (hill).
    • It terminates when no further improvement is possible, possibly getting stuck in local optima or plateaus.
  2. Simulated Annealing Search:
    • Simulated annealing search is a probabilistic optimization technique inspired by the annealing process in metallurgy.
    • It accepts worse solutions with a certain probability, allowing the algorithm to escape local optima and explore a broader solution space.
    • The probability of accepting worse solutions decreases over time according to a cooling schedule.
  3. Local Beam Search:
    • Local beam search maintains multiple candidate solutions (beams) simultaneously and focuses the search on the most promising ones.
    • It combines elements of breadth-first search and hill climbing, exploring multiple paths in parallel while preferring promising solutions.
  4. Genetic Algorithms:
    • Genetic algorithms are inspired by the process of natural selection and evolution.
    • They maintain a population of candidate solutions (individuals) and iteratively apply selection, crossover, and mutation operators to generate new solutions.
    • Genetic algorithms efficiently explore the solution space and are particularly effective for optimization problems with complex, nonlinear objective functions.

Constraint Satisfaction Problem (CSP) & Local Search for CSP:

Constraint satisfaction problems involve finding a solution that satisfies a set of constraints. Local search algorithms can be applied to CSPs by iteratively improving a partial assignment of values to variables until a complete and consistent solution is found.

Adversarial Search:

Adversarial search deals with decision-making in games or other competitive scenarios where multiple agents have conflicting objectives.

  1. Games:
    • In the context of AI, games involve multiple agents making decisions in a competitive environment.
    • Each agent aims to maximize its own utility or minimize its opponent’s utility by selecting optimal actions.
  2. Minimax Search Procedure:
    • Minimax search is a decision-making algorithm used in adversarial settings such as two-player games.
    • It assumes that the opponents will make optimal moves and selects actions that minimize the maximum possible loss (maximizing the minimum utility).
  3. Alpha-Beta Pruning:
    • Alpha-beta pruning is a technique used to improve the efficiency of minimax search by eliminating branches of the search tree that are guaranteed to be worse than the current best option.
    • It reduces the number of nodes evaluated during search by exploiting properties of the minimax algorithm.
  4. Iterative Deepening:
    • Iterative deepening combines the benefits of breadth-first and depth-first search by performing depth-limited search with increasing depth limits.
    • It allows for more efficient exploration of the search space while guaranteeing completeness and optimality in games with finite depth.

Knowledge & Reasoning

In the field of artificial intelligence, knowledge and reasoning play crucial roles in enabling intelligent systems to understand, interpret, and manipulate information to make informed decisions and solve problems. Here’s an overview of knowledge representation, including its issues, approaches, and related topics:

Knowledge Representation Issues:

  • Expressiveness: Representations should be capable of expressing a wide range of knowledge types, including facts, concepts, relationships, and procedural knowledge.
  • Efficiency: Representations should enable efficient storage, retrieval, and manipulation of knowledge to support reasoning and decision-making tasks.
  • Inference: The representation should support reasoning mechanisms that allow for deriving new knowledge from existing knowledge, including deduction, induction, and abduction.
  • Uncertainty: Knowledge representation should account for uncertainty and ambiguity inherent in real-world knowledge, allowing for probabilistic reasoning and decision-making.
  • Scalability: Representations should be scalable to handle large and complex knowledge bases, supporting the growth and expansion of knowledge over time.
  • Interpretability: Knowledge representations should be interpretable and understandable by both humans and machines, facilitating communication and collaboration between intelligent systems and users.

Representation & Mapping:

  • Knowledge representation involves selecting suitable structures and formalisms to capture and organize knowledge within an intelligent system. These representations serve as the foundation for reasoning, learning, and problem-solving.
  • Mapping refers to the process of translating real-world concepts, entities, and relationships into a formal representation that can be understood and processed by a computer system. This mapping often involves abstraction and simplification to capture essential aspects of the domain while omitting irrelevant details.

Approaches to Knowledge Representation:

  • Semantic Networks: Represent knowledge as a network of interconnected nodes (concepts) and edges (relationships) between them. Semantic networks provide a graphical representation of knowledge and support inheritance and generalization.
  • Frames: Frames organize knowledge into structured units called frames, which consist of slots representing attributes and values. Frames capture the hierarchical nature of knowledge and support default values and inheritance.
  • Logic-Based Representations: Utilize formal logic languages such as propositional logic, first-order logic, or description logics to represent knowledge as logical statements or rules. Logic-based representations enable precise and declarative knowledge encoding and support automated inference and deduction.
  • Ontologies: Ontologies provide a formal and explicit specification of a shared conceptualization of a domain, including concepts, relationships, and axioms. Ontologies facilitate knowledge sharing and interoperability across different systems and domains.
  • Probabilistic Models: Represent uncertainty in knowledge by assigning probabilities to uncertain propositions or events. Probabilistic models enable probabilistic reasoning and decision-making in uncertain and incomplete domains.
  • Structured Representations: Organize knowledge using structured data formats such as tables, graphs, or hierarchical trees. Structured representations facilitate efficient storage, retrieval, and manipulation of knowledge, particularly in database and information retrieval systems.

Issues in Knowledge Representation:

  • Expressivity vs. Complexity Trade-off: More expressive representation formalisms often come with increased computational complexity, making reasoning and inference more challenging.
  • Context Sensitivity: Representations should account for contextual dependencies and variations in the interpretation of knowledge within different contexts or domains.
  • Domain Specificity: Representations should be tailored to the specific requirements and characteristics of the domain, accounting for domain-specific concepts, relationships, and constraints.
  • Integration & Interoperability: Integrating knowledge from disparate sources and representing heterogeneous knowledge formats pose challenges in achieving consistency, coherence, and interoperability.
  • Dynamic Knowledge: Representations should be capable of accommodating dynamic changes and updates to knowledge over time, including additions, deletions, and revisions.

Using Predicate Logic:

Predicate logic is a formal language used for representing and reasoning about relationships and properties of objects in a domain. Here’s how it can be applied in various contexts:

  1. Representing Simple Facts in Logic:
    • Simple facts can be represented in predicate logic using predicates, which are statements that describe relationships or properties of objects.
    • For example, the fact “John is a student” can be represented using a predicate such as “Student(John)”.
  2. Representing Instant & ISA Relationship:
    • In predicate logic, the “ISA” (is-a) relationship can be represented using predicates and logical connectives.
    • For example, the fact “A cat is an animal” can be represented using predicates as “IsAnimal(Cat) ∧ IsCat(Cat)”.
    • Instantiation of objects can also be represented using predicates. For example, “John is a student” can be represented as “IsStudent(John)”.
  3. Computable Functions & Predicates:
    • Computable functions and predicates can be represented in predicate logic using function symbols and quantifiers.
    • For example, the function “Add(x, y)” representing addition can be expressed as “∀x ∀y ∃z (Add(x, y, z))”, where z represents the result of the addition operation.
  4. Resolution & Natural Deduction:
    • Resolution and natural deduction are inference rules used in predicate logic for deriving new facts from existing ones.
    • Resolution involves resolving conflicting statements to derive new conclusions, while natural deduction involves applying logical rules to infer new statements from given premises.

Probabilistic Reasoning:

Probabilistic reasoning deals with uncertain knowledge and involves reasoning about probabilities and uncertainties in a domain. Here are some key aspects:

  1. Representing Knowledge in an Uncertain Domain:
    • In uncertain domains, knowledge can be represented using probabilities to quantify the likelihood of different events or states.
    • Probabilistic representations allow for expressing uncertainty and capturing dependencies between variables.
  2. Semantics of Bayesian Networks:
    • Bayesian networks are graphical models that represent probabilistic dependencies between variables using directed acyclic graphs (DAGs).
    • The semantics of Bayesian networks involve conditional probability distributions that specify the probability of each variable given its parents in the graph.
  3. Dempster-Shafer Theory:
    • Dempster-Shafer theory is an alternative framework for representing uncertainty that extends classical probability theory.
    • It uses belief functions to represent uncertainty and combines evidence from multiple sources using Dempster’s rule of combination.
  4. Fuzzy Sets & Fuzzy Logics:
    • Fuzzy sets and fuzzy logics are used to represent and reason with vague or imprecise information.
    • Fuzzy sets extend classical set theory by allowing membership degrees between 0 and 1, representing the degree of membership of an element in a set.
    • Fuzzy logics extend classical propositional logic by allowing truth values to range between 0 and 1, representing degrees of truthfulness.

Natural Language Processing (NLP):

  1. Introduction to NLP:
    • Natural Language Processing (NLP) is a field of artificial intelligence concerned with the interaction between computers and human language.
    • It involves tasks such as understanding, interpreting, and generating human language in a way that is meaningful and useful.
    • NLP applications range from simple tasks like text classification and sentiment analysis to complex tasks like machine translation and question answering.
  2. Syntactic Processing:
    • Syntactic processing in NLP involves analyzing the structure of sentences to understand their grammatical rules and relationships between words.
    • Techniques such as parsing are used to identify the syntactic structure of sentences, including parts of speech, phrases, and grammatical dependencies.
  3. Semantic Analysis:
    • Semantic analysis focuses on understanding the meaning of words, phrases, and sentences in context.
    • This involves tasks such as word sense disambiguation, semantic role labeling, and semantic parsing to extract the intended meaning from text.
  4. Discourse & Pragmatic Processing:
    • Discourse and pragmatic processing in NLP involve analyzing larger units of language, such as paragraphs, conversations, and documents, to infer implicit meanings and intentions.
    • These tasks include discourse coherence and cohesion, speech act recognition, and pragmatic inference to understand the context and intention behind language use.


  1. Forms of Learning:
    • Learning in artificial intelligence involves acquiring knowledge or skills from data or experience.
    • Forms of learning include supervised learning, unsupervised learning, reinforcement learning, and semi-supervised learning, each suited to different types of tasks and data.
  2. Inductive Learning:
    • Inductive learning involves generalizing patterns or regularities from specific examples.
    • Techniques such as decision trees, naive Bayes classifiers, and k-nearest neighbors are commonly used for inductive learning tasks.
  3. Explanation-Based Learning:
    • Explanation-based learning is a form of learning where new knowledge is acquired by generalizing from previously learned explanations or concepts.
    • It involves using background knowledge to generate explanations for observed data and then generalizing these explanations to learn new concepts.
  4. Learning Using Relevance Information:
    • Learning using relevance information involves selecting and prioritizing relevant features or examples to improve learning performance.
    • Techniques such as feature selection, instance weighting, and active learning are used to focus learning algorithms on the most informative data.
  5. Neural Network Learning & Genetic Learning:
    • Neural network learning involves training artificial neural networks to learn complex patterns from data.
    • Genetic learning, inspired by the principles of biological evolution, involves using genetic algorithms to evolve solutions to optimization or learning problems by iteratively selecting and mutating candidate solutions.

Expert Systems:

  1. Representing and Using Domain Knowledge:
    • Expert systems are AI systems that emulate the decision-making abilities of human experts in a specific domain.
    • Domain knowledge is represented using rules, facts, or other structured representations, which are then used by the system to make decisions or provide recommendations.
  2. Expert System Shells:
    • Expert system shells are software frameworks or environments that provide tools and libraries for building and deploying expert systems.
    • These shells typically include modules for knowledge representation, inference, explanation, and user interface design, allowing developers to focus on domain-specific knowledge and problem-solving logic.
  3. Knowledge Acquisition:
    • Knowledge acquisition is the process of capturing, formalizing, and encoding domain knowledge into an expert system.
    • Techniques such as knowledge elicitation, knowledge engineering, and knowledge acquisition tools are used to facilitate the acquisition and representation of domain expertise.

Difference Between Greedy Best First Search & Hill Climb

Leave a Reply

Your email address will not be published. Required fields are marked *