Skip to content

alexisuaguilaru/OutboundStudentProblem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Non-Local Student Problem

A Container Loading Problem variant based on non-local (Mexican) students lifestyle using hybridization of metaheuristics (Tabu Search and Differential Evolution) to find the best positions to place the boxes in the container with maximum weight and static stability constraints.


Problem Statement and Some Mathematical Formulation

The complete statement (written by me) and (almost a) optimization formulation can be found in the next files: ENG, SPA


Solving Approach

This problem can might think as two sub optimization problems:

  • One discrete to select the small boxes to pack and choose what rotations use
  • Another continuos to find the optimal positions to place the small boxes in the container

Discrete Part (Boxes Problem)

Each solution is represented as a $2N$ size vector of integers numbers, the first $N$ numbers represent whether a box is selected or not and the last $N$ numbers represent the rotation of each box.

Tabu Search is used to improve each solution's fitness whose objective function is the number of packed boxes minus the times a restriction is not met.

Continuos Part (Positions Problem)

Each solution is represented as a $3N$ size vector of non-negative float numbers where each three numbers represent the position of a box.

Differential Evolution is used to improve the selected boxes' positions whose objective function is the times a restriction is not met.

General Diagram

This approach works as follows:

  1. Generate an solution (individual) according to the Discrete Part in TB
  2. Evaluate the solution's fitness by running DE according to the Continuos Part with the selected boxes and rotations
  3. Compare the solution's fitness with the others solutions (that belongs to a neighborhood) in TB and select the best
  4. Repeat until the condition is met, otherwise return the optimal boxes' positions and rotations
---
title: Solving Approach Diagram
config:
  look: handDrawn
  theme: neutral
---

flowchart TD

A(Generate Solution for TB)
B(Evaluate Fitness with DE)
C(Select Best Solution in TB)
D{Is Condition met}
E(Return Optimal Solution)

A-->B
B-->C
C-->D
D-->A
D-->E
Loading

Installation and Usage

  1. Preferably, create a Python +3.14 environment and install the requirements file:
pip install -r requirements.txt
  1. Execute the example in MainExample.py with:
python MainExample.py

This minimal example contains the main variables to create and how to define them, also how to get the vector results (boxes to pack, rotations and positions) using the returns.

About

A Container Loading Problem variant based on non-local students lifestyle

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages