多机调度问题(贪心)

算法笔记——求活动安排问题(贪心法) 问题 设有n个活动的集合E={1,2,。。。,n},其中每个活动都要求使用同一个资源,而在同一时刻只能有一个活动能使用这一资源。每一活动都有使用该资源的起始时间si和完成时间fi,且si<fi,如果选择了活动i,则在半开区间[si,fi)内占用资源。根据完成时间进行贪心选择策略,完成时间早的优先安排。对于输入的n个活动起止时间用贪心法给出活动安排方法,使得在该时间段内能安排尽量多的活动。 代码 #include<stdio.h> bool a[11]; int ActiveManage(i 阅读详情

题目:

Description

设有n个独立的作业{1,2,…,n},由m台相同的机器进行加工处理。作业i所需的处理时间为ti。现约定,每个作业均可在任何一台机器上加工处理,但未完工前不允许中断处理。作业不能拆分成更小的子作业。

现要求给出一种作业调度方案,使所给的n个作业在尽可能短的时间内由m台机器加工处理完成。

Input

输入的第一个为测试样例的个数T,接下来有T个测试样例。每个测试样例的第一行是两个整数n和m( n < 1000, m < 1000 ),接下来有n行,每行一个整数表示第i个作业所需的处理时间

Output

对应每个测试样例输出一行,格式为"Case #: t",其中'#'表示第几个测试样例(从1开始计),t表示加工完所有任务所需的最短时间。

Sample Input

1
7 3
2
14
4
16
6
5
3

Sample Output

Case 1: 17

/*多机调度问题:贪心算法求解
首先将作业安装时间的大小进行降序排序,然后按照排序好的顺序将作业分配给空闲的机器 
*/

int m,n;//机器数和作业数
int work[1000];//作业需要处理的时间存储 
int machine[1000];//机器数 
# include<bits/stdc++.h>
using namespace std;
bool cmp(int a,int b){
	return a>b;
}

