贪心算法和遗传算法优劣对比——c#

news2025/3/14 21:29:26

       

项目背景:某钢管厂的钢筋原材料为 55米,工作需要需切割 40 米(1段)、11 米(15 段)等 4 种规格 ,现用贪心算法和遗传算法两种算法进行计算:
第一局:{ 40, 1 },  { 11, 15 },{ 10, 1 }, { 5,1},如何切割最省原材料?

运行结果如下:

贪心算法切割方案:
原材料 1: [40, 11 ]剩余: 4 米
原材料 2: [11, 11, 11, 11, 11 ]剩余: 0 米
原材料 3: [11, 11, 11, 11, 11 ]剩余: 0 米
原材料 4: [11, 11, 11, 11, 10 ]剩余: 1 米
原材料 5: [5 ]剩余: 50 米
共需要5个原材料,总剩余: 55 米,贪心算法利用率: 80.00%
部分长度未切割完毕。
遗传算法切割方案:
原材料 1: [11, 11, 11, 11, 11] 剩余 0 米
原材料 2: [11, 11, 11, 11, 11] 剩余 0 米
原材料 3: [11, 11, 11, 11, 11] 剩余 0 米
原材料 4: [40, 10, 5] 剩余 0 米
遗传算法共需要4个原材料,总剩余: 0 米,遗传算法利用率: 100.00%

============ 方案对比 ============
贪心算法: 使用原材料 5 个,总剩余 55 米,利用率 80.00%
遗传算法: 使用原材料 4 个,总剩余 0 米,利用率 100.00%
最佳方案:遗传算法,利用率更高 100.00% > 80.00%

第一局,遗传算法获胜。

第二局,修改需求如下: 工作需要需切割 40 米(11段)、11 米(15 段)等 4 种规格  { 40, 11 },  { 11, 15 },{ 10, 11}, { 5,11}

运算结果:

贪心算法切割方案:
原材料 1: [40, 11 ]剩余: 4 米
原材料 2: [40, 11 ]剩余: 4 米
原材料 3: [40, 11 ]剩余: 4 米
原材料 4: [40, 11 ]剩余: 4 米
原材料 5: [40, 11 ]剩余: 4 米
原材料 6: [40, 11 ]剩余: 4 米
原材料 7: [40, 11 ]剩余: 4 米
原材料 8: [40, 11 ]剩余: 4 米
原材料 9: [40, 11 ]剩余: 4 米
原材料 10: [40, 11 ]剩余: 4 米
原材料 11: [40, 11 ]剩余: 4 米
原材料 12: [11, 11, 11, 11, 10 ]剩余: 1 米
原材料 13: [10, 10, 10, 10, 10, 5 ]剩余: 0 米
原材料 14: [10, 10, 10, 10, 10, 5 ]剩余: 0 米
原材料 15: [5, 5, 5, 5, 5, 5, 5, 5, 5 ]剩余: 10 米
共需要15个原材料,总剩余: 55 米,贪心算法利用率: 93.33%
部分长度未切割完毕。
遗传算法切割方案:
原材料 1: [40] 剩余 15 米
原材料 2: [40] 剩余 15 米
原材料 3: [40] 剩余 15 米
原材料 4: [40] 剩余 15 米
原材料 5: [40] 剩余 15 米
原材料 6: [40] 剩余 15 米
原材料 7: [40] 剩余 15 米
原材料 8: [40] 剩余 15 米
原材料 9: [40] 剩余 15 米
原材料 10: [40] 剩余 15 米
原材料 11: [40, 11] 剩余 4 米
原材料 12: [11, 11, 11, 11, 11] 剩余 0 米
原材料 13: [11, 11, 11, 11, 11] 剩余 0 米
原材料 14: [11, 11, 11, 11, 10] 剩余 1 米
原材料 15: [10, 10, 10, 10, 10] 剩余 5 米
原材料 16: [10, 10, 10, 10, 10, 5] 剩余 0 米
原材料 17: [5, 5, 5, 5, 5, 5, 5, 5, 5, 5] 剩余 5 米
遗传算法共需要17个原材料,总剩余: 165 米,遗传算法利用率: 82.35%
============ 方案对比 ============
贪心算法: 使用原材料 15 个,总剩余 55 米,利用率 93.33%
遗传算法: 使用原材料 17 个,总剩余 165 米,利用率 82.35%
最佳方案:贪心算法,利用率更高 93.33% > 82.35%

