This repository contains a web application developed with React that serves as an interface for various dynamic programming algorithms. The application features a main menu that allows users to select and execute different algorithms, each implemented as a separate component. The project is part of an Operations Research course and includes the following algorithms:
- Shortest Paths (Floyd's Algorithm): Finds the optimal routes between any pair of nodes in a weighted graph.
- Knapsack Problem: Solves the 0/1, bounded, and unbounded versions of the knapsack problem.
- Optimal Binary Search Trees: Constructs the binary search tree with the minimum average cost.
- Sports Series: Calculates probabilities associated with sports series outcomes.
The application emphasizes a visually appealing and professional interface, with tooltips for descriptions and uniform styling across all components.
- Interactive Graphical Interface: Built with HTML5, CSS3 and React for a consistent look and feel.
- Tooltip Descriptions: Hover over menu options to see brief descriptions of each algorithm.
- File Handling: Save and load problem data for future use.
- Error Handling: Displays alerts for unavailable algorithms.
- Optional Extras: Visual representations of graphs, mathematical problem displays, and more.
- Frontend: React
- Styling: HTML5, CSS3
- Steven Sequeira
- Andrey Ureña
- Carlos Loaiza
- Brandon Calderón
- Jerson Prendas
The repository is organized as follows:
- Proyecto 0: Main menu and framework for launching algorithms.
- Proyecto 1: Implementation of Floyd's Algorithm for shortest paths.
- Proyecto 2: Solution for the Knapsack Problem.
- Proyecto 3: Sports Series probability calculator.
- Proyecto 4: Optimal Binary Search Trees constructor.
- Clone the repository.
- Install dependencies (React, etc.).
- Run the application using the appropriate framework commands (
npm start
for React). - Access the main menu via the browser and select the desired algorithm.