12.25广义分布外检测学习/代码复现

A = model.getA().toarray()  #
b = np.array(model.RHS)
sense = np.array(model.sense)
f = np.array(model.obj)

Aineq = np.vstack((-Ale, Age))  # 把所有的<=和>=组合在一起
bineq = np.append(-ble, bge)  # 这里用append使bineq为一个一维矩阵,而不是2行1列的二维矩阵,避免后面的运行错误

 

 

for row in np.arange(Aineq.shape[0]):# 第一阶段变量if not np.all(Aineq[row][num_1:] == 0): #第一阶段独有约束E.append(Aineq[row][:num_1]) #xG.append(Aineq[row][num_1:num_1+num_2]) #yM.append(Aineq[row][num_1+num_2:]) #uh.append(bineq[row]) #b

根据您的代码片段,循环遍历了Aineq矩阵的每一行,并根据条件将其拆分成不同的部分,并将它们存储在不同的列表中。

E, G, M, h = [], [], [], []:这几行代码初始化了四个空列表,用于存储拆分后的约束部分。

for row in np.arange(Aineq.shape[0]):这行代码用于构建一个循环,在Aineq矩阵的每一行上进行迭代。

if not np.all(Aineq[row][num_1:] == 0):这行代码检查当前行是否包含第一阶段独有的约束。如果当前行的(num_1+1)列及以后的列都为0,则说明该行不包含第一阶段独有的约束。

E.append(Aineq[row][:num_1])、G.append(Aineq[row][num_1:num_1+num_2])、M.append(Aineq[row][num_1+num_2:])、h.append(bineq[row]):这几行代码将当前行的适当部分添加到相应的列表中。 E存储当前行从第一列到第num_1列的元素(第一阶段变量x的部分),G存储当前行从第num_1列到第num_1+num_2列的元素(第二阶段变量y的部分),M存储当前行从第num_1+num_2列之后的元素(辅助变量u的部分),h存储当前行的右侧约束值。

综合来说,这些代码片段的作用是将Aineq矩阵的每一行根据条件拆分成不同的部分,并将这些部分分别存储在列表E、G、M和h中,以便在后续处理中使用。

 

 下面是一个简单的示例,演示了如何将非紧凑形式的约束转换为紧凑形式的约束,使用 Python 和 Gurobi 进行实现:

import gurobipy as gp
from gurobipy import GRB# 创建模型
m = gp.Model("example")# 创建变量
x = m.addVar(name="x")
y = m.addVar(name="y")# 创建系数
a = 1
b = 2
c = 3# 非紧凑形式的约束
m.addConstr(a * x + b * y >= c, "c1")# 紧凑形式的约束
# 创建系数矩阵和变量向量
coefficients = [a, b]
variables = [x, y]
# 创建约束
m.addConstr(gp.LinExpr(coefficients, variables) >= c, "c2")# 设置优化目标
m.setObjective(x + y, GRB.MAXIMIZE)# 求解模型
m.optimize()

 非紧凑形式的约束到紧凑形式的约束python基于gurobi的代码实现:

import numpy as np
import cvxpy as cp# 创建变量
x = cp.Variable()
y = cp.Variable()# 创建系数
a = 1
b = 2
c = 3# 非紧凑形式的约束
constraints = [a * x + b * y >= c]# 紧凑形式的约束
# 创建系数向量和变量向量
coefficients = np.array([a, b])
variables = np.array([x, y])
# 创建约束
compact_constraint = coefficients @ variables >= c# 创建问题
problem = cp.Problem(cp.Maximize(x + y), constraints + [compact_constraint])# 求解问题
problem.solve()

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

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

相关文章

SpringBoot 3.2.0 基于Spring Security+JWT实现动态鉴权

依赖版本 JDK 17 Spring Boot 3.2.0 Spring Security 6.2.0 工程源码&#xff1a;Gitee 为了能够不需要额外配置就能启动项目&#xff0c;看到配置效果。用例采用模拟数据&#xff0c;可自行修改为对应的ORM操作 编写Spring Security基础配置 导入依赖 <properties>&l…

java练习之abstract (抽象) final(最终) static(静态) 练习

1&#xff1a;分析总结&#xff1a;写出private、abstract、static、final之间能否联动使用&#xff0c;并写出分析原因 private static final 之间可以任意结合 abstract 不可以与private static final 结合使用 2&#xff1a;关于三个修饰符描述不正确的是(AD) A. static …

Linux操作系统基础知识点

Linux是一种计算机操作系统&#xff0c;其内核由林纳斯本纳第克特托瓦兹&#xff08;Linus Benedict Torvalds&#xff09;于1991年首次发布。Linux操作系统通常与GNU套件一起使用&#xff0c;因此也被称为GNU/Linux。它是一种类UNIX的操作系统&#xff0c;设计为多用户、多任务…

计算机组成原理综合6

补码表示&#xff1a; X&#xff1a;1111 1111 1111 1101 Y&#xff1a;1111 1111 1101 1111 Z&#xff1a;0111 1111 1111 1100 转原码表示&#xff1a;从右往左找第一个“1”&#xff0c;左边的所有数值位按位取反 X&#xff1a;1111 1111 1111 1101 1000 0000 00…

OGG-MySQL无法正常同步数据问题分析

问题背景: 用户通过OGG从源端一个MySQL从库将数据同步到目标端的另一个MySQL数据库里面&#xff0c;后面由于源端的从库出现了长时间的同步延时&#xff0c;由于延时差距过大最后选择通过重建从库方式进行了修复 从库重建之后&#xff0c;源端的OGG出现了报错ERROR OGG-0014…

