当前位置: 首页 > news >正文

网站修改思路岳阳seo公司

网站修改思路,岳阳seo公司,汕头公司网站建设,聊城市网站建设文章目录 写在前面代码分析 写在前面 总共是要四份代码#xff0c;好像都是实现背包问题#xff0c;前面三个都比较简单直观#xff0c;朋友上周在机房给我讲解了一下之后#xff0c;我大概弄清楚了#xff0c;这周好像是最后一次算法课了#xff0c;所以明天我得把剩下… 文章目录 写在前面代码分析 写在前面 总共是要四份代码好像都是实现背包问题前面三个都比较简单直观朋友上周在机房给我讲解了一下之后我大概弄清楚了这周好像是最后一次算法课了所以明天我得把剩下的那个实验代码讲一下。还要写之前小组作业的文档还有这个实验的文档。 害其实文档不需要有太大压力吧。改一改就好了。 代码 //模拟退火 // #include bits/stdc.h using namespace std; void knapsackSa(int w[], int v[], int n, int M) { //n件物品其重量和价值分别为w[i]和c[i]寻找将其装入容量为M的背包中物品的最大价值int i, j, dv, dw;int ans[n]; //定义解空间for (i 0; i n; i) { //初始化解为0ans[i] 0;}int val 0, wei 0; //初始化总价值和总重量float t0 500; //初始温度控制参数t的初值float t t0; //当前温度float a 0.95f; //衰减因子float e 0.00001f; //终止条件int L 100 * n; //等温迭代次数即每个温度都要迭代的次数即生成新解的个数while (t e) { //停止退火for (int k 0; k L; k) {i rand() % n; //随机选取第i件物品-生成新解if (ans[i] 0) { //若i不在背包中 (则考虑将i放入背包)if (wei w[i] M) { //且加入总重量后不超过容量M,则直接放入背包中ans[i] 1;val val v[i];wei wei w[i];} else{ j rand() % n; //随机拿出物品jwhile (ans[j] 0) { //一直找直到找到一个在背包的物体j rand() % n; }dv v[i] - v[j];dw w[i] - w[j];if (wei dw M) //拿出j放入i后总重量后不超过容量Mif (dv 0 || (exp(dv / t) (double)(rand() / (double)RAND_MAX))) { //价值差大于0或以exp(dv/T)的接受概率接受新解ans[i] 1;ans[j] 0;val val dv;wei wei dw;}}} else { //若i在包中则考虑将i拿出j rand() % n; //随机选一个不在包里的物品while (ans[j] 1) {j rand() % n;}dv v[j] - v[i];dw w[j] - w[i];if(wei dw M)if (dv 0 || (exp(dv / t) (double)(rand() / (double)RAND_MAX))) { //价值差大于0或以exp(df/T)的接受概率接受新解ans[i] 0;ans[j] 1;val val dv;wei wei dw;}}}t t * a; //降温}cout 该0/1背包问题的最优解为 ;for (i 0; i n - 1; i) cout ans[i] ;cout endl 最大总价值为 val endl; } int main() {int n, M;//n件物品其重量和价值分别为w[i]和c[i]寻找将其装入容量为M的背包中物品的最大价值cout 请输入物品件数n和背包容量M: endl;cin n M;int w[n],v[n];cout 请依次输入物品重量和价值: endl;for (int i 0; i n; i) {cin w[i] v[i];}srand((unsigned)time(NULL)); //初始化随机函数种子(播种)srand((unsigned)time(NULL));是拿系统时间作为种子由于时间是变化的种子变化可以产生不相同的随机数。knapsackSa(w, v, n, M);return 0; } 分析 这只有几页介绍应该大概理解一下就好了吧。模拟退火算法表示的是最开始把系统加热然后让其冷却最后得到的就是一个比较稳定的状态。我还是不懂。 模拟退火算法视频 模拟退火算法博客教程 看完了上面两个教程感觉大概懂了一些了。现在去看一下代码。感觉就是贪心然后有一定的概率不贪心设计了一个函数这个函数的取值是一个概率函数依照这个概率不贪心。 又加了一些注释明天对着这个注释给助教讲了。还有就是自己就是太担心了有些事情可以大胆一点比如说去给助教讲这个算法害主要还是自己不是很熟练。反正明天一过去就讲早点讲不用排队。 //模拟退火 // #include bits/stdc.h using namespace std; void knapsackSa(int w[], int v[], int n, int M) { //n件物品其重量和价值分别为w[i]和c[i]寻找将其装入容量为M的背包中物品的最大价值int i, j, dv, dw;int ans[n]; //定义解空间for (i 0; i n; i) { //初始化解为0ans[i] 0;}int val 0, wei 0; //初始化总价值和总重量float t0 500; //初始温度控制参数t的初值float t t0; //当前温度float a 0.95f; //衰减因子这里加个 f 表示这个数字是单精度浮点数float e 0.00001f; //终止条件int L 100 * n; //等温迭代次数即每个温度都要迭代的次数即生成新解的个数while (t e) { //停止退火for (int k 0; k L; k) {i rand() % n; //随机选取第i件物品-生成新解if (ans[i] 0) { //若i不在背包中 (则考虑将i放入背包)if (wei w[i] M) { //且加入总重量后不超过容量M,则直接放入背包中ans[i] 1;val val v[i];//表示的是当前的背包里面放的总的价值wei wei w[i];//表示当前背包里面放的总的重量} else{ //这里表示的意思是 i 放不下但是抽到了 i 这个物品那么下面我们要重新找一个物品j rand() % n; //随机拿出物品jwhile (ans[j] 0) { //一直找直到找到一个在背包的物体j rand() % n; }//找到之后把 j 拿出来把 i 放进去对 j 多少有点不厚道了哈哈哈dv v[i] - v[j];//这个表示的是差值或者直接直观理解就好这样写可能还有点绕dw w[i] - w[j];if (wei dw M) //拿出j放入i后总重量后不超过容量Mif (dv 0 || (exp(dv / t) (double)(rand() / (double)RAND_MAX))) { //价值差大于0或以exp(dv/T)的接受概率接受新解ans[i] 1;//把 i 放进去ans[j] 0;//把 j 拿出来val val dv;wei wei dw;}}} else { //若i在包中则考虑将i拿出j rand() % n; //随机选一个不在包里的物品while (ans[j] 1) {j rand() % n;}dv v[j] - v[i];//表示的是把这件物品拿出来之后的情况dw w[j] - w[i];if(wei dw M)//wei 表示的是总重量if (dv 0 || (exp(dv / t) (double)(rand() / (double)RAND_MAX))) { //价值差大于0或以exp(df/T)的接受概率接受新解ans[i] 0;ans[j] 1;val val dv;wei wei dw;}}}t t * a; //降温}cout 该0/1背包问题的最优解为 ;for (i 0; i n - 1; i) cout ans[i] ;cout endl 最大总价值为 val endl; } int main() {int n, M;//n件物品其重量和价值分别为w[i]和c[i]寻找将其装入容量为M的背包中物品的最大价值cout 请输入物品件数n和背包容量M: endl;cin n M;int w[n],v[n];cout 请依次输入物品重量和价值: endl;for (int i 0; i n; i) {cin w[i] v[i];}//拿系统时间作为种子产生随机数srand((unsigned)time(NULL)); //初始化随机函数种子(播种)srand((unsigned)time(NULL));是拿系统时间作为种子由于时间是变化的种子变化可以产生不相同的随机数。//重量和价值的数组物品件数总的能承受的重量knapsackSa(w, v, n, M);return 0; }
http://www.hkea.cn/news/14305107/