void working(){
	//每次都是往处理作业时间最少的机器上面放,当排序完毕之间,那台机器就一直处于最后
	//那么最后输出的时候就直接输出第一台机器的时间就可以了,因为第一台机器处理作业的时间一定是最大的 
	for(int i=m+1;i<=n;i++){
		machine[m]+=work[i];
		sort(machine+1,machine+m+1,cmp);
	}
}
int main(){
	int t;
	cin>>t;
	for(int k=1;k<=t;k++){
			cin>>n>>m;
		for(int i=1;i<=n;i++)
			cin>>work[i];
	
		sort(work+1,work+n+1,cmp); //进行降序排序 
		for(int j=1;j<=m;j++){
			machine[j]=work[j];
			work[j]=0;
		}
		working();
		cout<<"Case "<<k<<": "<<machine[1]<<endl;
	}
	
}
贪心算法之多机调度问题 问题描述:     设有n个独立的作业,由m台相同的机器进行加工处理。作业i所需的处理时间为t[i]。任何作业可以在任何一台机器上面加工处理,但未完工之前不允许中断处理。任何作业不能拆分成更小的作业。要求给出一种作业调度方案,使所给的n个作业在尽可能短的时间内由m台机器加工处理完成。 这个问题是NP完全问题,到目前为止还没有有效的解法(求最优解),但是可以用贪心选择策略设计出较好的近似算法(求次优... 阅读详情

相关推荐

0026算法笔记——【贪心算法】多机调度问题

1、问题描述      设有n个独立的作业{1, 2, …, n}, 由m台相同的机器进行加工处理. 作业i所需时间为t i. 约定:任何作业可以在任何一台机器上加工处理, 但未完工前不允许中断处理,任何作业不能拆分成更小的子作业。要求给出一种作业调度方案,使所给的n 个作业在尽可能短的时间内由m台机器加工处理完成。       多机调度问题是一个NP完全问题,到目前为止还没有完全有效的解法。

liufeng_king的专栏 3万+

多机调度问题(Java实现)

多机调度问题(贪心算法) 问题: 设有n个独立的作业{1, 2, …, n},由m台相同的机器{M1, M2, …, Mm}进行加工处理,作业i所需的处理时间为ti(1≤i≤n),每个作业均可在任何一台机器上加工处理,但不可间断、拆分。多机调度问题要求给出一种作业调度方案,使所给的n个作业在尽可能短的时间内由m台机器加工处理完成。 思想: 贪心法求解多机调度问题的贪心策略是最长处理时间作业优先,即...

qq_43785075的博客 3393

2020-11-30 贪心算法——多机调度问题

多机调度问题 利用贪心法设计算法求解如下问题: 要求给出一种作业调度方案,使所给的n个作业在尽可能短的时间内由m台机器加工处理完成。约定,每个作业均可在任何一台机器上加工处理,但未完工前不允许中断处理。作业不能拆分成更小的子作业。 这个问题是一个NP完全问题,到目前为止还没有一个有效的解法。对于这一类问题,用贪心选择策略有时可以设计出较好的近似算法。 可以考虑以下的贪心策略: (1)最长处理时间作业优先的贪心选择策略。 (2)最短处理时间作业优先的贪心选择策略。 (3)作业到达时间优先的贪心选择策略。 假设

Aita_ZteP的博客 2074

多机调度问题【贪心算法】

多机调度问题 设有n个独立的作业,由m台相同的机器进行加工处理。作业i所需的处理时间为t[i]。 任何作业可以在任何一台机器上面加工处理,但未完工之前不允许中断处理。任何作业不能拆分成更小的作业。 要求给出一种作业调度方案,使所给的n个作业在尽可能短的时间内由m台机器加工处理完成。 思路: 贪心求解多机调度问题的贪心策略是最长处理时间作业优先,即把处理时间最长的作业分配给最先空闲的机器,这样可以保证处理时间长的作业优先处理,从而在整体上获得尽可能短的处理时间。按照最长处理时间作业优先的贪心策略,当m&

qq_45865242的博客 7635

多机调度问题--初谈贪心算法(一)

初步学习贪心算法,这里以这道题来进行学习,话不多说,下面给出题目:多机调度问题 题目:      某工厂有n个独立的作业,由m台相同的机器进行加工处理。作业i所需的加工时间为ti,任何作业在被处理时不能中断,也不能进行拆分处理。现厂长请你给他写一个程序:算出n个作业由m台机器加工处理的最短时 间 输入 第一行T(1&lt;T&lt;100)表示有T组测试数据。每组测试数据的第一行分别是整...

gardenpalace的博客 1万+

多机调度问题——贪心算法

多机调度问题 问题表述为:假设工厂有M台机器,现在被分配了N个任务,每个任务都有其自己的规模,即需要花费的时间成本,问如何能充分利用M台机器,在最短时间内完成这一系列任务集合。 实现思路为将任务集合按需要花费的时间成本进行从大到小的排序,然后再从头到尾的开始分配任务,把任务依次分配给目前累计需要工作时间最短的机器。由于要最后打印结果,所以创建了一个任务对象方便之后的输出结果即检验,定义了一个Comparator从而进行列表的排序。 话不多说,直接上 bug。 package test; import ja

qwh990107的博客 1242

贪心之多机调度问题

1、问题描述      设有n个独立的作业{1, 2, …, n}, 由m台相同的机器进行加工处理. 作业i所需时间为t i. 约定:任何作业可以在任何一台机器上加工处理, 但未完工前不允许中断处理,任何作业不能拆分成更小的子作业。要求给出一种作业调度方案,使所给的n 个作业在尽可能短的时间内由m台机器加工处理完成。  2、贪心算法求解思路  将n个作业依其所需的处理时间从大

至少努力过 2284

贪心算法在多机调度问题中的应用与布局样式设计

贪心算法(Greedy Algorithm)是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法。它在问题解决中具有高效性和实用性,尤其适用于具有贪心选择性质的问题。贪心选择性质指的是通过局部最优解能够产生全局最优解。多机调度问题是计算机科学和运筹学中一个经典的优化问题,主要关注如何在多个处理单元上高效地安排一系列任务,使得整体性能达到最优。这个问题可以广泛地应用在工业生产、计算机系统、服务行业等多个领域。

weixin_35762258的博客 877

贪心算法解决多机调度问题

首先,按照作业完成时间将作业从大到小排序,为{16,14,6,5,4,3,2}然后分别将16,14,6安排在M1,M2,M3三台机器上,然后进行比较。贪心算法只考虑眼前利益,不通盘考虑问题的所有可能,每一步做出当时看起来最佳的选择(局部最优选择)利用贪心算法求解的问题往往具有两个重要的特性,贪心选择性质和最优子结构性质。作业项数为你n,机器数为m。最优子结构,当一个问题的最优解包含其子问题的最优解释,称此问题具有最优子结构性质问题的最优子结构性质,是该问题是否可用贪心算法求解的关键。

weixin_62434171的博客 5557

实战解析:从Innovus到Calibre的LVS错误排查全流程

本文详细解析了从Innovus到Calibre的LVS错误排查全流程,涵盖物理验证关键步骤与工具链协同。通过实战案例分享,重点解决器件不匹配、连接性错误等常见问题,并提供GDS导出规范、网表修正策略等实用技巧,帮助工程师高效完成芯片设计物理验证。

9o8p7i6u5y的博客 1036

CANopen PDO 配置實戰:3步完成0x1800-0x1A00物件字典映射與事件觸發

本文详细解析CANopen PDO配置实战,通过3个关键步骤完成0x1800-0x1A00对象字典映射与事件触发设置。重点介绍COB-ID位域解析、映射参数配置及事件触发优化,帮助工程师实现工业自动化设备间毫秒级实时数据交换,提升系统通信效率。

weixin_33709609的博客 379

【贪心法】多机调度问题

问题描述   设有n个独立的作业{1, 2, …, n},由m台相同的机器{M1, M2, …, Mm}进行加工处理,作业i所需的处理时间为ti(1≤i≤n),每个作业均可在任何一台机器上加工处理,但不可间断、拆分。多机调度问题要求给出一种作业调度方案,使所给的n个作业在尽可能短的时间内由m台机器加工处理完成。   设7个独立作业{1, 2, 3, 4, 5...

欢迎来到关关雎鸠儿的博客 1万+

【生成数据集EXCEL文件】使用生成对抗网络GAN生成数据集:输出生成数据集EXCEL

生成器的任务是接收随机噪声向量作为输入,并尽可能生成与真实数据相似的样本,而判别器则是一个二分类器,旨在区分输入的样本是来自生成器生成的,还是来自真实数据。在训练过程中,生成器和判别器通过对抗学习的方式相互博弈,生成器的目标是生成足以欺骗判别器的样本,而判别器的目标则是尽可能准确地判断样本的真实性。GAN网络在多个领域展现了强大的能力,能够生成与训练数据分布相似的新数据,包括但不限于图像生成、图像风格转换、超分辨率、数据增强、视频生成、自然语言处理、医学图像处理以及游戏与虚拟现实等。

hustef的博客 1521

求解多机调度问题 —— 贪心算法

1.问题分析 设有n个独立的作业{1, 2, …, n},由m台相同的机器{M1, M2, …, Mm}进行加工处理,作业i所需的处理时间为ti(1≤i≤n),每个作业均可在任何一台机器上加工处理,但不可间断、拆分。多机调度问题要求给出一种作业调度方案,使所给的n个作业在尽可能短的时间内由m台机器加工处理完成。 2.问题的解决方法 贪心算法求解多机调度问题的贪心策略是最长处理时间的作业优先,即把处理时间最长的作业分配给最先空闲的机器,这样可以保证处理时间长的作业优先处理,从而...

Ennd_me的博客 1万+

从零开始:Ubuntu 24.04 LTS + Win11双系统安装教程

本文将简单直白介绍如何从零开始在同一台电脑上安装 Ubuntu 24.04 LTS 和 Windows 11,你可以在需要进行专业开发或运维工作时,轻松切换到 Ubuntu,享受其带来的高效与自由;而在日常学习生活和娱乐休闲时,依然可以无缝使用熟悉的 Windows 环境。

萑澈的博客 8114

MyEclipse 2017 CI 10安装与激活

本文介绍MyEclipse 2017 CI 7、CI 8、CI 9和CI 10的安装与激活。此方法理论上应该能激活MyEclipse 2017 CI所有系列,即激活方法是通用的,只是激活文件略有不同。本文提供MyEclipse 2017 CI 7、CI 8、CI 9和CI 10的激活文件。说明:博主所提供的压缩包格式均为RAR5,即WinRAR 5.0以上的版本才能正常解压,别的压缩软件博主不太清...

weixin_42539046的博客 9416

贪心法_多机调度问题

设有 n 个独立的作业 { 1 , 2 , .. , n },由 m 台相同的机器进行加工处理。作业 i 所需的处理时间为 ti。现约定,任何作业可以在任何一台机器上加工处理,但未完工前不允许中断处理。任何作业不能拆分成更小的作业。多机调度问题要求给出一种作业调度方案,使所给的 n 个作业在尽可能短的时间内由 m 台机器加工处理完成。分析:这个问题是一个NP完全问题,到目前为止还没有一个有效的解法

4194

D19: OpenClaw 安全性配置指南

在 OpenClaw 的 30 天探索旅程中,我们已经探讨了邮件自动化(D18)。今天进入安全专题,我将分享一个至关重要的话题:OpenClaw 安全性配置指南。 随着 OpenClaw 深入工作流核心,它掌握了越来越多的敏感信息: API Keys(GitHub、飞书、Notion、Jira...) 企业数据(代码库、文档、聊天记录) 个人数据(日历、邮件、任务) 系统权限(文件读写、命令执行、网络访问) 安全不是可选项,而是必选项。一次配置失误可能导致: API Key 泄露 → 账号被盗用权限

刘一说的IT专栏 203

贪心法求解多机调度问题

问题描述 设有n个独立的作业{1,2,…,n},由m台相同的机器{1,2, …,m}进行加工处理,作业i所需的处理时间为ti(1≤i≤n),每个作业均可在任何一台机器上加工处理,但未完工前不允许中断,任何作业也不能拆分成更小的子作业。 多机调度问题要求给出一种作业调度方案,使所给的n个作业在尽可能短的时间内由m台机器加工处理完成。 问题求解 贪心法求解多机调度问题的贪心策略是最长处理时间作业优先,...

LixDemon的博客 3279

基于C#的工业机器人上位机控制程序开发(搭配松下PLC+MC协议)

基于C#的工业机器人上位机控制程序开发,核心是上位机与松下PLC的MC协议通信和机器人控制的安全逻辑,而不是单纯的界面编写。在工控现场,程序的稳定性和安全性永远是第一位的——比如解耦通信逻辑、处理跨线程问题、添加安全互锁、记录操作日志,这些都是保证产线稳定运行的关键。新手在学习时,建议先跟着步骤搭建好环境,跑通基础的PLC通信和机器人控制功能,再逐步尝试进阶优化。数据模型化、通信封装化、逻辑模块化、UI解耦化。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1239

DNA图谱分析:自动分析DNA图谱中的变异YOLOv5、YOLOv8、YOLOv10

YOLO(You Only Look Once)是一种基于卷积神经网络(CNN)的目标检测模型,因其高效的检测速度和优异的精度而广泛应用于计算机视觉任务。一次性检测:与传统的目标检测方法不同,YOLO通过回归方法同时预测多个边界框和类别信息,从而实现高效的目标检测。高精度与高速度:YOLO在检测精度和速度之间找到了平衡,适用于实时目标检测任务。

YOLO 730

多机调度问题的贪心算法解决

问题描述:设有n个独立的作业{1,2,…,n},由m台相同的机器进行加工处理。作业i所需时间为Ti.约定:任何作业可以在任何一台机器上加工处理,但未完工前不允许中断处理,任何作业不能拆分成更小的子作业。要求给出一种作业调度方案,使所给的n个作业在尽可能短的时间内由m台机器加工处理完成。多机调度问题是一个经典的组合优化问题,其目标是将一组任务分配给多台机器,使得所有任务完成所需的总时间(称为)最小化。假设每台机器的处理能力相同,并且每个任务都需要一定的时间来完成。

2302_81237780的博客 1218

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

贪心算法分析-多机调度问题

多机调度问题 利用贪心法设计算法求解如下问题: 要求给出一种作业调度方案,使所给的n个作业在尽可能短的时间内由m台机器加工处理完成。约定,每个作业均可在任何一台机器上加工处理,但未完工前不允许中断处理。作业不能拆分成更小的子作业。 这个问题是一个NP完全问题,到目前为止还没有一个有效的解法。对于这一类问题,用贪心选择策略有时可以设计出较好的近似算法。 可以考虑以下的贪心策略: (1)最长处理时间作业优先的贪心选择策略。 (2)最短处理时间作业优先的贪心选择策略。 (3)作业到达时间优先的贪心选择策略。 测试

qwqc262的博客 1898

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

【贪心算法】多机调度问题

n}, 由m台相同的机器进行加工处理. 作业i所需时间为t i. 约定:任何作业可以在任何一台机器上加工处理, 但未完工前不允许中断处理,任何作业不能拆分成更小的子作业。void MinHeap::FilterDown(const int start,const int end) //自上往下调整,使关键字小的节点在上。cout

liuliuhelingdao的博客 1231

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

下一篇: 超详细的Prim算法解析
神说要有光 ye
博客等级 码龄8年 463粉丝 26原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值