0% found this document useful (0 votes)
8 views13 pages

Introduction To AI

The document provides an overview of Artificial Intelligence (AI), including its definition, history, types, approaches, and applications. It covers search techniques such as exhaustive and heuristic search, along with algorithms like Minimax and Alpha-Beta Pruning used in adversarial search for games. The content emphasizes the importance of AI in various fields, including robotics, game strategy, and optimization.

Uploaded by

Mohd Saddam
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views13 pages

Introduction To AI

The document provides an overview of Artificial Intelligence (AI), including its definition, history, types, approaches, and applications. It covers search techniques such as exhaustive and heuristic search, along with algorithms like Minimax and Alpha-Beta Pruning used in adversarial search for games. The content emphasizes the importance of AI in various fields, including robotics, game strategy, and optimization.

Uploaded by

Mohd Saddam
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

Introduction to AI

Sunday, 2 March, 2025 11:01 AM

1. What is AI?
Artificial Intelligence (AI) is the science of making machines perform tasks that require human intelligence, like
learning, problem-solving, and decision-making.
2. History of AI
• 1947 – Alan Turing discussed AI in a lecture.
• 1956 – John McCarthy coined the term "Artificial Intelligence" at the Dartmouth Conference.
• Turing Test – A test to determine if a machine can mimic human intelligence.
3. Types of AI
• Artificial Narrow Intelligence (ANI) – Specialized tasks (e.g., Siri, ChatGPT).
• Artificial General Intelligence (AGI) – Human-like intelligence (not yet achieved).
• Artificial Super Intelligence (ASI) – Machines surpass human intelligence (theoretical).
4. AI Approaches
• Thinking Humanly – Cognitive Science approach.
• Thinking Rationally – Logic-based AI (Expert Systems).
• Acting Humanly – Turing Test.
• Acting Rationally – AI as a Rational Agent.
5. Intelligent Agents
AI systems that perceive the environment and take action (e.g., self-driving cars). PEAS framework:
• Performance measure
• Environment
• Actuators
• Sensors
6. Search Techniques
• Uninformed Search – BFS, DFS.
• Informed Search – A*, Greedy Search.
• Minimax & Alpha-Beta Pruning – Used in AI game playing.
7. Knowledge Representation & Reasoning
• Logic-Based AI – Propositional & Predicate Logic.
• Probabilistic Reasoning – Bayes’ Theorem, Uncertainty Handling.
8. Machine Learning (ML)
• Supervised Learning – Predicts labels (e.g., spam detection).
• Unsupervised Learning – Clustering data (e.g., customer segmentation).
• Reinforcement Learning – Learning by rewards (e.g., AlphaGo).
9. Deep Learning (DL)
• Neural Networks (ANN, CNN, RNN).
• Used in image recognition, speech processing, chatbots.
10. AI Ethics & Risks
• Job losses, AI bias, accountability issues.
• IBM stopped facial recognition due to biases in AI models.
11. AI Applications
• NLP – ChatGPT, Google Translate.
• Computer Vision – Face recognition, self-driving cars.
• Robotics – AI in healthcare, manufacturing.

Introduction to AI Page 1
Exhaustive Search
Sunday, 2 March, 2025 11:04 AM

1. What is Exhaustive Search?


Exhaustive search is a problem-solving method where the system explores all possible options to
find a solution. It is widely used in AI for solving complex problems systematically.
Example:
Imagine you are trying to unlock a 3-digit password but don’t know the code. You try all possible
combinations from 000 to 999. This is exhaustive search.

2. State Space Search


• AI problems are often represented as a state space graph.
• Each possible situation (state) in a problem is a node, and moves between them are edges in
the graph.
• The goal is to navigate from the starting state to the goal state.
Example:
Think of Google Maps. If you are in City A and need to reach City B, the map is a state space, and AI
finds the best route.

3. Common AI Problems Using Search


Some classic AI problems solved using exhaustive search:
1. 8-Puzzle Problem – Move tiles in a 3×3 grid to arrange them in order.
2. Missionaries and Cannibals – Move people across a river while following safety rules.
3. Travelling Salesman Problem (TSP) – Find the shortest route for visiting cities exactly once.
4. Robot Navigation – AI helps a robot find the best path from point A to point B.

