运筹优化求解迭代过程案例:图解法、单纯形法、单纯形表

news2024/10/5 18:34:08

运筹优化求解迭代过程案例:图解法、单纯形法、单纯形表

题目来自于清华大学出版的《运筹学》第四版。

一、问题描述

二、图解法

三、单纯形法

第一次迭代:

第二次迭代:

第三次迭代:

下面描述一下第三次迭代的详细过程:

从表达式(2-18)可以看到,决策变量x1系数为正,如果生产x1,则目标函数值会大于9,因此非基变量x1要进基。那么x2、x3、x4哪个出基呢?

表达式(2-17)中有x1的是第一个和第二个等式; 从第一个等式可以看出,由于x3要>=0,x5不会进基依然是非基变量,所以x5=0,这时x1最大可以为2/1=2;从第二个等式可以看出,由于x4要>=0,这时x1最大可以为16/4=4;因此x1会先达到第一个等式的约束,所以第一个等式中的x1进基(移动到等式的左边),而x3要出基(移动到等式的右边)。表达式(2-17)的等式一修改后得到:
{ x 1 = 2 − x 3 + 1 2 x 5 x 4 = 16 − 4 x 1 x 2 = 3 − 1 4 x 5 \begin{equation} \left\{ \begin{array}{lr} x_1 = 2 - x_3 + \frac{1}{2}x_5 & \\ x_4 = 16 - 4x_1 & \\ x_2 = 3 -\frac{1}{4}x_5 & \end{array} \right. \end{equation} x1=2x3+21x5x4=164x1x2=341x5
表达式(2-17)的等式二修改后得到新的基变量(x1,x2,x4):
{ x 1 = 2 − x 3 + 1 2 x 5 x 4 = 8 + 4 x 3 − 2 x 5 ( 2 − 18 − 1 ) x 2 = 3 − 1 4 x 5 \begin{equation} \left\{ \begin{array}{lr} x_1 = 2 - x_3 + \frac{1}{2}x_5 & \\ x_4 = 8 + 4x_3 - 2x_5 &&&&&&&&&&&&&&&& (2-18-1)\\ x_2 = 3 -\frac{1}{4}x_5 & \end{array} \right. \end{equation} x1=2x3+21x5x4=8+4x32x5x2=341x5(2181)
带入到目标函数得到:
z = 13 − 2 x 3 + 1 4 x 5                                            ( 2 − 18 − 2 ) z = 13 - 2x_3 + \frac{1}{4}x_5 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (2-18-2) z=132x3+41x5                                          (2182)
让非基变量x3=x5=0,得到大目标函数最大值13,基可行解是(2,3,0,8,0)。

第四次迭代:

下面描述一下第四次迭代的详细过程:

从第三次迭代得到的目标函数(2-18-2)可以看出,x5的系数是1/4>0,说明生产x5后,目标函数值还会变大,所以x5要进基,那x1、x2、x4哪个会出基呢?

表达式(2-18-1)中的三个等式都有x5。从第一个等式可以看出,x1要>=0,x5>=-4,-4已经小于0就不考虑了;从第二个等式可以看出,x4>=0,x5的最大值是8/2=4;从第三个等式可以看出,x2>=0,x5的最大值是3/(1/4)=12;要从x5的值(-4,4,12)中,选择正数中最小的那个,也就是4,所以(2-18-1)中的第二个等式中的x5要进基(移动到等号左边),x4要出基(移动到等号的右边),得到:
{ x 1 = 2 − x 3 + 1 2 x 5 x 5 = 4 + 2 x 3 − 1 2 x 4 x 2 = 3 − 1 4 x 5 \begin{equation} \left\{ \begin{array}{lr} x_1 = 2 - x_3 + \frac{1}{2}x_5 & \\ x_5 = 4 + 2x_3 - \frac{1}{2}x_4 \\ x_2 = 3 -\frac{1}{4}x_5 & \end{array} \right. \end{equation} x1=2x3+21x5x5=4+2x321x4x2=341x5
在将上面的第一个和第三个等式中的x5用第二个等式替换,后得到新的基变量(x1,x2,x5):
{ x 1 = 4 − 1 4 x 4 x 5 = 4 + 2 x 3 − 1 2 x 4 x 2 = 2 − 1 2 x 3 + 1 8 x 4 \begin{equation} \left\{ \begin{array}{lr} x_1 = 4 - \frac{1}{4}x_4 & \\ x_5 = 4 + 2x_3 - \frac{1}{2}x_4 \\ x_2 = 2 -\frac{1}{2}x_3 + \frac{1}{8}x_4 & \end{array} \right. \end{equation} x1=441x4x5=4+2x321x4x2=221x3+81x4
带入到目标函数得到:
z = 14 − 3 2 x 3 − 1 8 x 4 z = 14 - \frac{3}{2}x_3 - \frac{1}{8}x_4 z=1423x381x4
让非基变量x3=x4=0,得到大目标函数最大值14,基可行解是(4,2,0,0,4)。

因为上述目标函数中x3和x4的系数都小于0了,x3和x4都要>=0,所以目标函数不会再变大了,最大就是14。

这里可以看到,初始基是原点,迭代的过程就是从原点开始,找到可行域的下一个顶点验证的过程。

四、单纯形表

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【进阶】MySQL索引介绍

半个月没写mysql了,今天记录一下。。 了解到的索引有Btree,Hash表(Memory存储引擎中),R-tree,Full-text等 MySql用的索引结构是Btree,B树所有节点都会出现在叶子节点中 目录 索引介绍&#…

容器目录挂载原理

前言 就我目前的对容器的了解, 使用namespace技术实现隔离, 使用cgroups技术实现资源限制. 但是具体是如何实现却从未深究过. 闲来无事, 挑其中的Mount Namespace来康康, 容器是如何实现目录隔离的. 目录隔离 在耗子叔的这篇文章中对此技术进行了介绍. 在c函数库中, 可通过…

Linux Audio (4) ASOC代码分析-基于kernel3.4.2

ASOC代码分析-基于kernel3.4.2 OverviewPlatformCPU DAICPU DMA CodecMechine Linux kernel版本:3.4.2 Overview linux ASoC音频设备驱动 ASoC是ALSA在SoC方面的发展和演变,它的本质仍然属于ALSA,但是在ALSA架构基础上对CPU相关的代码和Cod…

【python之django1.11框架一】django环境搭建及基本操作

1. 环境准备 开发环境:windows 11先安装好miniconda3。镜像地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/ 选择windows 64位下载。 下载地址: https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-lates…

JIRA的数据备份与恢复教程

目录 一、简介 二、数据备份(默认系统会自动备份,不需要手动) 1、使用管理员账号登录JIRA。 2、点击左上角的设置按钮,选择“系统”选项。 3、选择“备份系统”选项 4、开始手动备份 5、查看备份进度 三、数据恢复 1、使用…

MyBatisPlus入门案例

文章目录 1 入门案例步骤1:创建数据库及表步骤2:创建SpringBoot工程步骤3:勾选配置使用技术步骤4:pom.xml补全依赖步骤5:添加MP的相关配置信息步骤6:根据数据库表创建实体类步骤7:创建Dao接口步骤8:编写引导类步骤9:编写测试类 2 MybatisPlus简介 MyBatisPlus主要是对MyBatis的…

SQL注入 - Part 1

前置知识:sql前置的软件环境:预装了phpstudy_prodvwa,花了好长时间……时间主要浪费在听从chatgpt的建议装xampp上,卸载了mysql,重置了密码。其实使用xampp搭建环境也成功了,但是由于phpstudy教程比较多&am…

了解物理层下的传输媒体

1.了解物理层下的传输媒体 声明:该学习笔记来自湖科大教书匠,笔记仅做学习参考 笔记来源: 湖科大教书匠:物理层的基本概念 湖科大教书匠:物理层下面的传输媒体 1.1 物理层的基本概念 物理层考虑在连接各计算机的传输…

JQuery原理剖析——自己手写简易版JQuery

目录 为什么需要JQuery 在此之前回顾JavaScript对象知识: 自己手写的简易JQuery: 为什么需要JQuery 在我们之前写的JS代码中经常会遇见document.getElementById等等获取元素的对象,当大量的元素对象需要被获取时,就会有很多相似…

linux系统升级/更新OpenSSL版本操作流程记录

问题描述:有时 OpenSSL 版本过老升级,或者需要更新 OpenSSL 版本 1. 登录 linux 系统后输入 openssl version 查看现在使用的版本 我的输入后版本信息为:OpenSSL 1.1.1g FIPS 21 Apr 2020 ,可以看到是一年前更新版本,…

openGauss数据库Package原理分析FAQ

FAQ的形式分析OpenGauss中package实现基础关键逻辑。 下面四个问题基本将市面上基于postgresql实现package的方法分成了几类。 例如问题一: openGauss使用包所在的namespace作为包函数的namespace。IvorySQL使用包本身的oid作为包函数的namespace。还有db创建一个…

微信小程序vue+nodejs校园快递物流取件及上门服务系统uniapp

系统分为用户和管理员两个角色 用户的主要功能有: 1.用户注册和登陆系统 2.用户查看系统的公告信息 3.用户在线快递下单,支付订单,在线订购快递取件 4.用户在线预约快递,填写快递预约信息 5.用户个人中心在线充值 6.用户个人中心修…

c++学习——概述、命名空间注意事项

C语言在c语言的基础上添加了面向对象编程和泛型编程的支持。 第一个helloworld #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std;//标准命名空间int main() {//cout是标准的输出流对象&#xff0c;打印字符串//endl是刷新缓冲区&#xff0c;…

软件详细设计总复习(一)【太原理工大学】

实验内容重点看&#xff0c;无需死记&#xff0c;它更是一种设计思想。要理解一种设计模式出现的意义是什么&#xff0c;它又是如何方便我们使用的&#xff1f;目的无非就是解耦、易扩充。题目问到优缺点&#xff0c;你只要知道该模式的设计思想就完全可以用自己的话概述&#…

chatgpt赋能Python-python3绘制图形

Python3绘制图形 – 让数据更加生动 作为一种可视化数据的工具&#xff0c;图形在数据分析和展示中扮演着重要的角色。Python3作为一种高效的编程语言&#xff0c;在图形方面也有自己的实现方式&#xff0c;让我们一起来了解Python3的图形绘制。 什么是Python3图形绘制&#…

chatgpt赋能Python-python3_取余

Python3 取余 在Python3中&#xff0c;取余运算是使用%符号进行实现的。它可以用于整数和浮点数&#xff0c;并返回一个余数。Python3是一种开放源码、高级编程语言。它是一种解释型语言&#xff0c;由于其简洁的语法和易于阅读的特性而受到广泛的欢迎。 取余基础 取余运算就…

ContOS7单机安装Hadoop

安装Hadoop 1&#xff0c;准备环节 因为Hadoop是由java编写的&#xff0c;所以需要Java的环境支持&#xff0c;作为开发者我们需要安装jdk。 安装jdk的教程http://t.csdn.cn/6qJKg 下载Hadoop的安装包 Hadoop官网&#xff1a;http://hadoop.apache.org/ Hadoop版本下载地…

【连续介质力学】张量的偏微分、球张量和偏张量

张量的偏微分 张量的一阶微分&#xff0c;定义&#xff1a; ∂ A ∂ A A , A ∂ A i j ∂ A k l ( e ^ i ⨂ e ^ j ⨂ e ^ k ⨂ e ^ l ) δ i k δ j l ( e ^ i ⨂ e ^ j ⨂ e ^ k ⨂ e ^ l ) I \frac{\partial A}{\partial A} A_{,A}\frac{\partial A_{ij}}{\partial A…

C++ map用法总结(整理)

1&#xff0c;map简介 map是STL的一个关联容器&#xff0c;它提供一对一的hash。 第一个可以称为关键字(key)&#xff0c;每个关键字只能在map中出现一次&#xff1b;第二个可能称为该关键字的值(value)&#xff1b; map以模板(泛型)方式实现&#xff0c;可以存储任意类型的…

算法26:暴力递归

目录 题目1&#xff1a;给你一个字符串&#xff0c;要求打印打印出这个字符串的全部子序列&#xff08;子序列不能重复&#xff09; 题目2&#xff1a;打印一个字符串的全部排列。 题目3&#xff1a;针对题目2&#xff0c;要求去除重复元素 题目4&#xff1a;给定一个字符串…