相关文章:

  • 网站域名有了_网站如何建设手工活外发加工无押金
  • 采摘园网站建设方案网站建设公司如何拓宽业务
  • 重庆网领网站建设公司律师网站建设 优帮云
  • seo对网站的作用揭阳seo网站管理
  • 注销网站 取消接入青岛网站设计公司排名
  • 建站之星怎么安装烟台h5网站开发
  • 南昌定制网站开发多少钱文创产品设计展板
  • 上海周边网站建设新手如何学网站建设
  • 大学生网站制作作业免费下载做网站需要买网址吗
  • 建设银行杭州分行网站网页图片加载不出来
  • 番禺建设网站集团站长工具端口扫描
  • 佛山找人做网站中铁建设集团门户网站登陆
  • 淘宝网做宝贝详情用哪个网站网络营销产品策略树状图
  • 佛山知名网站建设公司广州网站空间
  • 站长平台有哪些湖南自驾旅游与房车协会
  • php除了做网站还能做什么国家信用信息公示网
  • 自己做网站什么网站比较好长春自主建站模板
  • 专业定制网站建设公司网站开发摊销期多少年
  • 一条龙网站建设哪家专业云指官网
  • l凉州区城乡建设部网站首页网页制作基础教程例子ppt
  • 南康网站建设南康在线作图加字图片
  • 做外贸接私单的网站如何做网站大图片
  • 各大网站创始人做网站怎么加入索引功能
  • 网页网站设计与制作百度公司地址
  • 腾讯云服务器做网站建筑工程网校排名
  • 手机网站打开微信支付功能网站后台更新了 前台不现实
  • 免费送的广告怎么在网站上做网络技术学习网站
  • 成品网站w灬源码1688高端集团官方网站建设公司
  • 域名和网站建设2023年没有封闭的网站有哪些
  • 网站建设页面外贸网站建设流程