第二局,贪心算法获胜

然而,最佳答案为 40 +10 +5 米分一组,需要11根原材料。11米的单独一组,11*15/55=3根原材料。11+3=14,共需14个原材料,利用率100%。由此可见,每种算法各有优缺点,不一定是最优解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2315080.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络安全防护总体架构 网络安全防护工作机制

1 实践内容 1.1 安全防范 为了保障"信息安全金三角"的CIA属性、即机密性、完整性、可用性,信息安全领域提出了一系列安全模型。其中动态可适应网络安全模型基于闭环控制理论,典型的有PDR和P^2DR模型。 1.1.1 PDR模型 信息系统的防御机制能…

SpringCloud带你走进微服务的世界

认识微服务 随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢? 单体架构 单体架构:将业务的所有功能集中在一个项目中开发,打成一个包部…

Python设计模式 - 建造者模式

定义 建造者模式是一种创建型设计模式,主要用于构建包含多个组成部分的复杂对象。它将对象的构建过程与表示分离,使得同样的构建过程可以创建不同的对象表示。 结构 抽象建造者(Builder):声明创建产品的各个部件的方…

在 Ubuntu 上安装和配置 Docker 的完整指南

Docker 是一个开源的平台,旨在简化应用程序的开发、部署和运行。通过将应用程序及其依赖项打包到容器中,Docker 确保应用程序可以在任何环境中一致地运行。 目录 前言安装前的准备安装 Docker 步骤 1:更新包索引步骤 2:安装必要…

网络安全之数据加密(DES、AES、RSA、MD5)

刚到公司时,我的工作就是为app端提供相应的接口。之前app使用的是PHP接口,对数据加密方面做得比较少。到使用java接口时,老大开始让我们使用DES加密,进行数据传输,但是后来觉得DES是对称加密,密钥存在客户端…

基于SpringBoot的“校园周边美食探索及分享平台”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“校园周边美食探索及分享平台”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 校园周边美食探索及分享平台结构图…

vscode关闭仓库后如何打开

vscode源代码管理->更改->代码 关闭仓库后如何打开。 关闭仓库操作 打开仓库操作 1.按下 Ctrl Shift P(Windows/Linux)或 Cmd Shift P(Mac)打开命令面板。 2.在命令面板中输入 Git: Open Repository,然后选…

DeepSeek-R1 论文阅读总结

1. QA问答(我的笔记) Q1: DeepSeek如何处理可读性问题? 通过构建冷启动数据(数千条长CoT数据)微调基础模型,结合多阶段训练流程(RL训练、拒绝采样生成SFT数据),并优化输…

Linux 》》Ubuntu 18 LTS 之后的版本 修改IP地址 主机名

进入目录 /etc/netplan 修改 50-cloud-init.yaml 》保存文件后,执行以下命令应用更改: sudo netplan apply 》》 DHCP模式 修改主机名 hostnamectl set-hostname xxxx 修改cloud.cfg 防止重启主机名还原 但测试下来 不修改, 重启 也不会还…

泰山派开发之—Ubuntu24.04下Linux开发环境搭建

简介 最近翻到了吃灰已久的泰山派,是刚出来的时候用优惠券买的,当时价格挺便宜的,最近给它翻出来了,打算试试做个项目。买的泰山派容量是2G16G,SOC芯片使用的是RK3566,搭载1TOP算力的NPU,并且具…

