[Lingo编程极速入门]——基础01

目录索引

  • ==直接求解:==
  • ==基本约束条件书写:==
    • 思考:
  • ==多段式编程:==
    • 模板:
    • 问题引入:
    • 解法:
      • 第一句:
      • 第二、三句:
      • 第四句:

直接求解:

首先我们进行最简单的Lingo求解,在这一类问题中我们不需要使用集合语言,直接按照题目所给的内容翻译即可。

在这里插入图片描述

例如这个问题,我们直接照猫画虎在Lingo中输入即可

min = 3*x1 + x2 - x3;
x1 + x2 - 2*x3 >= 2;
x1 - 2*x2 + x3 >= 2;
3*x1 + 2*x2 -x3 = 14;
            x3 <= 1;

值得注意的是,在Lingo中所有的变量都是默认大于0的,所以可以省略大于0的约束条件。并且大于等于小于等于均可直接写为大于或者小于,在Lingo中这二者等同

基本约束条件书写:

@表示是一个函数:

  • @gin(x):表示x是一个整数
  • @bin(x):表示变量为0或1
  • @bnd(l,x,u):表示变量x位于[l,u]之间的实数
  • @free(x):表示x是任意实数,可以取消默认大于0的约束

思考:

如果我们要约束x为[-5,5]之间的整数该如何做?

@free(x);
@bnd(-5,x,5);
@gin(x);

首先先变为实数,再确定实数所在的范围,最后再约束为整数即可

多段式编程:

模板:

sets:
	集合段,所有集合数据都写在这里
endsets
data:
	数据段,可以把所有已知的数据都以矩阵的形式写在这里
enddata
约束段写在下方一栏

问题引入:

在这里插入图片描述

解法:

1.先确定指标个数,比如Ai表示第几个人,那么总共有四个人也就是说i会从1到4,Bj也同理,j会从1到4。那么我们就需要创建一个集合,在这个集合中所有元素都表示有4个数值
2.确定指标联系,我们设立变量为Cij。例如派A的1号选手去做B3件事,就是C13。

sets:
	S/1..4/: a;
	T/1..4/: b;
	U(S,T): f,c;
endset

U(S,T): f,c;
其实就是创立了一个矩阵,S行T列的矩阵,从C(1,1),C(1,2)依次建立到C(4,4)
至于f的变量则是一个0-1变量,如果是0则代表不指派i人做j事,如果为1则反之。

data:
	c = 3 14 10 5
	    10 4 12 10
	    9 14 15 13
	    7 8 11 9; 
enddata

我们对于c数据是已知的,而对于f数据是我们要求的结果。c输入的顺序就是(1,1),(1,2)到(4,4)。到这里我们不难发现,a和b是不需要写的,但为了更加清晰易懂故写了上去

min = @sum(S(i):@sum(T(j):f(i,j)*c(i,j)));
@for(S(i):@sum(T(j):f(i,j))=1);
@for(T(j):@sum(S(i):f(i,j))=1);
@for(U(i,j):@bin(f(i,j)));

最后就是求解段了,我们来逐句分析。

第一句:

    注意最小值是不需要写变量的,直接写min即可。@sum表示的就是一个求和函数,第一项S(i)表示对谁求和,用谁去迭代。你直接关注i,j属于哪个集合就可以了。 比方说i是从1到4的,属于集合S,那么S(i)则表示依次输入S(1),S(2),S(3),S(4)
    第一句话实现了一个sum函数的嵌套,S(1)也就是i=1的大前提下,对每一个j进行迭代。

我这里使用Python代码来方便你理解:

min = 0
for i in range(14):
	for j in range(1,4):
		min = min + f(i,j)

第二、三句:

这两句的代码与第一句则是大同小异,仅有一点值得注意那就是最后这个等于号是落在sum函数的外头的,千万要记住!

第四句:

这是一个约束段,我们已经知道f(i,j)是一个0-1变量,但是这个约束是对所有f(i,j)都生效的,所以我们要进行一个循环约束。@for就是一个循环,对U(i,j)均进行循环约束。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

P02项目(学习)

★ P02项目 项目描述&#xff1a;安全操作项目旨在提高医疗设备的安全性&#xff0c;特别是在医生离开操作屏幕时&#xff0c;以减少非授权人员的误操作风险。为实现这一目标&#xff0c;我们采用多层次的保护措施&#xff0c;包括人脸识别、姿势检测以及二维码识别等技术。这些…

民宿酒店服务预约小程序的作用

民宿往往是旅游者们前往某个城市感受风情常住的地方&#xff0c;也因此在景区或特定地方&#xff0c;总是不乏大小民宿品牌&#xff0c;但除了市场高需求外&#xff0c;商家们所遇的痛点也不少&#xff1a; 1、获客引流难 民宿生意虽然需求量高&#xff0c;但各家品牌众多&am…

索引和事务

文章目录 一、索引1.1 概念1.2 作用1.3 使用场景1.4 使用 二、事务2.1 为什么要使用事务2.2 事务的概念2.3 事务的使用 三、内容重点总结 一、索引 1.1 概念 索引是一种特殊的文件&#xff0c;包含对数据表所有记录的引用指针。在MySQL中&#xff0c;索引是基于一个或多个列的…

如何在word文档中批量插入二维码

合同系统中&#xff0c;一般流程是线上拟稿、审批、定稿&#xff0c;然后线下打印定稿的合同并且存档。当拿到一个纸质合同&#xff0c;需要去线上系统查询当时的合同拟制过程&#xff0c;那如何快速定位到这个文档&#xff0c;是一个问题。通用的做法是&#xff0c;将该文档的…

《网络协议》01. 基本概念

