cplex基础入门(一)

article/2025/11/7 19:23:23

        这边文章会以纯新手小白的视角,教会大家如何快速的搭建自己的cplex模型,做到求解模型不求人。

目录

一、引言

1、掌握数据类型及数据结构

2、常规Cplex编程方法

3、Cplex编程步骤

4、cplex 程序框架

5、创建模型

二、规划建模的入门求解案例

1、不使用集合语言的案例

2、使用集合语言案例


一、引言

在讲述基础入门案例之前,需要大家明白几个核心概念,以及内功心法。

1、掌握数据类型及数据结构

        数据类型以及数据结构,转到Cplex的数据类型结构及基本语法功能,请先自行学习。

2、常规Cplex编程方法

        有2中形式。
        1)不使用集合语言,你可以直接理解为显性数学表达式。

        Example 求解如下模型

min z = 2x+3ys.t.  2x + 3y >=20,x  +  y >=10,x,y >=0且为整数

        2)使用集合语言.(sum,forall...)

        主要思想:
                ①多个式子之和

                        a_{1}x_{1}+a_{2}x_{2}+...+a_{n}x_{n} = \sum_{j=1}^{n}a_{j}x_{j}

                   转为:  sum (j\, \, in \, \, 1..n) \, \, a[j] \ast x[j]\,

                ②多个约束条件
                \left\{\begin{matrix} x_{1} <=b_{1} & \\ x_{2} <=b_{2}& \\ x_{3} <=b_{3} & \end{matrix}\right.

        很显然,这可以转化为:x_{j} <=b_{j}\, j=1,2,...n

        在cplex中,我们又该如何表达呢?

                        forall\, (j\, in\, 1..n)\, \, x_{j} <=b_{j}

3、Cplex编程步骤

        ①正确地表达清楚数学规划模型
        ③确定模型中的已知量、未知量(类型、及范围等)
        ③编写程序

4、cplex 程序框架

  • 定义已知星(int,float,range,..)
  • 定又未知量(dvar  int,float,boolean,int+,float+)
  • 定义目标函数:maximize,minimize
  • 定义约束条件:subject to {...}
  • 补充,有些程序会补充脚本文件
  • 【脚本】execute{...}

5、创建模型

        ①首先通过文件,点击文件--新建--模型 

        ②编写模型

         ③运行模型,这里往往是很多新手小白不会的地方,这里将会重点讲述。

        第一步:点击该项目,新建一个运行配置文件,并需要英文命名它。

         如果运行文件与你的模型脱节,不在一个文件下,需要拖动模型到运行配置里,直到形成上面截图的那样,即可。

        第二步:直接点击配置文件,截图上面的config1,右键-->直接运行这个文件,即可。

最终结果如下:

 

二、规划建模的入门求解案例

1、不使用集合语言的案例

如上面的案例说明

min z = 2x+3y

s.t.  2x + 3y >=20,
      x  +  y >=10,
      x,y >=0且为整数

已在1.5里以这个例子进行了阐述,不在过多讲述。

2、使用集合语言案例

2.1 背包问题

        x_{j}\, =\, 1,表示物品j 放入背包中,若相反则为0。

        其背包问题的数学规划模型为:

        max\, \, z = \, \sum_{j=1}\, p_{j}\ast x_{j}

        s.t.    \sum_{j=1}^{n}\, w_{j}\ast x_{j}\leq C

                x_{j} \epsilon \left \{ 0,1\right \}\, j=1,2,...n

我们先分析,已知变量有p,w,C,n,未知变量有x。根据程序框架,写出的程序如下:

 接着运行模型,此时需要新建一个运行配置文件,点击配置文件,并命名为config2,如下

最终运行的结果为:

 2.2 指派问题

指派问题的数学模型为:

        min \: \sum_{i=1}^{n}\sum_{j=1}^{n}\: c_{ij}\,x _{ij}

        s.t.  \sum_{i=1}^{n}\: x_{ij}=1,j=1,2...n  .............. (每项工作只有一个人做)

                \sum_{j=1}^{n}\: x_{ij} =1,i=1,2...n ...............(每个人只做一项工作)

                x_{ij} = 0,1,i,j=12,...n

指派矩阵为:

c = [3    8    2    10    3

       8    7    2     9     7

       6    4    2     7     5

       8    4    2     3     5

       9  10    6     9    10 ]

同理,我们先分析模型中哪些变量是已知变量,哪些是未知变量,最终写出的程序模型为:

留意:cplex中等号是用==表示的。

结果为:

 


http://chatgpt.dhexx.cn/article/VXcmORfL.shtml

相关文章

Cplex安装教程与使用介绍

软件可以在ShareApps上下载&#xff0c;小伙伴们嫌麻烦可以用提取链接。 学术版 Cplex12.10 64位Windows 更新一下链接&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1jD9Xved2aWPHtRd-_PLI5Q 提取码&#xff1a;n4og 具体步骤&#xff1a; 下载完成后直接运行就可…

CPLEX入门

求解线性规划、整数线性规划、二次规划等较为经典的优化软件 Cplex专门用于求解大规模的线性规划&#xff08;LP&#xff09;、二次规划&#xff08;QP&#xff09;、带约束的二次规划&#xff08;QCQP&#xff09;、二阶锥规划&#xff08;SOCP&#xff09;等四类基本问题&…

html meta标签使用总结

目录(?)[] 之前学习前端中&#xff0c;对meta标签的了解仅仅只是这一句。 <meta charset"UTF-8"> 但是打开任意的网站&#xff0c;其head标签内都有一列的meta标签。比如我博客的。 但是自己却很不熟悉&#xff0c;于是把meta标签加入了寒假学习计划的最前方…

html标签-meta

之前学习前端中&#xff0c;对meta标签的了解仅仅只是这一句。 <meta charset"UTF-8">但是打开任意的网站&#xff0c;其head标签内都有一列的meta标签。比如我博客的。 但是自己却很不熟悉&#xff0c;于是把meta标签加入了寒假学习计划的最前方。 简介 在查阅…

话说HLS,HTTP,RTSP,RTMP协议的主要区别

HLS,HTTP,RTSP,RTMP协议的区别&#xff1a; 视频全终端观看  用HTTP方式&#xff1a; 先通过服务器将FLV下载到本地缓存&#xff0c;然后再通过NetConnection的本地连接来播放这个FLV&#xff0c;这种方法是播放本地的视频&#xff0c;并不是播放服务器的视频。因此在本地缓…

Web前端后7天

Web前端后7天 1.概念 2.步骤 3.执行原理 4.生命周期 5.Servlet3.0 注解配置 6.Servlet的体系结构 servlet --接口 GenericServlet–抽象类 GenericServlet&#xff1a;将Servlet接口中其他的方法做了默认空实现&#xff0c;只将service()方法作为抽象&#xff0c; 将来定义Ser…

同等画质不同编码的压缩比_视频的编码与封装

视频的编码与封装 【容器——封装格式】 avi——基本都能被软件兼容&#xff0c;但过于老旧&#xff0c;不兼容目前的很多编码方式H.264&#xff0c;其编码方式有也很多&#xff0c;若真要用到&#xff0c;推荐xvid编码&#xff08;对DIVX编码方式的复仇&#xff09;【所谓的a片…

二、实践与视频解决方案

一、视频解决方案 说明&#xff1a; 公司下户拍摄视频&#xff0c;上传存储一直用的优酷云(视频压缩、解码、播放)当然还支持水印。 现在场景&#xff0c;我们公司内部买服务器&#xff0c;下户拍摄视频上传到我们自己服务内&#xff0c;需要解决的问题&#xff0c;下户拍摄视频…

Servlet应用——JavaWeb教案(四)

文章目录 JavaWeb组件1. ServletRequest1. 介绍Request体系**获取请求消息数据****获取请求行**获取请求头获取超链接的所有头信息防盗链操作 获取请求体 其他功能1. 获取请求参数通用方式2. 请求转发:1. 转发给servlet2. 转发给jsp页面 3. 共享数据1. 转发给servlet2. 转发给J…

20201006将音频为48kHz采样率的mp4转为44.1kHz的步骤

20201006将音频为48kHz采样率的mp4转为44.1kHz的步骤 千千静听v5.1.0 MKVToolNix v48.0 MediaInfo 0.7.86 Copyright (c) MediaArea.net SARL 支持多种格式的多媒体文件: Matroska, OGG (包括 OGM) MPEG-1 (包括 VCD) MPEG-2 (包括 DVD, SVCD) MPEG-4 (包括 iTunes M4A…

怎么讲计算机屏幕录制,电脑如何录制屏幕

电脑如何录制屏幕 腾讯视频/爱奇艺/优酷/外卖 充值4折起 电脑如何录制屏幕呢?如果我们的电脑上有自带的屏幕录制软件,点击即可录制,若没有,我们可以借助QQ来进行录制屏幕,一起来看看吧。 1. 首先打开电脑上的QQ APP: 2. 进入登录页面,输入账号和密码,进行登录: 3. 然后…

免费视频制作工具满足非专业用户的视频处理需求:压缩视频、转码视频、倒放视频、合并片段、根据字幕裁切片段、自动配字幕、自动剪辑等

免费视频制作工具满足非专业用户的视频处理需求&#xff1a;压缩视频、转码视频、倒放视频、合并片段、根据字幕裁切片段、自动配字幕、自动剪辑等。有了它你也可以做出优秀的视频啦&#xff5e; Quick Cut 是一款轻量、强大、好用的视频处理软件。它是一个轻量的工具&#xf…

win10访问不了服务器的共享文件,win10访问不了samba共享文件夹怎么办

win10访问不了samba共享文件夹怎么办 腾讯视频/爱奇艺/优酷/外卖 充值4折起 最近很多网友反映win系统升级后,访问不了smb服务器,弹出如下图的提示窗,遇到这个问题怎么办呢?下面一起来看看win10访问不了samba共享文件夹的解决方法。 具体如下: 1. 第一步,右键点击桌面左下…

php twitter 登陆sdk,使用Twitter OAuth(PHP)登录Twitter的问题

好吧&#xff0c;我正在尝试使用Twitter API做一个非常简单的登录脚本。我需要的只是让用户通过Twitter登录网站的一种简单方法。如果他们目前没有登录&#xff0c;我的主页上有一个按钮&#xff0c;显示“登录或注册Twitter”。如果他们已登录&#xff0c;我希望它显示他们的用…

用R对Twitter用户的编程语言语义分析

Twitter是一个流行的社交网络&#xff0c;这里有大量的数据等着我们分析。Twitter R包是对twitter数据进行文本挖掘的好工具。最近我们被客户要求撰写关于Twitter的研究报告&#xff0c;包括一些图形和统计输出。本文是关于如何使用Twitter R包获取twitter数据并将其导入R&…

前端javascript如何分享内容到twitter和Email

接着上篇讲,上篇讲了如何分享到facebook,这篇我们讲一下如何分享到twitter和Email,首先分享到twitter和Email不像分享到facebook一样可以有回调,这两分享是没有回调的,分享成功失败,也不知道,但是会触发事件. 我们先来看下分享到twitter,首先引入twitter的sdk文件,如下图所示:…

Twitter数据获取

推文获取 申请Twitter API 注册Twitter账号https://dev.twitter.com/apps, 点击create apps。点击确定完成在Application Management的Keys and Access Tokens&#xff0c;点击Generate Access Token. 利用tweepy获取特朗普最近推文 # -*- coding: utf-8 -*- ""&…

推特 我们目前不能注册此邮箱地址_英雄联盟手游来了!最简单的下载/安装/注册教程!...

从英雄联盟手游的消息至今,已经过去这么多天,想必大家早已等不及想要玩上一把了。等了这么久,如今终于在海外公测了,虽然目前国服还不能游玩,但是跟着本篇教程,你也可以轻松玩到海外版本! 苹果用户看这里: 首先得告知下大家,目前只有Android端开放了内测,使用苹果的小…

Twitter群推王:推特全方位营销利器

Twitter群推王是专为Twitter运营提供的一款全方位营销工具&#xff0c;可以自动发帖、自动私信、自动转发、自动关注、自动点赞、自动改资料、自动注册、数据采集等&#xff0c;解决营销中的三大难题&#xff1a;账号问题、同一Ip环境问题、批量自动化问题&#xff0c;是个人、…

Twitter上热门的技巧与思路

Twitter是一个单向的信息输出平台&#xff0c;更具有时效性、新闻性&#xff0c;因此帖子营销深受用户的喜爱&#xff0c;那么品牌如何玩转帖子营销&#xff0c;从众多的推文中脱颖而出呢&#xff1f; 1、账号 数量上&#xff1a; 对于做SNS营销而言&#xff0c;都是需要大量…