2018年数学建模国赛B题 智能RGV的动态调度策略
第一种情况大致思路: 每秒判断各个CNC的状态,若工作完成或者是出于空闲状态下则向RGV发出一个请求。同时,RGV每秒判断自己的状态(上下料、移动、闲置、清洗等),如果是处于闲置状态,则启用调度算法,把目前在闲置的CNC做一个全排列,计算把他们都换上料所花的时间。得到最优方案后再决定这次给谁上料,同时切换状态。
第二种情况大致思路: 大致与上面的相同,还是每秒判断各种状态,再特殊时段启用调度算法决定去哪,不过这里是双工序,所以需要在初始确定一种刀片分配方案。这里用循环直接枚举出所有的分配方案,每一种在仿真八个小时(实际上就是几秒,不显示界面的话)得到一个分数,选择最好的一种分配方案。这里对于某一种确定的分配方案,我们在调度的时候,选择把空闲的一号刀片CNC与二号刀片CNC放在两个列表中,也是对两个列表做一个全排列,并计算交错运行的间隔时间,找到最短方案。(比如1 2 是一号刀片 3 4 5是二号刀片 因为一个长一个短,全排列后也无法正好一个一号一个二号全上一次料,所以我们以短的那组作为上下料的数目 这里第一个列表长度是2 第二个是3 所以计算两对即可,去一个一号工序的,去一个二号工序的;再去一个一号,再去另一个二号;计算过程中所有CNC的等待时间),因为我们两个列表都做了全排列,且取较短的那个,所以可以穷举所有情况:比如最终采取1 4 2 5,然后在完成1 4之前就不再变动,当1 4 完成后,重新启用调度算法,对剩下的空闲CNC再算一次,决定当前状态下怎么抉择最好。
第三种情况大致思路: 这里我们启用了一种智能的调度算法,框架大体同上,只是让RGV每时每刻都处于一个接收命令的状态,所以命令列表就是所有的CNC,而非空闲的CNC了。对所有CNC进行全排列,计算去哪一个花费的时间少。并直接过去,如果此CNC未完成工作就继续等待。在完成一个工作后,立马计算当前状态下应该前往哪一个CNC那里。双刀片类似。
2018年数学建模国赛B题代码 本代码实现的是一个仿真模型,并在优化模型中使用了智能化的小车
具体代码太长,已经上传到Github:https://github.com/xiaoDragon/-2018-mathematical-modeling-competition-Question-B
2018年数学建模国赛B题 智能RGV的动态调度策略的更多相关文章
- 2018数学建模国赛总结(A题/编程选手视角)
2018数学建模已经告一段落了,先说说基本情况吧,我们队伍专业分别为:金融(A),会计(B),计算机(我),配置还算可以,他们俩会数据分析软件也会写论文,我可以写代码,画图.他们俩打过美赛(M奖),我 ...
- 2017年第六届数学中国数学建模国际赛(小美赛)C题解题思路
这篇文章主要是介绍下C题的解题思路,首先我们对这道C题进行一个整体的概括,结构如下: C题:经济类 第一问:发现危险人群. 发现:欺诈的方式开始.雇佣或浪漫的承诺. 数据→确定特定的经济萧条地区→确定 ...
- 2017 年“认证杯”数学中国数学建模网络挑战赛 C题思路讲解
之前有小伙伴私信我叫我说说这次比赛C题的思路,怎么写的,我就写篇博客说说吧,仅供参考! 针对C题,该题目比较综合,是一个成熟的数模赛题,与国赛的相似性较高.一般而言,第一问难度较低,题目要求进行数据挖 ...
- 2019建模美赛B题(派送无人机)M奖论文
昨天上午出了建模美赛的结果,我们小组获得的是M奖,感觉挺开心的.我一直觉得拿O奖那种是个概率事件,需要天时地利人和的各种因素都合适才行,所以看到自己是M奖,感觉自己的能力已经得到了认可就很满意了.今天 ...
- 2018年蓝桥杯b组国赛真题
1.标题:换零钞x星球的钞票的面额只有:100元,5元,2元,1元,共4种.小明去x星旅游,他手里只有2张100元的x星币,太不方便,恰好路过x星银行就去换零钱.小明有点强迫症,他坚持要求200元换出 ...
- 2018 ACM-ICPC徐州站网络赛 G题
There's a beach in the first quadrant. And from time to time, there are sea waves. A wave ( xxx , yy ...
- 无聊的活动/缘生意转(2018 Nova OJ新年欢乐赛B题)解题报告
题目2(下面的太抓 我重新写了个背景 其他都一样) 无聊的活动 JLZ老师不情愿的参加了古风社一年一度的活动,他实在不觉得一群学生跳舞有什么好看,更不明白坐在身后的学生为什么这么兴奋(看小姐姐),于是 ...
- 平方十位数(蓝桥杯第八届国赛真题 JAVA-B组)
思路:从大到小枚举,判断其平方是否不重复 答案:9814072356 //水题 标题:平方十位数 由0~9这10个数字不重复.不遗漏,可以组成很多10位数字. 这其中也有很多恰好是平方数(是某个数的平 ...
- 2016国赛B题小区数据爬取软件
-------------------------请以任何方式留言给作者,否则视为窃取----------------------------- 看你们找数据找的那么辛苦 我就苦逼的花了1个小时写了个 ...
随机推荐
- 关于Unity3d的Quaternion.Slerp的学习
首先在场景中创建三个cube的GameObject,from表示要转换之前的样子,to表示转换之后的样子,change表示转的效果.如下图所示: 其中from和change cube开始运行之前的tr ...
- cocos2dx中node的pause函数(lua)
time:2015/05/14 描述 lua下使用node的pause函数想暂停layer上的所有动画,结果没有效果 1. pause函数 (1)cc.Node:pause 代码: void Node ...
- Python学习---抽屉框架分析[数据库设计分析]180313
基本的: models.py ####################################以下都是抽屉的代码#################################### fro ...
- 搭建企业级全网数据定时备份方案[cron + rsync]2
1.1.1. rsync服务注意的问题 1.服务端 path=/backup/ -->带/ 2.客户端 rsync -avz /tmp/ rsync_backup@192.168.25. ...
- 乘风破浪:LeetCode真题_007_Reverse Integer
乘风破浪:LeetCode真题_007_Reverse Integer 一.前言 这是一个比较简单的问题了,将整数翻转,主要考察了取整和取余,以及灵活地使用long型变量防止越界的问题. 二.Reve ...
- 利用describe( )中的count来检查数据是否缺省
#-*- coding: utf-8 -*- #在python的pandas库中,只需要读入数据,然后使用describe()函数就可以查看数据的基本情况 import pandas as pd in ...
- 获取主机ip地址
直接访问http://icanhazip.com
- Python cx_oracle自动化操作oracle数据库增删改查封装,优化返回查询数据
# coding=utf-8 import cx_Oracle import os import json os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_C ...
- gdb tui中切换窗口
gdb的gui用法 调试代码的时候,只能看到下一行,每次使用list非常烦,不知道当前代码的context http://beej.us/guide/bggdb/#compiling 简单来说就是在 ...
- 用HTML编写漫威页面
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...