当前位置: 首页 > news >正文

单纯形法之大M法

1. 问题背景与标准化

在求解某些线性规划问题时,往往难以直接找到初始的基本可行解。特别是当约束中存在等式或 “≥” 类型的不等式时,我们需要引入人工变量来构造一个初始可行解。

考虑如下标准形式问题(假设为最大化问题):

\begin{aligned} \text{Maximize } & Z = c^T x, \\ \text{Subject to } & Ax = b, \\ & x \ge 0. \end{aligned}

当约束中有“=”或“≥”约束时,为使模型满足“基本变量个数等于约束个数”的条件,我们引入人工变量 a≥0 。


2. 引入人工变量与大 M 惩罚

2.1. 人工变量的引入

  • 对于形如

    Ax = b

    的约束,如果直接采用松弛或剩余变量无法得到初始可行解,则引入人工变量 a≥0 ,使约束变为

    Ax + a = b..
  • 对于 “≥” 约束,同样引入剩余变量后再补充人工变量,保证约束满足等式形式。

2.2. 修改目标函数

为避免在最终解中保留人工变量,需在目标函数中给予这些变量一个巨大的惩罚。对于最大化问题,通常将人工变量前的系数设为 −M (其中 M 是一个非常大的正数),修改后的目标函数为:

\text{Maximize } Z = c^T x - M \sum_{i\in \mathcal{A}} a_i,

其中 \mathcal{A} 表示所有人工变量的集合。这样做的目的在于:

  • 若人工变量在最优解中不为零,则由于扣分 −M 其目标值会大幅降低,迫使求解过程中尽量消除人工变量;

  • 当存在一个可行解不需要使用人工变量时,最终解会将所有人工变量淘汰(即取零)。


3. 构造初始单纯型表

将原问题中所有变量(原决策变量、松弛/剩余变量、人工变量)统一构成向量,再构造单纯型表。设扩展后的变量记为

x' = (x, \, s, \, a)

目标函数写成:

相应的约束矩阵也经过扩充,使得原约束变为标准等式形式。

初始时,我们选取人工变量作为基本变量,从而构造一个初始基本可行解(注意:此解可能并非真实意义下的“可行解”,因为人工变量仅为辅助求解而引入)。


4. 大 M 法的单纯型迭代过程

4.1. 目标函数的重写

类似于普通单纯型法,我们把目标函数用基变量和非基变量表示。令 B 为当前基矩阵(其中包含人工变量),则基本解为

x_B = B^{-1}b.

目标函数可以写为

Z = c_B^T x_B + (c_N^T - c_B^T B^{-1}N)x_N.

其中:

  • c_B 中可能包含 −M 对应的人工变量;

  • 检验数(相对成本)为

    \overline{c_j} = c_j - c_B^T B^{-1}A_j.

4.2. 迭代与淘汰人工变量

在迭代过程中,由于目标函数中对人工变量赋予了极大负值 −M ,如果存在能使目标函数改善的换入操作,就会倾向于选择那些能使人工变量离开基的换入变量。单纯型法的迭代步骤与普通方法类似:

  • 进基变量选择:检查所有非基变量的检验数,若存在 \overline{c_j} > 0(对于最大化问题),则选择最有利的变量进基;

  • 出基变量选择:计算方向向量,利用最小比值法确定允许步长和出基变量。

关键在于:

  • 当存在一个完全可行的解(即一个解不需要使用人工变量)时,经过有限步迭代,所有人工变量将被淘汰(或其值收缩为零)。

  • 若最终得到的最优解中仍含有正值的人工变量,则表明原问题没有可行解。


5. 数学证明与思想总结

5.1. 惩罚机制确保解的“真实性”

由于引入了惩罚系数 M ,在目标函数中任何非零的人工变量都会使目标值大幅下降。设若在某一基本解中某个人工变量 a_i 保持正值,则对应目标函数贡献为 M\, a_i

  • 当 M 足够大时,任何含有非零人工变量的解都不是最优解;

  • 如果存在一个可行解(即不存在必须依赖人工变量)时,最优解必然使所有人工变量取零。

5.2. 终止与可行性判断

  • 终止条件:当所有非基变量的检验数都满足最优性条件时,算法终止。

  • 无可行解判断:若在最优解中发现有某个人工变量 a_i > 0,则说明原问题无可行解。