哈尔滨算力服务器托管推荐-青蛙云

哈尔滨年平均气温3.5摄氏度,有发展云计算和算力数据中心的天然优势 ,今天为哈尔滨算力服务器托管服务商:青蛙云,黑龙江经营17年的老牌IDC服务商。 先来了解下算力服务器: 算力服务器,尤其是那些用于运行人…

openharmony体验

openharmony5 去年已经出来了 如果以前做过android开发的,学起来不难,关键 1:环境 DevEco Studio 5.0.3 Beta2 https://developer.huawei.com/consumer/cn/deveco-studio/ win10_64bit CPU amd64(不是arm的) 2:安装 执行EXE 安装就行&#x…

[Ai 力扣题单] 数组基本操作篇 27/704/344/386

题单分类:DeepSeek刷力扣辅助题单 存留记录-CSDN博客 27 27. 移除元素 - 力扣(LeetCode) 这道题就一个点 1.数组在内存上连续 所以要么赋值覆盖,要么移动覆盖,但是它要求了前 k 个元素 所以只能移动覆盖 所以我有了如下思考过程: 3223 , 3举例 如果是…

Linux入门 全面整理终端 Bash、Vim 基础命令速记

Linux入门 2025 超详细全面整理 Bash、Vim 基础命令速记 刚面对高级感满满的 终端窗口是不是有点懵?于是乎,这份手册就是为你准备的高效学习指南!我把那些让人头大的系统设置、记不住的命令都整理成了对你更友好的格式,让你快速学…

AI智能代码疫苗技术,赋能数字化应用内生安全自免疫

“DevSecOps市占率持续领先,IAST探针覆盖率十倍增长,代码疫苗技术已成功帮助上千家行业用户成功抵御‘Log4j2.x’等重大未知漏洞的利用攻击。”子芽在腾讯专访中透露。 这是2021年悬镜安全交出的一张成绩单。悬镜安全是DevSecOps敏捷安全先行者&#xf…

《SQL性能优化指南:新手如何写出高效的数据库查询

新手程序员如何用三个月成为SQL高手?万字自学指南带你弯道超车 在数据为王的时代,掌握SQL已成为职场新人的必修课。你可能不知道,仅用三个月系统学习,一个零基础的小白就能完成从数据库萌新到SQL达人的蜕变。去年刚毕业的小王就是…

【TES817】基于XCZU19EG FPGA的高性能实时信号处理平台

板卡概述 TES817是一款基于ZU19EG FPGA的高性能实时信号处理平台,该平台采用1片高性能的FPGA:XCZU19EG-2FFVC1760I作为主处理器,FPGA的PL端外挂1组72位DDR4 SDRAM,用来实现超大容量数据缓存,FPGA的PS端外挂1组72位的D…

Python 进程与线程-分布式进程

目录 分布式进程 小结 分布式进程 在Thread和Process中,应当优选Process,因为Process更稳定,而且,Process可以分布到多台机器上,而Thread最多只能分布到同一台机器的多个CPU上。 Python的multiprocessing模块不但支…

初阶数据结构(C语言实现)——5.2 二叉树的顺序结构及堆的实现

1.二叉树的顺序结构及实现 1.1 二叉树的顺序结构 普通的二叉树是不适合用数组来存储的,因为可能会存在大量的空间浪费。而完全二叉树更适合使用顺序结构存储。现实中我们通常把堆(一种二叉树)使用顺序结构的数组来存储,需要注意的是这里的堆和操作系统…

ArcGIS Pro 车牌分区数据处理与地图制作全攻略

在大数据时代,地理信息系统(GIS)技术在各个领域都有着广泛的应用,而 ArcGIS Pro 作为一款功能强大的 GIS 软件,为数据处理和地图制作提供了丰富的工具和便捷的操作流程。 车牌数据作为一种重要的地理空间数据&#xf…