This project explores various problem-solving techniques in artificial intelligence, with a particular focus on search algorithms and unification. The codebase includes implementations in both Prolog and Java.
Contains code related to the farmer's problem, including state representations and search algorithms.
Implements a unification algorithm for first-order logic.
Explores integer factorization using backtracking in Prolog and Java.
A classic AI planning problem involving a farmer, a wolf, a goat, and a cabbage. The goal is to transport all items across a river while ensuring that no harmful combinations occur.
A fundamental operation in logic programming, used to determine if two terms can be made identical by substituting variables with terms.
The problem of decomposing a composite number into its prime factors.
Represents a state in the farmer's problem, including the positions of the farmer and the items.
Implements a search algorithm (e.g., depth-first search, breadth-first search) to explore the state space.
Represents a set of variable substitutions.
Implements the unification algorithm.
Uses backtracking to recursively explore possible factorizations.
Implements a similar backtracking algorithm.