Inspiration
When
What it does
Our solution solves the Job Scheduling problem (versioned by Origen Studio) with an interactive interface, showing the result in a user-friendly environment.
Challenge 1
This project creates a scheduling optimizer to split all the tasks from all the orders into the different machines and create a timetable for their execution. The execution is made in the prolog SAT solver, called by a python API, which in turn, is called from the JS web script.
Challenge 2
This problem is similar to the first challenge, but it has more restrictions. We have developed a partial solution, but due to the difficulty of the problem and the sort time for coding, our solution is still incomplete, returning a solution that fulfills almost every condition, or resulting in a memory overflow, due to the large number of recursion reached by the program. This challenge still needs some time to make it more efficient (to avoid the overflow) and to be able to fully represent all the restrictions.
How we built it
We built it using a Flask API, a python JSON parser and using the SWI-Prolog with constraint logic programming on finite domains, also known as Constraint logic programming (CLP). All this structure was tested using a Jupyter Notebook file, and is finally used using JavaScript, which together with HTML and CSS is displayed to the user.
Challenges we ran into
We encountered with different types of challenges. We first had to model our solution with prolog for the first challenge. But when it was finished, we also needed to model the second challenge, a more difficult and restraining one. And about the frontend, we wanted to create a user-friendly experience, in short time, while doing it with vanila tools (to get more familiar on how things work).
Accomplishments that we're proud of
We are really proud of our Prolog solver code and the user interface (web), with the amazing visualization and interactions.
What we learned
We learned how to integrate very different technologies (prolog, python and web tools).
What's next for PockerScientitsts Prolog Scheduling
Adding filters to the interface with the ability to filter by the present data, i.e, machines, by quantity of items inside an order, task durations, tasks with due date for the next X hours.
Built With
- css3
- flask
- html5
- javascript
- jupyter
- prolog
- python
Log in or sign up for Devpost to join the conversation.