Skip to content

Intelligent system demonstrating the application of search strategies in the context of mostly-uninformed pathfinding in an environment with obstacles

Notifications You must be signed in to change notification settings

memgonzales/blind-pathfinder

Repository files navigation

Blind Pathfinder (Gold Miner)

badge

This project is an intelligent system demonstrating the application of search strategies in the context of mostly-uninformed pathfinding in an environment with obstacles. In particular, the agent is a gold miner tasked to reach the square tile containing the pot of gold — the location of which is not disclosed to the agent — while avoiding obstacles (pits) and taking advantage of hints from beacons.

It combines a modified depth-first search strategy with backtracking, memorization of obtained details regarding the environment, and miscellaneous decision-making rules to minimize the number of actions.

Task

Gold Miner is a major course output in an introduction to intelligent systems class under Dr. Judith J. Azcarraga of the Department of Computer Technology, De La Salle University. Following the schema presented in the third edition of Artificial Intelligence: A Modern Approach by Russell and Norvig (2010), the PEAS description of the task is as follows:

  • Performance Measure: The rationality of the agent is measured by the average number of actions (moves, rotates, scans, and backtracks) taken to reach the square tile containing the pot of gold.
  • Environment: The environment is an n × n board, with the agent initially positioned at the upper left corner. Some tiles are pits, which will automatically trigger a game-over if the miner lands on one. There are also beacons that return the distance to the gold square tile, provided that the gold square tile is located in any of the four cardinal directions of the beacon and there is no pit between them. There is exactly one tile containing the pot of gold.
  • Actuators: The agent has "actuators" for moving one tile forward and for rotating clockwise.
  • Sensor: The agent has a "sensor" that it can use to determine the designation of the tile in front of it; however, using this sensor (referred to as "scanning") adds to the total number of actions taken by the agent.

The project consists of three folders:

  • api - Javadoc documentation of this project
  • out - .class files
  • src - .java files (source codes)

Besides the Gold Miner.jar file, it also includes the following documents:

Using the Program

In the front-end interface, coordinates are one-based, i.e., the upper left corner is designated as (1, 1), the tile to its right is (1, 2), and the tile below it is (2, 1). Use a single space to separate the row- and column-coordinates, and a newline to separate pairs. For instance, if the coordinates of the pits are (2, 3), (3, 4), and (4, 5), then the input should be:

2 3
3 4
4 5
  1. Open the .jar file.

  2. Input the following information:
    a. Dimension (length) of the square board (between 8 and 64, inclusive)
    b. Coordinates of the tile containing the pot of gold
    c. [Optional] Coordinates of the beacons
    d. [Optional] Coordinates of the pits

    Configuration
  3. Select the level of intelligence of the agent.

    AI Intelligence
  4. Select the speed at which the agent's actions are to be displayed.

    Display Speed
  5. Once the board is displayed, click Proceed to begin the pathfinding.

    Board

Built Using

This project was built using Java, with the .class files generated via Java SE Development Kit 14. The graphical user interface was created using Swing, a platform-independent toolkit that is part of the Java Foundation Classes.

Authors

Assets (images) are properties of their respective owners. Attribution is found in the file src/gui/assets/asset-credits.txt.

About

Intelligent system demonstrating the application of search strategies in the context of mostly-uninformed pathfinding in an environment with obstacles

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages