Cplex的数据类型结构及基本语法功能

        本序列将会重开一门新的序列----数学求解器cplex,文章不做简单介绍,不灌水,直接给大家进行讲述如何上手实操,并有针对性的给出相应案例分析。

OPL编程

        OPL是ILOG团队为运筹学专家量身定制的一种优化建模语言,语法相对简单,约束定义接近运筹学专家习惯的属性模型表达。表达更为简洁,描述同样约束,OPL更为简单明了,易于检查排错。有助于开发者专注于模型的开发,而不必花很大精力将数学模型转换为复杂的程序语言

        在学习任何一门新的语言也好,工具也好,我们都需要先熟悉其基本的结构与功能,本文将讲述cplex的基本数据结构与基本的语法功能。

1、基础数据类型

cplex的数据结构有点类似C,其常用的数据结构类型包含有:  

1. 整数型
2. 浮点数型
3. 字符串型
4. 布尔型

 1.  整数型: 范围 −2^31+1, 2^31−1;关键词 int
     int truckQty = 10;
     int n = 20;
     int size = n * n;

2. 浮点型: 双精度;  关键词 float
      float unitCost = 2.0;
      float totalCost = n * unitCost;

execute {
   writeln("truckQty = ", truckQty);
   writeln("size = ", size);
   writeln(" unitCost = ", unitCost);
   writeln("totalCost = ", totalCost);
 }

 3.  字符串型:关键词 string
     1) string company = “大华技术”;
     2)string retailerName = “沃尔玛”;
     3) 字符串中的特殊字符: \t  tab
      \n  newline   \”  双引号   \\   反斜杠
     4)  OPL中字符串换行
       string address = “上海市  \             临港新城”;

 4. 布尔型: 关键词 boolean
     dvar boolean x;
     dvar boolean isUsed;

2、基础的数据结构

cplex中包含的数据结构包含有

1. 范围:range
2. 数组: 给出元素的数据类型
3. 元组:tuple
4. 集合:给出元素的数据类型

1. Range:给定最小值和最大值
   1) range  rows = 1..10;
   2) int n = 8;  
      range cols = n+1..2*n+1;
   3)用于数组定义
      int A[rows] = …;
   4) 用于变量取值范围定义
      dvar int x in rows;
   5) 用于循环
       forall( r in rows){  语句1}

 2. 数组 :
  一维数组
  int a[1..4] =[10,20,30,40];
  float  f[1..4] = [2.0,3.0,4.0,5.0];
  string days[1..2] = [“Mon”,”Tue”]
 
execute{
   writeln("a",a);
   writeln("f",f);
   writeln("days",days);
}

 2. 数组 :
  二维数组
  int b[1..2][1..4] =[[10,20,30,40],[2,3,4,5]];
  float  tranCost[1..2][1..4] = …;
execute{
   writeln("b", b);
}

  3. tuple (元组 ):
    //卡车元组
   tuple TTruck {
      key int id;
      float fixedCost;
      float capacity;}
 //客户元组
 tuple TCustomer {
 key int id;
 float demand;
 float serviceTime; }

 4. 集合:
    可以用{T} 或 setof{T}的方式来定义集合
     {string}  days = {“Mon”, “Tue”, “Wen”};
      setof(int)  s1={1,2,3};
     //配送中心所有的卡车集合
    {TTruck}  trucks = ...;
     //配送中心服务的客户的集合
    {TCustomer} customers =...;

3、基本语法功能

addadd constraints to the problem
baroptsolve using barrier algorithm
displaydisplay problem, solution, or parameter settings
enterenter a new problem
mipoptsolve a mixed integer program
netoptsolve the problem using network method
optimizesolve the problem
populateget additional solutions for a mixed integer program
primoptsolve using the primal method
readread problem or advanced start information from a file
setset parameters
toolstools for analvsis and debugging of models
writewrite problem or solution information to a file

4、项目文件

在一个典型的OPL项目中,需要包含的文件如下:
主要包含模型文件、数据文件、设置文件、运行文件,具体关系如下

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

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

相关文章

ChatGPT国内免费使用方法有哪些?

目录 ChatGPT介绍:一、ChatGPT是什么?二、ChatGPT发展:三、ChatGPT 优点:四、国内使用ChatGPT方法五、结语: ChatGPT介绍: 一、ChatGPT是什么? ChatGPT 是一个基于语言模型 GPT-3.5 的聊天机器人,ChatGPT模型是Instruct GPT的姊妹模型(siblingmodel&a…

【5.15】一、软件测试基础—软件概述

目录 1.1 软件概述 1.1.1 软件生命周期 1.1.2 软件开发模型 1.1.3 软件质量概述 1.1 软件概述 软件是相对于硬件而言的,它是一系列按照特定顺序组织的计算机数据和指令的集合。 软件的生命周期:软件从“出生” 到 “消亡” 的过程。 1.1.1 软件生…

Foxit PDF Reader及Editor任意代码执行漏洞复现(CVE-2023-27363)

0x01 产品简介 Foxit PDF Reader是一套用来阅读PDF格式文件的软件,由福建福昕软件所研发,主要运行在Windows操作系统上。 0x02 漏洞概述 Foxit PDF Reader及Editor中存在任意代码执行漏洞,由于Foxit PDF Reader/Editor未验证exportXFAData方…

RocketMQ介绍

一、MQ简介 1.1 项目工程弊端 1.2 MQ简介 MQ(Message Queue)消息队列,是一种用来保存消息数据的队列 队列:数据结构的一种,特征为 “先进先出” 何为消息: 服务器间的业务请求 原始架构: 服务器中的A功能…

Flink学习——基本概述

目录 一、简介 1.1 flink是什么 1.2 flink主要特点 核心特性: 分层API: 1.3 flink vs spark 1.3.1 数据处理框架 1.3.2 数据模型 1.3.3 运行时架构 二、wordcount实例 2.1 项目依赖 2.2 添加框架支持 2.3 批处理 - DataSet API 2.4 有界流处…

DBCO-COOH分子量:305.3,CAS:1353016-70-2,二苯基环辛炔-羧基;类似有DBCO-NH2、SH、MAL、NHS等等

中文名称:二苯基环辛炔-羧基 英文名称:DBCO-acid 英文别称:DBCO-COOH cas: 1353016-70-2 分子式:C19H15NO3 分子量:305.3 DBCO-COOH是DBCO 衍生化的常用构件,在EDC、DCC和HATU等活化剂存在下&#xf…

汇编学习教程:灵活寻址(四)

引言 在上篇博文中,我们学习了 [bxsi] 的灵活寻址形式,由此讲解了汇编中的多重循环实现。那么本篇博文中,我们将继续学习灵活寻址其他实现形式。 本次学习从一道编程案例开始学起。 编程示例如下: assume cs:code,ds:datadata…

【jvm系列-12】jvm性能调优篇---GUI工具的基本使用

JVM系列整体栏目 内容链接地址【一】初识虚拟机与java虚拟机https://blog.csdn.net/zhenghuishengq/article/details/129544460【二】jvm的类加载子系统以及jclasslib的基本使用https://blog.csdn.net/zhenghuishengq/article/details/129610963【三】运行时私有区域之虚拟机栈…

openEuler 成功适配 LeapFive InFive Poros 开发板

近日,openEuler RISC-V 23.03 创新版本在跃昉科技的 Poros 开发板上成功运行。 openEuler 在 Poros 上适配成功,XFCE 桌面启动正常,文件系统、终端模拟器和输入法等相关 GUI 应用也运行流畅,Chromium 浏览器和 LibreOffice 等应用…

大屏只用来做汇报?知道这6个应用场景,直接升职加薪!

五一假几个朋友小聚了一下,好久没联系了,现在才知道大家从事行业五花八门的。知道我从事IT行业好几年,他们非要让我讲讲现在异常火爆的大屏,说是所在企业单位都在研究这玩意儿,有的业务人员焦虑不已不知道如何下手&…

SD-如何训练自己的Lora模型

官方地址:GitHub - bmaltais/kohya_ss 尝试过mac和Ubuntu,装上后都会有问题 Windows按照官方步骤安装即可 第一步 git clone https://github.com/bmaltais/kohya_ss.git cd kohya_sspython -m venv venv .\venv\Scripts\activatepip install torch1.…

SpringCloud Alibaba详解

目录 微服务架构概念 服务治理 服务调用 服务网关 服务容错 链路追踪 SpringcloudAlibaba组件 Nacos 负载均衡 Ribbon Fegin Sentinel 高并发测试 容错方案 Sentinel入门 Feign整合Sentinel 微服务架构概念 服务治理 服务治理就是进行服务的自动化管理&#xf…

pod的基本介绍| harbor仓库的搭建 tomcat镜像拉取

pod的基本介绍| harbor仓库的搭建 tomcat镜像拉取 一 Pod基础概念:二 通常把Pod分为两类:三 Pod容器的分类:四 应用容器(Maincontainer)五 镜像拉取策略(image PullPolicy)六 部署 harbor 创建私…

SpringMVC高手进阶

🙈作者简介:练习时长两年半的Java up主 🙉个人主页:程序员老茶 🙊 ps:点赞👍是免费的,却可以让写博客的作者开兴好久好久😎 📚系列专栏:Java全栈,…

解密Netty中的Reactor模式

文章目录 单线程Reactor模式多线程Reactor模式Reactor模式中IO事件的处理流程Netty中的通道ChannelNetty中的反应器ReactorNetty中的处理器HandlerNetty中的通道Channel和处理器Handler的协作组件Pipeline Reactor(反应器)模式是高性能网络编程在设计和架构方面的基础模式.Doug…

Science文章复现(Python):图1 - Aircraft obs(机载的观测 CO2)

之前有写过science文章后处理的复现Science文章复现(Python):在机载观测中明显的强烈南大洋碳吸收 在这里是针对图细节的理解: 首先需要下载这个项目 https://github.com/NCAR/so-co2-airborne-obs 这里的环境配置会比较麻烦 con…

00后卷起来,真没我们老油条什么事了···

都说00后躺平了,但是有一说一,该卷的还是卷。 这不,前段时间我们公司来了个00后,工作没两年,跳槽到我们公司起薪20K,都快接近我了。后来才知道人家是个卷王,从早干到晚就差搬张床到工位睡觉了。…

【刷题之路】LeetCode 232. 用栈实现队列

【刷题之路】LeetCode 232. 用栈实现队列 一、题目描述二、解题1、图解主要思路2、先实现栈3、实现各个接口3.1、初始化接口3.2、入队接口3.3、出队接口3.4、取队头接口3.5、判空接口3.6、释放接口 一、题目描述 原题连接: 232. 用栈实现队列 题目描述:…

网站测试的主要方法

网站测试的主要方法 网站测试是保证网站质量的重要手段,通过对网站进行测试可以及时发现问题并修复,提高用户体验和网站的可靠性。本文将介绍网站测试的主要方法。 1.功能测试:测试网站的所有功能是否正常。通过模拟用户的操作,确…

在外包干了三年,我废了……不吹不黑!

没错,我也干过外包,一干就是三年,三年后,我废了…… 虽说废的不是很彻底,但那三年我几乎是出差了三年、玩了三年、荒废了三年,那三年,我的技术能力几乎是零成长的。 说起这段三年的外包经历&a…