一道算法题。求高手!重谢

寒飞a 2011-12-04 11:30:37
是一个关于利用率问题的题目

在一个大矩形里 切割 一个 或者 多个规格 的小矩形 ,怎么样切大矩形的利用率是最高的 。
...全文
229 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
moon___star 2011-12-04
  • 打赏
  • 举报
回复
动态规划来做,效果一定不错。
寒飞a 2011-12-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 litaoye 的回复:]
规格不多的话可以枚举,如果有几十个,恐怕就很难算了。


引用 3 楼 luoyehanfei 的回复:
引用 2 楼 litaoye 的回复:
问题本身是NP的,只能找些近似的方法,当然矩形数量不多的情况系可以考虑枚举

把大矩形 和 所要切的规格当作参数传入 。它们既然都有尺寸和数字,应该是能求出最优良的切法的吧。
[/Quote]

嗯,我就是想看看能不能解决这个算法。
绿色夹克衫 2011-12-04
  • 打赏
  • 举报
回复
规格不多的话可以枚举,如果有几十个,恐怕就很难算了。

[Quote=引用 3 楼 luoyehanfei 的回复:]
引用 2 楼 litaoye 的回复:
问题本身是NP的,只能找些近似的方法,当然矩形数量不多的情况系可以考虑枚举

把大矩形 和 所要切的规格当作参数传入 。它们既然都有尺寸和数字,应该是能求出最优良的切法的吧。
[/Quote]
寒飞a 2011-12-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 litaoye 的回复:]
问题本身是NP的,只能找些近似的方法,当然矩形数量不多的情况系可以考虑枚举
[/Quote]

把大矩形 和 所要切的规格当作参数传入 。它们既然都有尺寸和数字,应该是能求出最优良的切法的吧。
绿色夹克衫 2011-12-04
  • 打赏
  • 举报
回复
问题本身是NP的,只能找些近似的方法,当然矩形数量不多的情况系可以考虑枚举
寒飞a 2011-12-04
  • 打赏
  • 举报
回复
我用js写了一段代码 来分页这个题目的需求。大家可以看下,不喜勿喷。 求优良的算法。。。。。。。。。。。。。。
//算法 问题:一张纸按照指定的一个或多个规格分切,怎么样利用率最大 ?

//重点1 :规格分为1个或者多个
//重点2 : 如果是多规格 ,有没有指定没种规格最少需要多少呢 ?还是直接按照最优的切出来就行 ?

/**********函数体************/
//需要准备的参数 ?1 纸张对象 (对象具备宽高属性)
// 2 要切的纸张规格对象 ? 因为具备多种规格,此对象为数组。
// (每个数组的成员为一个对象 具备宽高属性 另,具备一个最少切割数属性)
// oldobj设置 x y属性
//objpar的每个成员有x y 和 conts 属性 x y 表示宽高 conts 表示最少切割数
//分析: 所切矩形面积之和
function Cutpager(oldobj, objpar) {
//首先我们获取原始纸张的宽和高
var owidth = oldobj.x;
var oheight = oldobj.y;
var par = new Array();//此数组用来记录刚好切完的单个最优规格。
//首先我们确定下 如果切完的规格刚好为0.那么此种算法肯定利用率就最大。我们先来一个循环

var iszerno = 0;//记录是否有最小切割数不能为0的 。此时的0是记录有几个最少切割数不能为0的。
for (var i = 0; i < objpar.length; i++) {
//在进行此项操作的时候我们必须要判断,判断对象的最小切割数是不是0,如果规定了必须最少切多少个,肯定不能这样算。
if (objpar[i].conts != 0) { //如果当前对象最小切割输
iszerno++;
}
}
//当循环体执行完毕的时候我们就知道是否有不为0的了。
if (iszerno == 0) { //如果所有的规格并没有规定最少应该切多少个。
//执行第一种排查 将每个规格的元素逐个排查,看能否刚好切割完大的矩形,那么我们就只切这一种纸了。
//这里我们应该做一个正则表达式 来判断一个为正整数的数组 ,还是执行循环。
//循环规格数组
for (var i = 0; i < objpar.length; i++) {
//这里应该把当前规格直接与大的矩形想对比 以 owidth*oheight/(objpar[i].x*objpar[i].y) 判断此值是否为正整数
if ((owidth * oheight) % (objpar[i].x * objpar[i].y) == 0) {
par.push(objpar[i]);
}
}
}
else if (iszerno == 1) {
//这里要考虑规格当中如果只有一种有最少要求切割数。那么它也可以当作唯一的规格来切割。
}
else {
//这里当然就是最少有2个规格都是有最少需要切割的数量,此时,要进行更为复杂算法。
}

}
SuperFC 2011-12-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 sanyloveyou1 的回复:]