4. Types of Graph Search Algorithms


A. Uninformed Search (Blind Search)
• The AI does not know which path is best in advance.
• It explores all possible paths one by one.
1. Breadth-First Search (BFS)
• Explores all possible moves at the current level before moving to the next level.
• Finds the shortest path but requires a lot of memory.
Example:
Imagine you are in a maze. You first check all possible turns before taking the next step deeper.
2. Depth-First Search (DFS)
• Goes deep into one path before backtracking if it reaches a dead end.
• Uses less memory but may get stuck in loops.
Example:
Solving a maze by following one path as far as possible before turning back.
3. Depth-Limited Search (DLS)
• Like DFS, but with a fixed depth limit to avoid infinite loops.
4. Iterative Deepening Search (IDS)
• Combines BFS and DFS.
• Repeatedly runs DFS with increasing depth limits.
5. Uniform Cost Search (UCS)
• Expands the cheapest path first (based on cost, not depth).
• Used in Google Maps to find the shortest route.

B. Informed Search (Heuristic Search)


• Uses additional knowledge (heuristics) to find solutions faster.
1. Greedy Best-First Search
• Always moves towards the goal with the least cost.
• Can get stuck in wrong paths.

Exhaustive Search Page 2


• Can get stuck in wrong paths.
2. A Search*
• Combines UCS (cost-based search) with heuristic information to find the best path efficiently.
• Used in video game AI and GPS navigation.

5. Bidirectional Search
• Searches from both the start and goal simultaneously.
• They meet in the middle, making search twice as fast.
Example:
Two people starting from opposite ends of a tunnel and meeting in the middle.

6. Real-World Applications of Exhaustive Search


1. Pathfinding in Maps & GPS (Google Maps, Uber).
2. AI in Games (Chess, Tic-Tac-Toe).
3. Robotics (Self-driving cars finding optimal routes).
4. Cybersecurity (Brute-force password cracking).
5. Job Scheduling (Optimizing tasks for machines).

7. Which Search Algorithm is Best?


Algorithm Pros Cons
BFS Finds the shortest path Needs a lot of memory
DFS Uses less memory Can get stuck in loops
UCS Finds cheapest path Can be slow
A* Fast and optimal Needs a good heuristic
IDS Balanced approach Can be slow

Conclusion
• Exhaustive search is powerful but slow in large problems.
• Heuristic search like A* is used in practical AI applications.
• Choosing the right search algorithm depends on the problem type, memory, and efficiency
needs.

Exhaustive Search Page 3


Heuristic Search
Sunday, 2 March, 2025 11:08 AM

1. What is Heuristic Search?


• Heuristic search is an intelligent searching technique that helps AI solve problems faster by
using extra knowledge.
• Instead of checking all possible solutions (like exhaustive search), heuristic search focuses on
the most promising options.
• The goal is to find the shortest or best path to a solution without wasting time on
unnecessary searches.
Example:
Imagine searching for a restaurant in a big city.
• Exhaustive search: Check every street and every building.
• Heuristic search: Use Google Maps, which suggests nearby restaurants based on distance,
ratings, and popularity.

2. Why Use Heuristic Search?


Some problems have huge search spaces that make exhaustive search too slow.
• 8-puzzle problem → 181,440 possible states.
• 15-puzzle problem → 1.3 trillion possible states.
• Chess → More positions than the atoms in the universe!
Heuristic search helps by guiding the AI towards the solution efficiently!

3. Key Concepts in Heuristic Search


A. Heuristic Function h(n)h(n)h(n)
• A mathematical function that estimates the cost of reaching the goal from a given state.
• The smaller the heuristic value, the closer you are to the goal.
Example:
In Google Maps, the heuristic function might be:
• h(n)h(n)h(n) = Straight-line distance to the destination.
• h(n)h(n)h(n) = Estimated time based on traffic conditions.
B. Evaluation Function f(n)f(n)f(n)
• The total estimated cost from the start to the goal.
• Formula: f(n)=g(n)+h(n)f(n) = g(n) + h(n)f(n)=g(n)+h(n) where:
○ g(n)g(n)g(n) = cost from start to current node.
○ h(n)h(n)h(n) = estimated cost from current node to goal.
○ A search* uses this formula to find the best path.
Example:
In Google Maps,
• g(n)g(n)g(n) = distance already traveled.
• h(n)h(n)h(n) = estimated remaining distance.
• f(n)f(n)f(n) = total estimated journey time.

