你确定你这个需求用模拟退火去解?你的这个例子是不存在梯度的怎么模拟退火。
已知分配方案的资源受限项目调度问题所需时间求解?
70在写一个利用模拟退火算法解资源受限项目调度问题的程序。
问题:
已知:
- n个任务,每个任务有:
- 开始时间 (不能在开始时间之前开始任务)(int)
- 持续时间 (完成任务所需时间)(int)
- 依赖 (需要先完成依赖列表里的所有任务才可开始该任务)(list of task indexes)
- m个员工
- 分配结果 (每个员工完成哪些任务) (list)
限制:
- 每个任务只需要一个员工去完成
- 任务不能中断
输出:
- 在当前分配结果的情况下,该任务最短需要多长时间完成
输入例子
tasks = [{"index":0, "name": "task 0", "duration": 1, "start": 1, "dependency":[]},
{"index":1, "name": "task 1", "duration": 1, "start": 0, "dependency":[0]},
{"index":2, "name": "task 2", "duration": 3, "start": 1, "dependency":[]},
{"index":3, "name": "task 3", "duration": 3, "start": 1, "dependency":[2]}]
employee = [{"index":0,"name": "employee 0"},{"index":1,"name": "employee 1"}]
plan = [0,0,1,0] # 员工0 完成任务0,1,3, 员工1 完成任务2
输出
7
# 0时间:没有任务可以开始
# 1时间:员工0开始任务0,员工1开始任务2
# 2时间:员工0完成任务0,开始任务1
# 3时间:员工0完成任务1
# 4时间:员工1完成任务2,员工0开始任务3
# 7时间:员工0完成任务3,所有任务完成
时间复杂度尽可能低,python代码或者详细伪代码思路都可,先谢谢各位大神了
- 点赞
- 收藏
- 复制链接分享
1条回答
为你推荐
- 青蛙跳台阶的问题???
- 如何用C语言已知两点坐标求直线方程?
- c语言
- 2个回答
- 平面方程 ax+by+cz+d=0,平移(x0,y0,z0)后,新的方程系数如何求解?
- c#
- 1个回答
- 6-5 输出Fibonacci数列的前n项 (15分)
- c++
- 2个回答
- 如何获得两个已知单词之间的字符串?
- IT行业问题
- 计算机技术
- it技术
- 编程语言问答
- 互联网问答
- 1个回答
- 如何获得作曲家已知的PHP扩展名? [关闭]
- php
- configuration-files
- reference
- 1个回答
- 已知IE 8 PHP Session问题?
- php
- Internet-explorer
- 1个回答
- 用 c 语言求解2个未知参数方程的最快算法?
- c
- algorithm
- equation
- 0个回答
- 三维坐标转换已知3个以上控制点在A 和 B坐标系的三维坐标,求解7参数
- 三维坐标转换
- eigen
- 2个回答
- js数组循环创建问题求解
- 数组
- javascript
- jquery
- 10个回答
- java如何根据经纬度和日期获取当地日出日落时间?
- java
- 3个回答
- 求解一段代码的中的问题
- c
- 算法导论
- c++
- 矩阵快速幂
- 竞赛算法
- 2个回答
- 关于递归求解问题求教.寻找递归大神!
- string
- pd
- ios
- 递归
- namespace
- 3个回答
- c语言链表动态分配语句问题
- 5个回答
- 已知一个圆心,求其它圆心问题
- 3个回答
- 求解贪心算法相关问题
- 4个回答
- c++基础问题,求求解!
- c++
- 5个回答
- jQuery日期加减问题????????
- js
- jquery
- 3个回答
- 新手求解 有关SQL的问题
- 高级查询
- 3个回答
- 已知加密算法,密文,,求解明文
- 算法
- 解密
- 2个回答