关于Sneaky DogeRAT特洛伊木马病毒网络攻击的动态情报

一、基本内容 作为复杂恶意软件活动的一部分&#xff0c;一种名为DogeRAT的新开源远程访问特洛伊木马&#xff08;RAT&#xff09;主要针对位于印度的安卓用户发动了网络安全攻击。该恶意软件通过分享Opera Mini、OpenAI ChatGOT以及YouTube、Netfilx和Instagram的高级版本等合…

《PySpark大数据分析实战》-19.NumPy介绍ndarray介绍

&#x1f4cb; 博主简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是wux_labs。&#x1f61c; 热衷于各种主流技术&#xff0c;热爱数据科学、机器学习、云计算、人工智能。 通过了TiDB数据库专员&#xff08;PCTA&#xff09;、TiDB数据库专家&#xff08;PCTP…

饥荒Mod 开发(二三):显示物品栏详细信息

饥荒Mod 开发(二二)&#xff1a;显示物品信息 源码 前一篇介绍了如何获取 鼠标悬浮物品的信息&#xff0c;这一片介绍如何获取 物品栏的详细信息。 拦截 inventorybar 和 itemtile等设置字符串方法 在modmain.lua 文件中放入下面代码即可实现鼠标悬浮到 物品栏显示物品详细信…

适合引流源码声音鉴定神器网站源码,轻松吸引用户关注

源码介绍 声鉴卡HTML5网页源码&#xff0c;完整可运转&#xff0c;调用wx录音&#xff0c;自动判断声音属性&#xff0c;输出结果 安装教程 只需要把源码上传至主机空间就可以 支持上传二级目录访问&#xff01;提示一下&#xff1a;wxvx打开效果是最佳的源码里面生成二维码…

测试服务器带宽(ubuntu)

apt install python3 python3-pippip3 install speedtest-clispeestest-cli

Hive05_DML 操作

1 DML 数据操作 1.1 数据导入 1.1.1 向表中装载数据&#xff08;Load&#xff09; 1&#xff09;语法 hive> load data [local] inpath 数据的 path [overwrite] into table student [partition (partcol1val1,…)];&#xff08;1&#xff09;load data:表示加载数据 &…

Redis数据结构(常用5+4种特殊数据类型)

1、Redis 数据类型以及使用场景分别是什么&#xff1f; Redis 提供了丰富的数据类型&#xff0c;常见的有五种数据类型&#xff1a;String&#xff08;字符串&#xff09;&#xff0c;Hash&#xff08;哈希&#xff09;&#xff0c;List&#xff08;列表&#xff09;&#xff…

119. 杨辉三角 II(Java)

给定一个非负索引 rowIndex&#xff0c;返回「杨辉三角」的第 rowIndex 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 示例 1: 输入: rowIndex 3 输出: [1,3,3,1]示例 2: 输入: rowIndex 0 输出: [1]示例 3: 输入: rowIndex 1 输出: [1,1]提示…

通过自然语言处理增强推荐系统:协同方法

一、介绍 自然语言处理 (NLP) 是人工智能的一个分支&#xff0c;专注于使机器能够以有意义且有用的方式理解、解释和响应人类语言。它包含一系列技术&#xff0c;包括情感分析、语言翻译和聊天机器人。 另一方面&#xff0c;推荐系统&#xff08;RecSys&#xff09;是旨在向用户…

Android笔记(二十一):Room组件实现Android应用的持久化处理

一、Room组件概述 Room是Android JetPack架构组件之一&#xff0c;是一个持久处理的库。Room提供了在SQLite数据库上提供抽象层&#xff0c;使之实现数据访问。 &#xff08;1&#xff09;实体类&#xff08;Entity&#xff09;&#xff1a;映射并封装了数据库对应的数据表中…

彻底卸载Keil4

彻底卸载Keil4 双击 然后回到该软件的文件夹位置&#xff0c;把该文件夹删除即可&#xff0c;然后清一下回收站。

【Midjourney】Midjourney提示词格式详解

目录 &#x1f347;&#x1f347;Midjourney是什么&#xff1f; &#x1f349;&#x1f349;Midjourney怎么用&#xff1f; &#x1f514;&#x1f514;Midjourney提示词格式 &#x1f341; 1.模型版本提示词&#x1f341; 参数 参数详解 应用示例 &#x1f343; 2.风格…

基于双闭环PI的SMO无速度控制系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于双闭环PI的SMO无速度控制系统simulink建模与仿真&#xff0c;基于双闭环PI的SMO无速度控制系统主要由两个闭环组成&#xff1a;一个是电流环&#xff0c;另一个是速度环。…

AssertionError: The environment must specify an action space. 报错 引发的惨案

起因是&#xff1a;从github上下载了一个代码&#xff0c;运行出错。 整体流程&#xff1a; 1. AssertionError: The environment must specify an action space. 报错&#xff0c;解决方案是 降级gym到 gym0.18.0 2.为了降级gym gym0.18.0 报错&#xff0c;发现需要降级 setup…

k8s实战之ELK日志管理

首先查看总体流程 首先创建namespace apiVersion: v1 kind: Namespace metadata:name: kube-logging 一、首先创建es.yaml --- apiVersion: v1 #kubernetes API版本,采用最新版本v1 kind: Service #资源类型定义为Service metadata: name: elasticsearch-logging # …