简介

练习

question

有一个护士工作站点,每天(周一至周日)所需最少职员数量20,16,13,16,19,14,和12,并要求每个职员一周连续工作5天,试求每周所需最少职员数,并给出安排。

code

model:

sets:

days/mon..sun/:r,x;

indexs/1..5/:index;

endsets

data:

r=20 16 13 16 19 14 12; ! 每天所需的最少的职员数量;

enddata

min=@sum(days: x); !最小化每周所需要的的职员数量;

@for(days(i):@sum(indexs(j):x(@wrap(i-j+1, 7))) >= r(i));

@for(days:@gin(x));!约束x为整数变量;

end

answer

                        X( MON)        8.000000            1.000000
X( TUE) 2.000000 1.000000
X( WED) 0.000000 1.000000
X( THU) 6.000000 1.000000
X( FRI) 3.000000 1.000000
X( SAT) 3.000000 1.000000
X( SUN) 0.000000 1.000000

自问自答环节~~

wrap的使用方式?

wrap(i-j+1, 7) 返回 1 - 7 之间的内容, 比如, i = 1, j = 4, i - j + 1 = -2 --> 5 就像一个环

校验结果

MON 安排了8个人,往前再倒推4天就是MON上班的人数

8 + 0 + 3 + 3 + 6 = 20 >= 20; bingo

TWO 安排了2个人,往前在倒推4天就是TWO上班的人数

2 + 8 + 0 + 3 + 3 = 22 >= 16; bingo

再校验一个结果

SUN 安排了0个人,往前再倒推4天就是SUN上班的人数

0 + 3 + 3 + 6 + 0 >=12; bingo

lingo 练习3的更多相关文章

  1. 在Lingo中输入矩阵(通过Excel)

    举例说明:我要将'C:\Users\Lenovo\Desktop\lingodata.xlsx'里的数据导入lingo1.左键拖动选中'C:\Users\Lenovo\Desktop\lingodat ...

  2. LINGO使用教程(一)

    LINGO是用来求解线性和非线性优化问题的简易工具.LINGO内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO高效的求解器可快速求解并分析结果. 1.LINGO快速入门 当你在 ...

  3. lingo运筹学上机实验指导

    <运筹学上机实验指导>分为两个部分,第一部分12学时,是与运筹学理论课上机同步配套的4个实验(线性规划.灵敏度分析.运输问题与指派问题.最短路问题和背包问题)的Excel.LONGO和LI ...

  4. LinGo:疏散问题——线性规划,0-1规划

    个部门(A.B.C.D.E)组成.现要将它的几个部门迁出甲市,迁至乙市或丙市. (每个城市最多接纳三个部门) 除去因政府鼓励这样做以外,还有用房便宜,招工方便等好处.对这些好处已作出数量估计,其值如下 ...

  5. LinGo:装货问题——线性规划,整数规划,1988年美国数模B题

    7种规格的包装箱要装有两辆铁路平板车上去,包装箱的宽和高相同,但厚度(t,以cm计)和重量(以kg计)不同, 表A-1给出了每包装箱的厚度.重量和数量,每辆车有10.2m长的地方用来装包装箱(像面包片 ...

  6. LinGo:投资问题——线性规划

    一.根据题目所给数据,建立一张表格方便查看 项目A 项目B 项目C 项目D 可投资年 1,2,3,4 3 2 1,2,3,4,5 收回本利年 次年年末 第5年 第5年 当年年末 本利 1.06 1.1 ...

  7. 简学LINGO(三)——实例篇

    1. 装配线平衡模型 一个装配线含有一系列的工作站.在终于产品的加工过程中每一个工作站运行一种或者是几种特定的任务.装配线周期是指全部工作站完毕分配给他们各自任务所花费时间的最大值.平衡装配线的目标是 ...

  8. LINGO 基础学习笔记

    LINGO 中建立的优化模型可以由5个部分组成,或称为 5 段(section): (1)集合段(SETS):这部分要以"SETS:"开始,以"ENDSETS" ...

  9. 使用LINGO来解决0/1背包算法问题

    1.问题说明 0/1背包问题:我们有n种物品,物品j的重量为wj,价格为pj.我们假定所有物品的重量和价格都是非负的.背包所能承受的最大重量为W.如果限定每种物品只能选择0个或1个,则问题称为0-1背 ...

  10. 遗传算法详解(LINGO及MatlabGA工具箱求解实现)

    遗传算法 1.前言 遗传算法是一种基于生物界自然群体遗传进化机制的自适应全局优化概率搜索算法.它与传统算法不同,不依赖梯度信息,而是通过模拟自然进化过程来搜索最优解. 例子:兔子的遗传进化 有人说,现 ...

随机推荐

  1. LeetCode 热题 100

    1. 两数之和 1. 两数之和 class Solution { public int[] twoSum(int[] nums, int target) { int n = nums.length; ...

  2. 从源码看 QT 的事件系统及自定义事件

    事件是程序内部或外部触发的动作或状态变化的信号.在 Qt 中,所有事件都是 QEvent 派生类的对象,事件由 QObject 派生类的对象接收和处理.每一个事件都有对应的 QEvent 派生类,当事 ...

  3. Linux设置每晚定时备份Oracle数据表

    先新建目录 该路径:/home/oracle/backup 该名称:DATA_PATH shell脚本 export ORACLE_BASE=/home/oracle/app export ORACL ...

  4. Kali安装JDK8以及JDK11、JDK17切换

    声明:本文分享的安全工具和项目均来源于网络,仅供安全研究与学习之用, 如用于其他用途,由使用者承担全部法律及连带责任,与工具作者和本公众号无关. 瓜神学习网络安全 公众号 背景 很久之前更新了一次ka ...

  5. 47.9K star!全平台开源笔记神器,隐私安全首选!

    嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 "Joplin 是一款开源的笔记记录和待办事项应用,支持端到端加密同步,完美替代商 ...

  6. 工具 | Hacking

    0x00 简介 Hacking是一款包含多种渗透测试功能的脚本. 下载地址: Hacking下载:Hacking下载 0x01 功能说明 Brute Force DDos Attack NMap Po ...

  7. 如何用JavaScript纯前端来实现下载脚本

    1.javascript脚本 function downloadFile(data, fileName, type="text/plain") { // 创建不可见的元素 cons ...

  8. CF1930G Prefix Max Set Counting 题解

    题意: 给定一棵以 1 为根的有根树,求出其所有 dfs 序中前缀最大值序列的数量.\(n\le 10^6\). 思路 显然考虑 DP. 由于是求前缀最大值序列的方案数,因此如果一些点要出现在这个序列 ...

  9. 提高Flutter应用性能的最佳实践

    @charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...

  10. Python Set | update()

    Python update() function in set adds elements from a set (passed as an argument) to the set. Syntax ...