5.3. 收敛性与大 M 的选择

  • 理论上,M 应当取足够大,使得其影响在求解过程中远大于其他系数的作用,但实际计算中需避免因 M 过大而引起数值不稳定;

  • 大 M 法证明的核心在于:在有限次迭代内,若存在一个不依赖人工变量的可行解,则算法必然能将所有人工变量驱逐出基,并找到该最优解。


6. 总结

大 M 法的理论推导过程主要包括以下几个步骤:

  1. 问题标准化:将问题写为等式约束形式,必要时引入松弛、剩余和人工变量。

  2. 目标函数修改:在目标函数中对人工变量施加巨大的惩罚(对于最大化问题,人工变量前系数取 −M )。

  3. 构造初始单纯型表:以包含人工变量的基本可行解作为起始点。

  4. 单纯型迭代:按照单纯型法的标准步骤进行迭代,通过换基操作改善目标函数值,同时尽量淘汰人工变量。

  5. 终止与判断:若最终最优解中所有人工变量均为零,则得到原问题的最优解;反之,则原问题无可行解。

相关文章:

单纯形法之大M法

1. 问题背景与标准化 在求解某些线性规划问题时,往往难以直接找到初始的基本可行解。特别是当约束中存在等式或 “≥” 类型的不等式时,我们需要引入人工变量来构造一个初始可行解。 考虑如下标准形式问题(假设为最大化问题)&am…...

一个数组分为两个sum相等的数组

vector&#xff0c;问是否可以拆成两部分&#xff0c;使其两部分的总和相同&#xff0c;用代码写一下 #include <iostream> #include <vector>using namespace std;bool canPartition(vector<int>& nums) {int sum 0;for (int num : nums) {sum num;…...

Socket如何实现客户端和服务器间的通信

使用Socket实现客户端和服务器间的通信 Socket是一种网络编程接口&#xff0c;广泛用于实现客户端和服务器之间的通信。在网络应用程序中&#xff0c;Socket提供了一种简单而强大的机制来建立和管理网络连接。本文将详细介绍如何使用Python的Socket模块来实现基本的客户端和服…...

崖山数据库(YashanDB)部署全流程详解

文章目录 引言 第1部分&#xff1a;环境准备 服务器要求 初始环境调整 第2部分&#xff1a;yasboot工具介绍 yasboot核心功能 yasboot进程架构 第3部分&#xff1a;YashanDB安装步骤 创建安装用户 目录规划 命令行安装流程 步骤1&#xff1a;生成配置文件 步骤2&a…...

07_JavaScript函数作用域_递归

目录 一、作用域&#xff08;重点&#xff09; 二、变量的使用规则 &#xff08;重点&#xff09; 2.1 访问规则 2.2 赋值规则 三、递归函数 &#xff08;难点&#xff09; 了解 四、对象 4.1 对象的创建 一、作用域&#xff08;重点&#xff09; 什么是作用域 ? 作用…...

基于大模型预测的初治菌阳肺结核诊疗方案研究报告

目录 一、引言 1.1 研究背景与意义 1.2 研究目的 二、初治菌阳肺结核概述 2.1 疾病定义与病理机制 2.2 流行病学特征 2.3 传统诊疗方法与局限性 三、大模型在初治菌阳肺结核预测中的应用原理 3.1 大模型技术简介 3.2 数据收集与预处理 3.3 模型构建与训练 3.4 模型…...

C# Modbus TCP/IP学习记录

Modbus协议中&#xff0c;角色分为主站&#xff08;Mater&#xff09;、从站&#xff08;Slave&#xff09;&#xff1b;数据类型分为线圈&#xff08;Coil&#xff09;、离散输入&#xff08;Input&#xff09;、保持寄存器&#xff08;HoldingRegister&#xff09;、输入寄存…...

斜线、短横、空格,三种分隔日期的优雅解析(Python | DeepSeek)

标准日期解析操作&#xff0c;str.replace链式如灵蛇蜿蜒&#xff0c;三元表达式像空灵仙家妙法。 笔记模板由python脚本于2025-03-25 22:32:24创建&#xff0c;本篇笔记适合三元表达式、字符串操作修习的coder翻阅。 【学习的细节是欢悦的历程】 博客的核心价值&#xff1a;在…...