title: 《网络协议》01. 基本概念 date: 2022-08-30 09:50:52 updated: 2023-11-05 15:28:52 categories: 学习记录&#xff1a;网络协议 excerpt: 互联网、网络互连模型&#xff08;OSI&#xff0c;TCP/IP&#xff09;、计算机通信基础、MAC 地址、ARP & ICMP、IP & 子…

开源DB-GPT实现连接数据库详细步骤

官方文档&#xff1a;欢迎来到DB-GPT中文文档 — DB-GPT &#x1f44f;&#x1f44f; 0.4.1 第一步&#xff1a;安装Minicoda https://docs.conda.io/en/latest/miniconda.html 第二步&#xff1a;安装Git Git - Downloading Package 第三步&#xff1a;安装embedding 模型到…

使用腾讯云轻量服务器安装AList

新人有免费两个月试用轻量服务器&#xff0c;使用云服务器商自带的webshell登录&#xff1b; 我这儿用docker安装Alist&#xff0c;因为服务器没自带docker&#xff0c;所以具体安装docker centos7.0最快速安装docker的方法 通过 Docker 部署 Alist 命令&#xff1a; docke…

学习笔记:利用CANOE Panel和CAPL脚本模拟主节点发送LIN通信指令

前一篇文章已经对CANOE如何模拟主节点和从节点进行LIN通信做了简单的记录&#xff0c;修改主节点发送的指令需要修改LIN ISC模块里的Frames帧对应的signal。这样改起来比较麻烦且不直观&#xff0c;幸好CANOE提供了Panel designer这样的工具&#xff0c;我们可以利用它设计自己…

第六章:Property-based Testing and Test Oracles

文章目录 Test OraclesActive and Passive Test OraclesTypes of Test OraclesFormal, executable specificationsSolved examplesMetamorphic oraclesAlternative implementations (备用实现)Heuristic oracles (启发式)The Golden Program!Oracle Deviation (Oracle偏差)T…

电动车展示预约小程序的作用如何

电动车可以说是现在出行常见的方法&#xff0c;覆盖年龄广几乎是每家必备&#xff0c;也有不小大小品牌和经销商&#xff0c;市场需求较高&#xff0c;但在实际经营中&#xff0c;对经销商来时也面临着一些痛点&#xff1a; 1、品牌传播产品展示难 不同品牌竞争很大&#xff…

安装 MinGW

实际上是将 GCC&#xff08;C语言编译器&#xff09; 移植到了 Windows 平台下。 1、网上下载 下载安装器 mingw-get-setup.exe&#xff0c;路径https://osdn.net/projects/mingw/ 2、打开点击install 3、选择路径continue 4、文件加载完成之后选择continue 5、勾选这两个 6…

关于 国产系统UOS系统Qt开发Tcp服务器外部连接无法连接上USO系统 的解决方法

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/134254817 红胖子(红模仿)的博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软…

【ES分词】

分词 #测试分词器 POST /_analyze {"text": "小米手机和华为手机都是国产mobilephone", "analyzer": "english" }不管analyzer是改成&#xff1a;standard还是chinese都无法实现中文分词。 处理中文分词一般采用IK分词器 安装链接&…

aosp定制android系统

目录 AOSP 准备工作(配置) 确定机型和版本 初始化 git安装 curl安装 同步源码 环境变量 创建aosp目录 指定同步版本 解下来安装编译需要的依赖 编译aosp源码 刷入系统 AOSP 全称 Android Open Source Project 是指Android开源项目&#xff0c;它是由Google主导的…

Thread类的基本操作(JAVA多线程)

线程是操作系统中的概念&#xff0c;操作系统内核实现了线程这样的机制&#xff0c;并提供了一些API供外部使用。 JAVA中 Thread类 将系统提供的API又近一步进行了抽象和封装&#xff0c;所以如果想要使用多线程就离不开 Thread 这个类。 线程的创建(Thread类) 在JAVA中 创建…

python图像处理 ——图像锐化

python图像处理 ——图像锐化 前言一、原理二、 空间域锐化滤波1.拉普拉斯算子&#xff08;Laplacian&#xff09;2.罗伯茨算子&#xff08;Roberts&#xff09;3.Sobel算子4.Prewitt算子5.Scharr算子 三、实验对比 前言 由于收集图像数据的器件或传输图像的通道存在一些质量缺…

浅谈电力物联网时代物联网技术在电力系统中的应用

贾丽丽 安科瑞电气股份有限公司 上海嘉定201801 摘要&#xff1a;在电力系统建设中&#xff0c;物联网的应用不仅促进了我国电力工业的发展&#xff0c;而且对我国的物联网技术也起到了一定的促进作用。随着物联网技术应用于电力系统&#xff0c;推动了中国工业的快速发展。因…

GCN火车票识别项目 P1 火车票识别项目介绍 Pytorch LSTM/GCN

从本节开始&#xff0c;我将带大家完成一个深度学习项目&#xff1a;用图卷积神经网络(GCN)&#xff0c;实现一个「火车票文字信息提取」的项目&#xff0c;由于火车票上每个节点文字不是等长的&#xff0c;所以还需要添加一个前置的 LSTM 来提取句子特征。 课前说明 1、这是…

Linux CentOS配置阿里云yum源

一&#xff1a;先备份文件&#xff0c;在配置失败时可以恢复 cd /etc/yum.repos.d mkdir back mv *.repo back 二&#xff1a;下载阿里云yum源 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yum.repos.d/epel…

网络工程师回顾学习

根据书本目录&#xff0c;写下需要记忆的地方&#xff1a; 参考之前的笔记&#xff1a; 网络工程师回答问题_one day321的博客-CSDN博客 重构第一部分需要记忆的&#xff1a; 第一章&#xff1a;计算机网络概论 计算机网络的定义和分类&#xff1a;计算机网络是指将地理位…