动态规划来做,效果一定不错。
[/Quote]

我认为DP在这用不好,还是得用纯数学的知识解决。
内容概要:本文提出了一种面向通信优化的微电网分布式二次电压频率调控与功率均分方法,并通过Simulink平台进行了仿真实现。该方法针对孤岛微电网中多分布式电源的协同控制问,采用分布式控制架构以减少对中央控制器的依赖,提升系统的可靠性与可扩展性。通过引入高效的通信机制与事件触发策略,在确保电压和频率快速精确恢复的同时,实现了各电源间有功与无功功率的均衡分配。文章详细阐述了控制算法的设计原理、稳定性分析过程以及关键参数的整定方法,并依托Simulink搭建完整的仿真模型,验证了所提方法在动态响应性能、抗干扰能力及通信资源利用率方面的优越性。; 适合人群:具备一定电力系统基础知识和仿真能力的研究生、科研人员及从事微电网、分布式能源系统相关工作的工程技术人员。; 使用场景及目标:①用于研究微电网中分布式电源的协调控制策略;②适用于需要实现电压频率恢复与负载功率均分的实际微电网系统设计;③为应对通信资源受限场景下的控制优化提供解决方案;④作为教学案例帮助理解分布式控制与二次调控机制。; 阅读建议:建议结合Simulink仿真模型同步学习,重点关注控制结构设计与参数整定部分,同时可延伸阅读文中提及的事件触发机制与弹性协同控制相关内容以加深理解。
内容概要:本文针对高比例清洁能源接入下的配电网重构问,提出了一种融合需响应机制的优化模型,并基于标准IEEE33节点系统进行仿真验证。研究通过引入需响应策略,动态调节用户侧负荷,增强系统对风电、光伏等波动性可再生能源的消纳能力,同时结合网络拓扑重构以降低网损、改善电压分布,提升配电网运行的经济性与安全性。文中详细构建了计及辐射状约束、功率平衡与设备容量限制的混合整数非线性优化模型,采用智能优化算法解开关操作序列与需响应调度方案的协同最优解。通过Matlab编程实现仿真分析,验证了该方法在多重运行场景下的有效性与鲁棒性。; 适合人群:具备电力系统分析基础、熟悉Matlab编程工具,从事新能源并网、智能配电网优化、需响应等领域研究的科研人员、高校研究生及工程技术人员。; 使用场景及目标:①应用于高渗透率分布式能源接入的配电网运行优化;②实现需响应与网络重构的协同调度,提升系统灵活性与稳定性;③为智能配电网的规划、调度与决策支持提供技术参考与仿真平台。; 阅读建议:建议读者结合所提供的Matlab代码深入理解建模逻辑与算法实现流程,优先复现基础案例并逐步调整参数设置以探究不同需响应强度、新能源出力波动等情景下的优化效果,亦可进一步扩展至多时段动态重构、储能协同优化等更复杂场景的研究。
内容概要:本文研究了基于QLearning自适应强化学习的PID控制器在自主水下航行器(AUV)运动控制中的应用,旨在解决传统PID控制器在复杂动态水下环境中参数整定困难、适应性不足的问。文章首先建立了AUV的动力学模型并分析了其在水下扰动环境中的运动特性,进而提出一种将QLearning算法与PID控制相结合的自适应优化策略。该方法通过构建合理的状态空间、动作空间及奖励函数,使控制器能够依据实时控制误差和外部干扰自主调整PID参数,从而提升系统的响应速度、稳定性和抗干扰能力。研究在Matlab平台上进行了仿真实验,涵盖了稳态、恒定扰动和随机扰动等多种工况,结果表明所提出的QLearning-PID控制器在各项性能指标上均优于传统PID控制,验证了其有效性与鲁棒性。; 适合人群:具备自动控制理论、机器人建模与强化学习基础知识,从事水下机器人控制、智能控制算法开发及相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于提升AUV在复杂海洋环境下的轨迹跟踪精度与姿态控制性能;②为自适应控制策略与强化学习算法在实际工程系统中的深度融合提供技术参考与实现范例;③适用于智能控制器的设计、仿真验证、算法对比及优化研究。; 阅读建议:建议读者结合Matlab代码实现部分,深入理解QLearning与PID融合的程序逻辑,重点关注状态设计、奖励函数构造与参数更新机制,并可通过修改环境扰动或控制目标进行拓展实验。

33,025

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