Skynet 中 snlua 服务启动整体流程分析

前言&#xff1a; 在 Skynet 中&#xff0c;Lua 扮演了极其重要的角色。Skynet 大多数业务逻辑都跑在一个个 Lua 服务里&#xff0c;而能够将 Lua 环境嵌入到 Skynet 框架下&#xff0c;并与 Skynet 消息调度机制完美结合&#xff0c;正是 snlua 服务所承担的核心功能。 本文将…...

RWA代币化崛起中的香港机遇:数字金融新枢纽的破局之道

引言&#xff1a;全球资产代币化浪潮中的香港坐标 在2025年全球金融数字化重构的关键节点&#xff0c;RWA&#xff08;现实世界资产代币化&#xff09;市场以年均740%的增速重塑价值流动规则。香港凭借独特的政策创新、跨境枢纽优势及庞大的资产储备&#xff0c;正从传统金融中…...

Docker Compose介绍

基本概念 Docker-Compose是Docker官方的开源项目&#xff0c;负责实现对docker容器集群的快速编排。 可以这么理解&#xff0c;docker compose是docker提出的一个工具软件&#xff0c;可以管理多个docker容器组成一个应用&#xff0c;只需要编写一个YAML格式的配置文件docker…...

【LeetCode 题解】算法:15.三数之和

一、问题描述 在 LeetCode 上有这样一道经典的算法题&#xff0c;题目要求给定一个整数数组 nums&#xff0c;找出所有不重复的三元组 [nums[i], nums[j], nums[k]]&#xff0c;需要满足以下两个条件&#xff1a; 三个元素的索引互不相同&#xff0c;即 i ! j&#xff0c;i ! …...

springboot使用阿里限流框架-sentinel

当前项目源码 控制台下载 启动bin中的看板服务&#xff1a;账号密码:sentinel/sentinel 官方文档地址 项目引入依赖 <!-- sentinel注解支持 --> <dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-annotation-aspectj<…...

Ubuntu20.04系统安装IsaacSim4.5与IsaacLab环境

Introduction 今天用自己的Ubuntu20.04系统安装最新更新的IsaacSim 4.5 与 最新版的IsaacLab遇到了问题&#xff0c;且这个问题组里师兄之前也遇到了&#xff0c;我的解决方法是从头来过&#xff0c;所及记录一下。 IsaacSim现在支持pip安装&#xff0c;但是Ubuntu20.04的pip…...

【大模型】数字人 EchoMimicV2 的环境配置和使用

一、EchoMimicV2的简单介绍 EchoMimicV2是EchoMimicV1的升级版本&#xff0c;旨在通过音频驱动生成更加自然和流畅的半身人类动画。它能够让用户仅通过简单的音频输入&#xff0c;生成与声音内容相匹配的动画效果&#xff0c;使虚拟人物看起来更加生动。 作者&#xff1a;由蚂蚁…...

导入 Excel 规则批量修改或删除 PDF 文档内容

需要对 PDF 文档内容进行修改的时候&#xff0c;通常我们会需要借助一些专业的工具来帮我们完成。那我们如果需要修改的 PDF 文档较多的时候&#xff0c;有什么方法可以帮我们实现批量操作呢&#xff1f;今天这篇文章就给大家介绍一下当我们需要批量修改多个 PDF 文档的时候&am…...

2.Excel :快速填充和拆分重组

一 案例1&#xff1a;快速填充 电子邮件中包含每个人的人名&#xff0c;现在要提取电子邮件中的姓名到名字列。 方法1&#xff1a;将 Nancy 复制到单元格后&#xff0c;邮件会高亮&#xff0c;然后输入A的时候系统就会知道提取名字了。 补充&#xff1a;如果第三个位置输入错误…...

python tkinter 开发蓍草占卜系统

1. 项目概述 1.1 简介 蓍草占卜是中国传统的占卜方法&#xff0c;用于演算六十四卦。本系统通过现代编程技术&#xff0c;将传统的蓍草占卜方法数字化&#xff0c;提供一个准确、便捷的占卜工具。 蓍草占卜&#xff0c;作为中国古代的一种传统占卜方法&#xff0c;承载着深厚…...