4. Types of Heuristic Search


A. Greedy Best-First Search
• Chooses the path that seems closest to the goal based on h(n)h(n)h(n).
• Does not consider past cost g(n)g(n)g(n), which can lead to bad paths.
Example:
• A bird flying directly toward a mountain peak (ignoring obstacles).
• Problem? Might lead to dead ends.

B. A Search (Best Heuristic Search Method!)*


• Uses both g(n)g(n)g(n) and h(n)h(n)h(n) to make the best decision.
• Guaranteed to find the shortest path if the heuristic function is correct.
Example:
• Google Maps calculates the best route by considering both distance (h) and traffic (g).
• The GPS will reroute if a road is blocked.

Heuristic Search Page 4


• The GPS will reroute if a road is blocked.

C. Hill Climbing Algorithm


• Starts with a random solution and keeps improving step by step.
• Always moves to a better state, but can get stuck in a local maximum.
Example:
• A mountain climber trying to reach the highest peak but stops at a small hill.
Solution?
• Use Simulated Annealing → Allows temporary downward moves to escape local traps.

D. Genetic Algorithm (GA)


• Inspired by natural evolution (survival of the fittest).
• Uses selection, crossover, and mutation to find the best solution.
Example:
• AI in self-driving cars – Trains models by evolving the best driving strategies.

5. Admissibility & Monotonicity in A* Search


• Admissibility → The heuristic function never overestimates the actual cost.
• Monotonicity → The total cost never decreases as we move towards the goal.
Example:
• If a GPS says a trip will take 30 minutes, it should never suddenly drop to 10 minutes while still
on the same route.

6. Applications of Heuristic Search


✔ Google Maps – Finds shortest & fastest routes.
✔ AI in Chess – Selects the best move.
✔ Robotics – Helps robots navigate complex spaces.
✔ Job Scheduling – Assigns tasks to workers efficiently.
✔ Network Routing – Helps computers send data in the fastest way.

7. Comparison of Search Techniques


Algorithm Uses Heuristic? Best for Large Problems? Guaranteed to Find Best Solution?
BFS ❌ No ❌ No ✅ Yes
DFS ❌ No ✅ Yes ❌ No
Greedy Best-First ✅ Yes ✅ Yes ❌ No
A Search* ✅ Yes ✅ Yes ✅ Yes (if heuristic is good)
Genetic Algorithm ✅ Yes ✅ Yes ❌ No (random process)

8. Conclusion
• Heuristic search makes AI smarter and faster by focusing on the best paths.
• A search is the most powerful* because it considers both past cost and future estimation.
• Used in Google Maps, AI, Robotics, Games, and Optimization problems.

Heuristic Search Page 5


Game Tree and Adversarial Search
Sunday, 2 March, 2025 11:10 AM

1. What is Adversarial Search?


• Adversarial search is used in games where two players compete against each other.
• It is different from normal search problems because there is an opponent trying to stop you.
• Examples of such games: Chess, Tic-Tac-Toe, Checkers, and Go.
The AI must choose the best move while considering the opponent’s response.

2. What is a Game Tree?


A game tree is a decision tree used to represent possible moves in a game.
• Nodes represent game positions.
• Branches represent possible moves.
• The AI searches the tree to find the best move.
Example: Tic-Tac-Toe
1. The AI looks at all possible moves.
2. It predicts how the opponent will respond.
3. It selects the move that leads to the best outcome.

3. Types of Games in AI
Game Type Example Properties
Deterministic Games Chess, Tic-Tac- No luck involved, every move has a fixed result.
Toe
Chance-based Games Poker, Ludo Involves luck (e.g., rolling dice).
Perfect Information Chess, Checkers Players can see the entire game state.
Imperfect Poker, Battleship Players have hidden information (e.g., opponent’s
Information cards).

4. Minimax Algorithm (Best Strategy for Two-Player Games)


