Skip to content

hongyingyue/python-lekin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

6e33155 · May 18, 2025

History

3 Commits
May 18, 2025
May 18, 2025
May 18, 2025
May 18, 2025
May 18, 2025
May 18, 2025
May 18, 2025
May 18, 2025
May 18, 2025
May 18, 2025
May 18, 2025
May 18, 2025
May 18, 2025
May 18, 2025
May 18, 2025
May 18, 2025
May 18, 2025
May 18, 2025

Repository files navigation


LICENSE PyPI Version Download Build Status Lint Status Docs Status Code Coverage

Documentation | Tutorials | Release Notes | 中文

python-lekin is a Flexible Job Shop Scheduler Library, named after Lekin. As a core function in APS (advanced planning and scheduler), it helps manufacturers optimize the allocation of materials and production capacity optimally to balance demand and capacity.

  • Changeover Optimization
  • Ready for demo, research and maybe production

DEVELOPING - NOT FINISHED AND DON'T USE IT NOW!

Features

  • Multiple solving strategies:
    • Continuous Time Planning (CTP)
    • Construction Heuristics
    • Meta-heuristics (Genetic Algorithm, Simulated Annealing)
    • Reinforcement Learning
    • Operation Research methods
  • Extensible architecture for custom solvers
  • Comprehensive constraint handling
  • Performance metrics and visualization
  • Parallel solving capabilities
  • Solution validation and verification

Tutorial

Open In Colab

Installation

pip install lekin

Usage

from lekin import Heuristics, Rule
from lekin import Scheduler

solver = Rule('SPT')
scheduler = Scheduler(solver)
scheduler.solve(job_list, machine_list)

scheduler.draw()

Examples

In real world, Lekin integrates with MES to deploy production plans on the shop floor. Integration with ERP system is also required to exchange information on demand, inventory, and production

Metaheuristics combined with Construction Heuristics to initialize is the recommended choice.

Adding New Constraints

from lekin.solver.constraints import BaseConstraint

class MyCustomConstraint(BaseConstraint):
    def check(self, solution):
        # Implement your constraint checking logic
        pass

Citation

@misc{python-lekin2022,
  author = {Hongying Yue},
  title = {python lekin},
  year = {2022},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/hongyingyue/python-lekin}},
}