综合小实验之电视机

综合小实验1 一、实验拓扑图 二、实验要求 按照图示配置IP地址&#xff1b;按照图示区域划分配置对应的动态路由协议&#xff1b;在R7上配置dhcp服务器&#xff0c;能够让pc可以获取IP地址&#xff1b;将所有环回⼝宣告进ospf中&#xff0c;将环回⼝7宣告进rip中&#xff0c;…...

全排列|| 分发饼干 摆动序列

1.给定一个可包含重复数字的序列 nums &#xff0c;按任意顺序 返回所有不重复的全排列。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,2] 输出&#xff1a; [[1,1,2], [1,2,1], [2,1,1]] 示例 2&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3…...

【开源宝藏】用 JavaScript 手写一个丝滑的打字机动画效果

你当前项目实现了一个非常丝滑的 打字机文字效果动画&#xff0c;使用的是自定义的 typical.js 脚本。下面我将给出一份逐步拆解的中文教程&#xff0c;帮你或其他初学者快速上手并自定义这个打字效果。 ✨ 最终效果 打开页面后&#xff0c;中央会逐字显示&#xff1a; Hello…...

推荐1款简洁、小巧的实用收音机软件,支持手机和电脑

聊一聊 没想到现在还有人喜欢听广播。 我一直以为听广播必须要用那种小广播机才可以。 原来手机或电脑上也是可以的。 今天给大家分享一款可以在电脑和手机上听广播的软件。 软件介绍 龙卷风收音机 电台广播收音机分电脑和手机两个版本。 电脑端无需安装&#xff0c;下载…...

64. MfgTool烧写工具详解

一、MfgTool工具简介 1、mfgtool是NXP官方做的向I.MX系列烧写系统的软件&#xff0c;运行在windows下。可以烧写uboot.imx、zImage、dtb&#xff0c;rootfs。通过USB烧写。 Mfgtool里面默认存放了NXP官方开发板的系统文件&#xff0c; 2、基本原理 向开发板烧系统分两部分&am…...

3、孪生网络/连体网络(Siamese Network)

目的: 用Siamese Network (孪生网络) 解决Few-shot learning (小样本学习)。 Siamese Network并不是Meta Learning最好的方法, 但是通过学习Siamese Network,非常有助于理解其他Meta Learning算法。 这里介绍了两种方法:Siamese Network (孪生网络)、Trplet Loss Siam…...

前端学习笔记--CSS

HTMLCSSJavaScript 》 结构 表现 交互 如何学习 1.CSS是什么 2.CSS怎么用&#xff1f; 3.CSS选择器&#xff08;重点&#xff0c;难点&#xff09; 4.美化网页&#xff08;文字&#xff0c;阴影&#xff0c;超链接&#xff0c;列表&#xff0c;渐变。。。&#xff09; 5…...

开个坑记录一下树莓派4B部署yolo的一些问题

问题一&#xff1a;操作系统与内核信息 这个问题困扰了我一天半&#xff0c;下载的时候显示的信息是aar64的系统&#xff0c;但是这并无意味着一个问题&#xff0c;那就是你的操作系统是64位的。需要采用如下的指令查看&#xff1a; getconf LONG_BIT 我在树莓派得出来的操作…...

1.1 结构体与类对象在List中使用区别

一、问题的起源如下的代码是错误的&#xff0c;无法编译通过 struct Point {public int X;public int Y; }List<Point> points new List<Point> { new Point { X 1, Y 2 } }; points[0].X 10; // 编译错误&#xff01;无法修改副本的字段 二、原因分析 在C#中&…...

详细说明windows系统函数::SetUnhandledExceptionFilter(ExceptionFilter)

::SetUnhandledExceptionFilter(ExceptionFilter); 是 Windows 编程中用于设置顶层未处理异常过滤器的关键 API 调用。它属于 Windows 结构化异常处理&#xff08;SEH, Structured Exception Handling&#xff09;机制的一部分&#xff0c;主要用于捕获那些未被程序内部处理的异…...

力扣刷题39. 组合总和

