[![Codacy Badge](https://app.codacy.com/project/badge/Grade/7221205f866145bfa4f18c08bd96e71f)](https://www.codacy.com/gh/tpaviot/ProcessScheduler/dashboard?utm_source=github.com&utm_medium=referral&utm_content=tpaviot/ProcessScheduler&utm_campaign=Badge_Grade)
[![codecov](https://codecov.io/gh/tpaviot/ProcessScheduler/branch/master/graph/badge.svg?token=9HI1FPJUDL)](https://codecov.io/gh/tpaviot/ProcessScheduler)
[![Azure Build Status](https://dev.azure.com/tpaviot/ProcessScheduler/_apis/build/status/tpaviot.ProcessScheduler?branchName=master)](https://dev.azure.com/tpaviot/ProcessScheduler/_build?definitionId=9)
[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/tpaviot/ProcessScheduler/HEAD?filepath=examples-notebooks)
[![Documentation Status](https://readthedocs.org/projects/processscheduler/badge/?version=latest)](https://processscheduler.readthedocs.io/en/latest/?badge=latest)
[![PyPI version](https://badge.fury.io/py/ProcessScheduler.svg)](https://badge.fury.io/py/ProcessScheduler)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.4480745.svg)](https://doi.org/10.5281/zenodo.4480745)
[![slack](https://img.shields.io/badge/slack-ProcessScheduler-brightgreen)](https://join.slack.com/t/processscheduler/shared_invite/zt-pa152rki-126YyMsuLNxhOv_suqKtkQ)
# ProcessScheduler
A python library to compute resource-constrained task schedules. Express your scheduling problem in terms of tasks, resources and constraints, ProcessScheduler computes one/the best schedule that satisfies the requirements.
The computation is based on a set of constraints expressed under the form of first-order logic assertions. Problem solving is performed by the SAT/SMT [Z3 Theorem Prover](https://github.com/Z3Prover/z3).
## Documentation
User-end documentation available at https://processscheduler.readthedocs.io/
## Features
* tasks: zero duration task, fixed duration task, variable duration task, work amount, optional task,
* resources: worker, cumulative workers, workers selection, productivity attribute,
* advanced cost functions,
* buffer: NonConcurrentBuffer,
* task constraints: precedence, start synced, end synced, start at, end at, start after, end before,
* resource constraints: AllSameSelected, AllDifferentSelected,
* everything can be set as optional (tasks, resources, constraints),
* first-order-logic operations (not, or, xor, and, implies, if/then/else) between task or resource constraints,
* builtin and customized indicators (resource utilization, resource cost),
* single and multiobjective optimization (makespan, flowtime, earliest, latest, resource cost, etc.),
* exporters: smtlib2.0, json
* Gantt chart rendering using matplotlib or plotly
## Install
Install with pip.
```bash
pip install ProcessScheduler
```
The Z3 theorem prover is the only required dependency.
Optional dependencies (install either with pip or conda):
* matplotlib (Gantt chart rendering),
* plotly (Gantt chart rendering),
* numpy
## Try online
There are some Jupypter notebooks that can be executed online at [myBinder.org](https://mybinder.org/v2/gh/tpaviot/ProcessScheduler/HEAD?filepath=examples-notebooks)
## Helloworld
```python
import processscheduler as ps
# a simple problem, without horizon (solver will find it)
pb = ps.SchedulingProblem('HelloWorldProcessScheduler')
# add two tasks
task_hello = ps.FixedDurationTask('Process', duration=2)
task_world = ps.FixedDurationTask('Scheduler', duration=2)
# precedence constraint: task_world must be scheduled
# after task_hello
c1 = ps.TaskPrecedence(task_hello, task_world, offset=0)
pb.add_constraint(c1) # explicitly add this constraint to the problem
# solve
solver = ps.SchedulingSolver(pb)
solution = solver.solve()
# display solution, ascii or matplotlib gantt diagram
solution.render_gantt_matplotlib()
```
![png](examples-notebooks/pics/hello_world_gantt.svg)
## Code quality
ProcessScheduler uses the following tools to ensure code quality:
* unittests,
* code coverage (coverage.py, codecov.io),
* continuous-integration at MS azure,
* static code analysis (codacy),
* spelling mistakes tracking (codespell),
* code formatting using the black python formatter
## License/Author
ProcessScheduler is distributed under the terms of the GNU General Public License v3 or (at your option) any later version. It is currently developed and maintained by Thomas Paviot (tpaviot@gmail.com).
没有合适的资源?快使用搜索试试~ 我知道了~
资源受限的进程调度程序__Python_下载.zip
共120个文件
py:50个
ipynb:20个
rst:14个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 51 浏览量
2023-04-26
11:15:31
上传
评论
收藏 838KB ZIP 举报
温馨提示
资源受限的进程调度程序__Python_下载.zip
资源推荐
资源详情
资源评论
收起资源包目录
资源受限的进程调度程序__Python_下载.zip (120个子文件)
Task.drawio 1KB
TimeLineHorizon.drawio 1KB
TwoTasksConstraint.drawio 85B
.gitignore 437B
.gitignore 7B
MANIFEST.in 20B
.mypy.ini 37B
Excavator9.ipynb 73KB
use-case-formula-one-change-tires.ipynb 13KB
features.ipynb 9KB
ui-modeling.ipynb 8KB
use-case-flow-shop.ipynb 7KB
use-case-software-development.ipynb 6KB
ui-modeling.ipynb 6KB
resource_constrained_project_scheduling.ipynb 4KB
Excavator1.ipynb 3KB
Excavator8.ipynb 3KB
bike_shop.ipynb 3KB
Excavator7.ipynb 3KB
n_queens_job_shop.ipynb 3KB
Excavator3.ipynb 2KB
Excavator2.ipynb 2KB
sports-scheduling.ipynb 2KB
Excavator5.ipynb 2KB
Excavator6.ipynb 2KB
hello_world.ipynb 2KB
Excavator4.ipynb 2KB
small_hole.jpeg 14KB
medium_hole.jpeg 13KB
excavator_small.jpeg 12KB
excavator_medium_size.jpg 290KB
huge_hole.jpg 218KB
Makefile 634B
README.md 4KB
CONTRIBUTING.md 3KB
NOTES 2KB
flow_shop_problem.png 32KB
flow_shop_solution.png 29KB
hello_world_gantt.png 14KB
solver.py 27KB
test_optional_task.py 22KB
jupyter_ui.py 19KB
task_constraint.py 17KB
solution.py 16KB
test_solver.py 16KB
test_indicator.py 14KB
problem.py 13KB
test_task.py 13KB
task.py 13KB
resource_constraint.py 12KB
test_resource_tasks_distance.py 11KB
test_cost.py 11KB
test_fol.py 9KB
test_gantt.py 9KB
json_io.py 9KB
test_schedule_n_task_in_time_interval.py 8KB
resource.py 8KB
test_buffer.py 6KB
excel_io.py 6KB
test_workload.py 6KB
test_cumulative.py 5KB
context.py 5KB
test_group_of_tasks.py 5KB
test_features.py 5KB
first_order_logic.py 4KB
benchmark_mixed.py 4KB
benchmark_logics.py 4KB
benchmark_dev_team.py 4KB
constraint.py 4KB
benchmark_n_queens.py 4KB
test_resource_unavailable.py 3KB
test_io.py 3KB
test_util.py 3KB
util.py 3KB
test_multiple_objectives.py 3KB
objective.py 3KB
base.py 3KB
cost.py 3KB
buffer.py 3KB
conf.py 3KB
test_datetime.py 3KB
test_json_io.py 3KB
test_dynamic_resource.py 3KB
test_optional_constraint.py 2KB
__init__.py 2KB
setup.py 1KB
test_jupyter_ui.py 1KB
__main__.py 0B
__init__.py 0B
objectives.rst 12KB
solving.rst 6KB
task.rst 5KB
task_constraints.rst 4KB
resource.rst 4KB
resource_constraints.rst 4KB
scheduling_problem.rst 4KB
first_order_logic_constraints.rst 3KB
indicator.rst 3KB
buffer.rst 3KB
introduction.rst 3KB
共 120 条
- 1
- 2
资源评论
快撑死的鱼
- 粉丝: 1w+
- 资源: 9154
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功