• Minimax is a decision-making algorithm used in AI for two-player games.
• It assumes that both players play optimally.
• One player (MAX) tries to maximize their score, while the opponent (MIN) tries to minimize
it.
How Minimax Works (Example in Tic-Tac-Toe)
1. AI (MAX) considers all possible moves.
2. For each move, it checks how the opponent (MIN) will respond.
3. It calculates the best possible outcome and makes a move.
Minimax is like thinking ahead and planning the best strategy!

5. Evaluation Function in Minimax


• Since games like Chess are too complex to analyze completely, we use an evaluation function
to estimate how good a position is.
• Example of evaluation function in Chess:
○ +10 for AI winning position.
○ -10 for opponent winning position.
○ 0 for a draw.
○ A board position with more AI pieces is better than one with fewer pieces.

6. Problem with Minimax – Too Many Moves!


• Minimax searches every possible move, which makes it very slow for complex games like
Chess.
• Chess has around 1012010^{120}10120 possible moves!
• Solution? Use Alpha-Beta Pruning!

Game Tree and Adversarial Search Page 6


7. Alpha-Beta Pruning (Faster Minimax)
• Alpha-Beta Pruning speeds up Minimax by ignoring moves that won’t affect the final
decision.
• It "prunes" (cuts off) bad moves that the AI will never choose.
• This makes the algorithm run much faster.
How Alpha-Beta Pruning Works
1. AI searches for the best move.
2. If a move is clearly worse than another, it stops evaluating it.
3. This reduces unnecessary calculations and saves time.
With perfect move ordering, Alpha-Beta Pruning can search twice as deep as Minimax!

8. Expectiminimax Algorithm (For Games with Luck, like Dice Games)


• Used for games where chance is involved, such as Ludo, Poker, or Backgammon.
• Adds chance nodes to the Minimax tree to represent dice rolls or random events.
• Instead of choosing the best move, it chooses the most likely best move based on probability.
Example: Rolling a Dice in Ludo
• If rolling a 6 is the best option, but it has only a 1/6 chance, AI considers other options too.

9. Real-Life Applications of Game Trees


✔ Chess AI (Stockfish, Deep Blue, AlphaZero) – Uses Minimax and Alpha-Beta Pruning.
✔ Tic-Tac-Toe Bots – Simple Minimax implementation.
✔ Poker AI (Pluribus, Libratus) – Uses Expectiminimax for hidden information.
✔ Robotics – AI makes real-time decisions like a game.
✔ Business Strategy & Economics – Game theory is used in market competition.

10. Summary – What You Need for Exams


✅ Understand Minimax – AI predicts opponent’s best response.
✅ Know Evaluation Functions – AI rates board positions.
✅ Alpha-Beta Pruning – Speeds up Minimax.
✅ Expectiminimax – Used for games with luck (dice, cards).
✅ Game Theory – AI decision-making in competitive environments.

Exam Tip: How to Answer a Question on Minimax & Alpha-Beta


Pruning
❓ Q: Explain Minimax Algorithm in Simple Terms.
✅ Minimax is a decision-making algorithm for two-player games.
✅ The AI (MAX) tries to maximize the score, while the opponent (MIN) tries to minimize it.
✅ The AI searches possible moves, evaluates each, and chooses the best move.
✅ It assumes both players play optimally.
❓ Q: What is Alpha-Beta Pruning and Why is it Useful?
✅ Alpha-Beta Pruning is used to speed up Minimax.
✅ It ignores moves that won’t affect the final outcome, saving time.
✅ With perfect move ordering, it can search twice as deep as Minimax.

Game Tree and Adversarial Search Page 7


Predicate Logic & Prolog
Sunday, 2 March, 2025 11:12 AM

1. What is Predicate Logic?


• Predicate Logic (also called First-Order Logic) is an extension of Propositional Logic.
• It allows us to express statements about objects and their relationships more precisely.
Example:
• Propositional Logic: "Socrates is mortal." (P)
• Predicate Logic: "If x is a man, then x is mortal." → Man(x)→Mortal(x)Man(x) \rightarrow
Mortal(x)Man(x)→Mortal(x)
Predicate Logic is used in AI, databases, expert systems, and Prolog programming.

2. Components of Predicate Logic


A. Predicates
• A predicate describes a property or relationship between objects.
• Example:
○ Predicate: Likes(Alice,Pizza)Likes(Alice, Pizza)Likes(Alice,Pizza) → Alice likes Pizza
B. Variables
• Variables represent objects in a general way.
• Example: Loves(x,y)Loves(x, y)Loves(x,y) → x loves y (for any x and y)
C. Quantifiers
• Universal Quantifier (∀): Applies to all objects.
○ Example: ∀x\forall x∀x Human(x)→Mortal(x)Human(x) \rightarrow Mortal(x)
Human(x)→Mortal(x) → All humans are mortal.
• Existential Quantifier (∃): Applies to at least one object.
○ Example: ∃x\exists x∃x Loves(x,Alice)Loves(x, Alice)Loves(x,Alice) → Someone loves
Alice.

3. Logical Operators in Predicate Logic


Symbol Meaning Example
¬ NOT ¬Happy(Alice) (Alice is not happy)
∧ AND Tall(John) ∧ Smart(John) (John is tall and smart)
∨ OR Rainy(Paris) ∨ Snowy(Paris) (Paris is rainy or snowy)
→ IMPLIES Rich(x) → Happy(x) (If x is rich, then x is happy)
↔ IFF (if and only if) P ↔ Q (P is true if and only if Q is true)

4. Forward and Backward Chaining (Inference Methods in


AI)
Forward Chaining:
• Starts with known facts and applies rules to reach conclusions.
• Used in expert systems and AI reasoning.
• Example:
○ If Bird(x) → CanFly(x)
○ And Bird(Sparrow) is true
○ Then CanFly(Sparrow) is concluded.
Backward Chaining:
• Starts with the goal and works backward to check if known facts support it.
• Used in Prolog programming.
• Example:

Predicate Logic and Prolog Page 8


• Example:
○ Want to prove CanFly(Sparrow)?
○ Check if Sparrow is a Bird.
Backward Chaining is used in Prolog!

5. Resolution and Unification in AI


A. Resolution (Proof by Contradiction)
• Used in AI to prove whether a statement is true or false.
• Example:
○ Given: All men are mortal → Man(x)→Mortal(x)Man(x) → Mortal(x)Man(x)→Mortal(x)
○ Fact: Socrates is a man → Man(Socrates)Man(Socrates)Man(Socrates)
○ Resolution proves: Mortal(Socrates).
B. Unification (Matching Logic Statements in AI)
• Unification is the process of matching variables in logical statements.
• Example:
○ Given: Knows(john,x)Knows(john, x)Knows(john,x)
○ If we have Knows(john,mary)Knows(john, mary)Knows(john,mary), then we unify
x=maryx = maryx=mary.
Unification is used in Prolog to match facts and rules!

6. Prolog – AI Programming Language


Prolog (Programming in Logic) is a rule-based AI language that uses predicate logic.
It is used for:
✔ Expert Systems
✔ Natural Language Processing
✔ AI Reasoning
A. Basic Prolog Syntax
acts ( asic truths

prolog
CopyEdit
father(john, mary). % John is the father of Mary.
ules ( ogical rela onships

prolog
CopyEdit
parent(X, Y) :- father(X, Y). % X is a parent of Y if X is the father of Y.
ueries ( sk ues ons

prolog
CopyEdit
?- parent(john, mary). % Is John a parent of Mary?
Prolog will answer: YES! ✅

7. Applications of Predicate Logic & Prolog


✔ Expert Systems (MYCIN, DENDRAL) – AI decision-making in medical diagnosis.
✔ AI Chatbots – Uses Prolog for natural language processing.
✔ Robotics – Helps robots reason and make decisions.
✔ Automated Theorem Proving – Used in AI research.

8. Exam Preparation Summary


✅ Understand Predicate Logic Basics (Predicates, Variables, Quantifiers).

Predicate Logic and Prolog Page 9


✅ Understand Predicate Logic Basics (Predicates, Variables, Quantifiers).
✅ Know Inference Methods (Forward & Backward Chaining).
✅ Understand Resolution & Unification (Proof techniques in AI).
✅ Learn Prolog Basics (Facts, Rules, Queries).
✅ Practice AI Applications (Expert Systems, Chatbots, Robotics).

Predicate Logic and Prolog Page 10


Introduction to PROLOG
Sunday, 2 March, 2025 11:14 AM

1. What is PROLOG?
• PROLOG stands for PROgramming in LOGic.
• It is a declarative programming language used in Artificial Intelligence (AI), Natural Language
Processing, and Expert Systems.
• Instead of telling the computer how to do something (like C or Java), we tell it what we want,
and PROLOG figures out the solution using logic and inference.
PROLOG is best for problems involving reasoning, rule-based logic, and searching.

2. PROLOG vs Other Languages


Feature Imperative Languages (C, Java, PROLOG (Declarative Language)
Python)
Approach Step-by-step instructions (HOW to Describe facts & rules (WHAT to solve)
solve)
Usage General programming (apps, games, AI, rule-based reasoning, knowledge
etc.) representation
Executio Executes instructions sequentially Uses backtracking and pattern matching
n
Example Sorting an array manually Asking PROLOG: "Who is John's parent?"

3. How PROLOG Works


acts – Basic informa on.
ules – ogical rela onships.
ueries – As ing ues ons.
Example:
Facts:

prolog
CopyEdit
parent(john, mary). % John is Mary's parent
parent(jane, mary). % Jane is Mary's parent
Rules:

prolog
CopyEdit
father(X, Y) :- parent(X, Y), male(X). % X is Y's father if X is a parent and male.
Query:

prolog
CopyEdit
?- father(john, mary). % Is John Mary's father?
✔ Answer: YES ✅

4. PROLOG Syntax & Components


A. Facts (Basic Truths)
• Facts state relationships between objects.
• Example:

PROLOG Page 11
prolog
CopyEdit
likes(alice, pizza). % Alice likes pizza
owns(john, car). % John owns a car
B. Rules (If-Then Logic)
• Rules define logical relationships.
• Syntax:

prolog
CopyEdit
head :- body.
• Example:

prolog
CopyEdit
sibling(X, Y) :- parent(Z, X), parent(Z, Y). % X and Y are siblings if they share a parent.
C. Queries (Asking Questions)
• Queries ask for information from facts and rules.
• Example:

prolog
CopyEdit
?- likes(alice, pizza). % Does Alice like pizza?
✔ Answer: Yes ✅

5. Backtracking in PROLOG (Automatic Searching)


• PROLOG tries different possibilities automatically.
• If a solution fails, PROLOG goes back and tries another option (backtracking).
Example:
prolog
CopyEdit
likes(mary, tea).
likes(john, tea).
likes(john, coffee).
?- likes(john, X). % What does John like?
✔ Answer: X = tea ; X = coffee ✅

6. Recursion in PROLOG
• PROLOG supports recursive rules, useful for problems like family trees, pathfinding, and
searching.
Example: Family Tree
prolog
CopyEdit
ancestor(X, Y) :- parent(X, Y). % Direct parent
ancestor(X, Y) :- parent(X, Z), ancestor(Z, Y). % Recursive case
Query:

prolog
CopyEdit
?- ancestor(john, mary). % Is John an ancestor of Mary?
✔ PROLOG will check all parent relationships! ✅

PROLOG Page 12
✔ PROLOG will check all parent relationships! ✅

7. Arithmetic in PROLOG
• PROLOG can perform basic math using the is operator.
Example:
prolog
CopyEdit
?- X is 5 + 3.
X = 8. ✅
⚠ PROLOG does not solve equations, only evaluates expressions.

8. Input/Output in PROLOG
• Reading Input:

prolog
CopyEdit
?- write('Enter your name: '), read(Name), write('Hello, '), write(Name).
✔ Output:

yaml
CopyEdit
Enter your name: Alice
Hello, Alice

9. PROLOG Applications
✔ Expert Systems – Medical diagnosis, legal reasoning.
✔ AI & Chatbots – Logic-based responses.
✔ Pathfinding & Games – Finding shortest routes in maps.
✔ Natural Language Processing (NLP) – Understanding human language.
✔ Robotics – Decision-making for robots.

10. Summary for Exams


✅ PROLOG is a declarative language – We define facts and rules, and it finds answers.
✅ Uses backtracking & pattern matching to explore possibilities.
✅ Best for AI, Expert Systems, and Logic Problems.
✅ Basic components: Facts, Rules, Queries, Recursion, Arithmetic, I/O.
✅ Common use cases: AI reasoning, Family trees, Natural Language Processing, Games.

PROLOG Page 13

You might also like