39. 组合总和 - 力扣&#xff08;LeetCode&#xff09; 需要定义一个index变量用来记录访问数组的下标&#xff0c;每次递归进行传参&#xff0c;在搜索过程中&#xff0c;因为为了避免重复数据&#xff0c;而且允许一个元素的重复出现&#xff0c;传入index时传入当前遍历的i…...

正弦函数的连续傅里叶变换正弦序列的DTFT

正弦序列 时域 x [ n ] sin ⁡ ( ω 0 n ) x[n] \sin(\omega_0 n) x[n]sin(ω0​n)频域 X ( e j ω ) j π 2 [ δ ( ω − ω 0 ) − δ ( ω ω 0 ) ] X({\rm e}^{{\rm j}\omega}) \frac{{\rm j}\pi}{2} \left[ \delta(\omega - \omega_0) - \delta(\omega \omega_0…...

winstart.wsf 病毒清理大作战

0x00 背景 发现感染了winstart.wsf 病毒如何清理。 0x01 现象 遍历Users下每个目录以及C:\和C:\Windows\Temp 2个目录写入病毒文件。 C:\Users\Administrator\AppData\Local\Temp\winstart.wsf C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Program…...

leetcode 20.有效括号

20. 有效的括号 - 力扣&#xff08;LeetCode&#xff09; class Solution:def isValid(self, s: str) -> bool:stack []for i in s :if i in ((,{,[ ):stack.append(i)elif i in () ):# 这种情况是 栈弹出元素为空时候 &#xff0c;右半部分的括号多出来一些 比如&#x…...

Leetcode刷题笔记1 图论part07

卡码网 53 寻宝 prim算法 prim算法核心就是三步&#xff0c;称为prim三部曲&#xff1a; 第一步&#xff0c;选距离生成树最近节点第二步&#xff0c;最近节点加入生成树第三步&#xff0c;更新非生成树节点到生成树的距离&#xff08;即更新minDist数组&#xff09; def p…...

unittest自动化测试实战

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 为什么要学习unittest 按照测试阶段来划分&#xff0c;可以将测试分为单元测试、集成测试、系统测试和验收测试。单元测试是指对软件中的最小可测试单元在与程…...

flask,示例及解释

1&#xff09; from flask import Flask, render_templateapp Flask(__name__)app.route(/) def index():return render_template(m1index.html)app.route(/get_type) def get_type():return ["语文", "数学"]if __name__ __main__:app.run(host0.0.0.0…...

电机倍频曲线的一些奇异特性-原因分析及应用

这里对感应电机倍频曲线的特征进行了说明&#xff0c;然后将其特性用于电机转差率和工况的测量。先给出可以直接利用的结论&#xff1a; 电机的工况和转差率谱线会体现为5x,7x谱线调制在基频附近。两条调制过携带s信息的谱线距离基频谱线的距离。 与真实转速相对同步转速的频差…...

基于Ebay拍卖网站成交价格的影响因素分析

摘要:近些年来网上拍卖的不断地发展&#xff0c;网上购物慢慢变成了大家普遍接受的购物方式。因此关于网上拍卖的研究日益成为很多人研究的重点。 影响拍卖网站价格的因素很多&#xff0c;但很少有人分得清楚哪些因素才是比较重要的因素&#xff0c;因此对价格因素分析&#x…...

详解图卷积网络

文章目录 GCN/RGCN图卷积网络概述--运作原理**1. GCN&#xff08;Graph Convolutional Network&#xff0c;图卷积网络&#xff09;****1.1 核心思想****1.2 公式****1.3 特点****1.4 总结** **2. RGCN&#xff08;Relational Graph Convolutional Network&#xff0c;关系型图…...

Java 8-17核心特性全景解析之Java9、10

Java 9 核心特性解析 Java 9在2017年9月发布&#xff0c;带来了模块系统等重大变革&#xff0c;是Java平台现代化的重要一步。 模块系统 (Project Jigsaw) 特性概述 模块系统是Java 9最重要的特性&#xff0c;旨在解决Java平台和应用程序的可伸缩性问题&#xff0c;提供更好…...

mysql的学习

关系性数据库需要遵循ACID规则 原子性&#xff1a; 事务是最小的执行单位&#xff0c;不允许分割。事务的原子性确保动作要么全部完成&#xff0c;要么完全不起作用&#xff1b; 一致性&#xff1a; 执行事务前后&#xff0c;数据保持一致&#xff0c;例如转账业务中&#xff…...

leecode 560题

一、题目解析 题目如下->: 这道题的问题是&#xff0c;找到目标值为k的所有连续子串个数&#xff0c;因此最简单最容易想到的就是枚举 两个指针枚举起来确实可以解决&#xff0c;但是时间复杂度极大&#xff0c;达到了O(n^2)的级别 因此这不是我们想要的 二、解题思路 2.1 …...

借壹起航东风,中国工厂出海开启新征程

在经济全球化不断深入的当下&#xff0c;中国工厂正以积极的姿态投身海外市场&#xff0c;渴望在全球商业版图中占据一席之地&#xff0c;绽放独特的光彩。然而&#xff0c;出海之路充满了挑战与艰辛&#xff0c;品牌塑造困难重重、询盘量不稳定、营销成本居高不下等问题&#…...

Joomla教程—查看网站的前台页面与菜单管理(栏目管理)

原文&#xff1a;Joomla 查看网站的前台页面_w3cschool 在本节中&#xff0c;我们将简单介绍一下JOOMLA的前台界面。通过本节的介绍&#xff0c;希望你能对JOOMLA的界面组成有一个大致的了解。 你可以直接在浏览器中输入http://localhost/zmax/ 就会出现我们网站的首页了。也…...

HCIA-WLAN实验

1、划分VLAN&#xff0c;配置IP地址 2、配置AC作为AP的DHCP服务器自动为AP分配IP地址 dhcp enable interface Vlanif100 dhcp select interface 3、建立CAPWAP隧道 capwap source interface vlanif100 4、配置WLAN业务配置&#xff0c;下发至AP ①配置&#xff1a;wlan …...

DNA-PAINT

参考: 【科研教程】NUPACK网页版使用教程 https://www.bilibili.com/video/BV1G94y1W7mN/NUPACK新版网页版教程-模拟部分 https://zhuanlan.zhihu.com/p/678730568NUPACK 4.0 User Guide https://docs.nupack.org/NUPACK网页版使用指南 https://zhuanlan.zhihu.com/p/55024017…...

VS2022的第一个Qt程序——实战《加载并显示图像》

目录 一、UI设计 S1&#xff1a;双击Form Files下.ui文件&#xff0c;进入ui设计界面Qt Designer S2&#xff1a;然后拖动一个Push Button和Label控件到界面 S3&#xff1a;点击信号与槽&#xff0c;然后点击PushButton往外拉一下 S4&#xff1a;松开鼠标进入配置连接界面…...

从概率到梯度:理解分类问题中交叉熵的优越性

分类问题一般使用交叉熵&#xff08;Cross-Entropy&#xff09;而不是平方损失&#xff08;Square Loss&#xff09;函数1. **概率解释**2. **梯度性质**3. **对错误的惩罚**4. **计算复杂度**5. **总结** 分类问题一般使用交叉熵&#xff08;Cross-Entropy&#xff09;而不是平…...

如何选择?Postman vs JMeter 对比介绍

Postman 和 JMeter 作为两款主流测试工具&#xff0c;各有特色。本文将从多个维度详细对比这两款工具最新特性和应用场景。 工具基本介绍 对比项 Postman JMeter 类型 API 开发和测试工具 性能测试工具 开源情况 闭源&#xff0c;提供免费版 开源&#xff08;Apache L…...

P1182 数列分段 Section II

P1182 数列分段 Section II - 洛谷 题目描述 对于给定的一个长度为 N 的正整数数列 A1​∼AN​&#xff0c;现要将其分成 M&#xff08;M≤N&#xff09;段&#xff0c;并要求每段连续&#xff0c;且每段和的最大值最小。 关于最大值最小&#xff1a; 例如一数列 4 2 4 5 1…...

Thales靶场

信息收集 将靶机改为net模式&#xff0c;开启kali进行扫描&#xff0c;得到靶机ip 对靶机的端口&#xff0c;目录进行扫描&#xff0c;8080端口是 apache tomcat代理 进入8080端口&#xff0c;点击app出现登录窗口&#xff0c;弱口令没试出来&#xff0c;可以爆破登录窗口 查…...