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

探索 36G1 - 改进 critic - TOPSIS 算法及仿真实现

36G1-改进critic-TOPSIS 可进行matlab和python仿真程序通用也可“改进”,

在多准则决策分析领域,critic - TOPSIS 是一种颇为有效的方法,今天咱们就来聊聊对它改进的那些事儿,并且看看在 Matlab 和 Python 中怎么实现仿真。

一、改进 critic - TOPSIS 算法简介

传统的 critic - TOPSIS 算法通过熵权法确定指标权重,再结合 TOPSIS 法计算各方案与理想解的贴近度来进行方案排序。然而,在一些复杂场景下,它可能会暴露出些许不足。比如说,传统方法对于指标相关性的考虑有时不够细致,导致权重确定不够精准。改进方向之一就是更加深入地挖掘指标间的相关性,利用更复杂的数学模型来修正权重。

二、Matlab 仿真实现

1. 数据准备

首先,假设我们有一个决策矩阵X,包含m个方案和n个指标。

% 示例决策矩阵 X = [10 20 30; 15 25 35; 20 30 40]; [m, n] = size(X);

这里创建了一个简单的3×3的决策矩阵,实际应用中你需要根据具体问题替换这个矩阵。

2. 数据标准化

% 数据标准化 Z = zeros(m, n); for j = 1:n Z(:, j) = (X(:, j) - min(X(:, j))) / (max(X(:, j)) - min(X(:, j))); end

这段代码通过对每个指标进行归一化处理,将数据映射到[0, 1]区间,这样不同量级的指标就可以放在一起比较啦。

3. 改进的 critic 权重计算

改进的关键就在这里,假设我们通过某种新的相关性分析方法得到了指标间的相关系数矩阵R

% 假设已经得到相关系数矩阵 R R = corrcoef(Z); % 计算冲突性指标 C = zeros(1, n); for j = 1:n C(j) = sum(1 - R(j, :)); end % 计算权重 W = C / sum(C);

这里简单模拟了根据相关系数计算冲突性指标,进而得到改进后的权重W。实际改进中,相关系数矩阵的计算方式和冲突性指标的确定会更复杂。

4. TOPSIS 计算贴近度

% 正理想解和负理想解 Z_p = max(Z); Z_n = min(Z); % 计算距离 D_p = sqrt(sum((repmat(Z_p, m, 1) - Z).^2, 2)); D_n = sqrt(sum((repmat(Z_n, m, 1) - Z).^2, 2)); % 计算贴近度 CC = D_n./ (D_p + D_n);

这部分就是经典的 TOPSIS 计算贴近度的过程,通过计算各方案到正、负理想解的距离,得出贴近度,从而对方案进行排序。

三、Python 仿真实现

1. 数据准备

import numpy as np # 示例决策矩阵 X = np.array([[10, 20, 30], [15, 25, 35], [20, 30, 40]]) m, n = X.shape

Python 中使用numpy库来处理矩阵数据,和 Matlab 类似,先定义决策矩阵。

2. 数据标准化

# 数据标准化 Z = np.zeros((m, n)) for j in range(n): Z[:, j] = (X[:, j] - np.min(X[:, j])) / (np.max(X[:, j]) - np.min(X[:, j]))

同样是对每个指标进行归一化,代码逻辑和 Matlab 差不多,只是 Python 的语法略有不同。

3. 改进的 critic 权重计算

import pandas as pd # 假设已经得到相关系数矩阵 R df = pd.DataFrame(Z) R = df.corr().values # 计算冲突性指标 C = np.zeros(n) for j in range(n): C[j] = np.sum(1 - R[j, :]) # 计算权重 W = C / np.sum(C)

这里借助pandas库来计算相关系数矩阵,然后同样计算冲突性指标和权重。

4. TOPSIS 计算贴近度

# 正理想解和负理想解 Z_p = np.max(Z, axis = 0) Z_n = np.min(Z, axis = 0) # 计算距离 D_p = np.sqrt(np.sum((np.tile(Z_p, (m, 1)) - Z) ** 2, axis = 1)) D_n = np.sqrt(np.sum((np.tile(Z_n, (m, 1)) - Z) ** 2, axis = 1)) # 计算贴近度 CC = D_n / (D_p + D_n)

最后这部分 TOPSIS 计算贴近度的代码,和 Matlab 对应部分实现的功能一致,再次体现了两种语言在实现这类算法时的相似性。

36G1-改进critic-TOPSIS 可进行matlab和python仿真程序通用也可“改进”,

无论是 Matlab 还是 Python,对于改进的 critic - TOPSIS 算法仿真实现都有各自的优势。Matlab 语法简洁,在矩阵运算方面有很好的内置支持;Python 则胜在开源库丰富,生态活跃。希望这篇博文能给你在改进和实现 36G1 - 改进 critic - TOPSIS 算法上一些启发。

http://www.jsqmd.com/news/474270/

相关文章:

  • Kimi-VL-A3B-Thinking效果实测:模糊/低光照/旋转倾斜图片的鲁棒性识别能力
  • Fish-Speech-1.5实现多语言客服机器人:基于Vue的前端交互设计
  • 解决老游戏兼容性难题:DDrawCompat的焕新方案
  • 让前厅更高效,让服务更暖心——HWT2.0酒店话务台,重构宾客体验新范式
  • Phi-4-mini-reasoning推理效果展示|ollama生成博士级数学综述摘要
  • 基于Web技术的Local Moondream2浏览器端部署方案
  • MySQL 批量删除海量数据的几种方法
  • Phi-3-mini-128k-instructGPU算力优化:vLLM量化配置(AWQ/GPTQ)实测效果对比
  • Qwen3-Reranker-0.6B一键部署教程:5分钟搭建本地语义重排序服务
  • 采样延迟从800ms压至23ms,MCP Sampling调用流优化全链路剖析,含4类必踩坑清单
  • 【程序员转行】裁员潮下程序员破局:2026高价值赛道锁定大模型应用开发
  • MusePublic艺术创作引擎N8N自动化工作流:艺术创作流程优化
  • Hutool随机字符串生成实战:从基础到高级用法全解析(附代码示例)
  • 立创EDA实战:3串18650锂电池充电板电路设计与元件选型指南
  • WeKnora安全审计:基于RBAC的权限管理系统
  • Qwen3-Reranker-0.6B入门必看:重排模型与Embedding模型选型对比
  • 基于高频HF注入技术的PMSM永磁同步电机无速度传感器矢量控制仿真模型(Matlab Simu...
  • IC 设计私有化 AI 助手实战:基于 Docker + OpenCode + Ollama 的数字前端综合增强方案(实战篇)
  • 算法时间复杂度解析
  • Qwen2.5-VL-7B-Instruct效果展示:低光照/遮挡图像鲁棒性理解能力实测
  • 华山论剑之大话物联网平台四大门派
  • DeEAR语音情感识别实战:ASR文本后处理+DeEAR语音情感联合分析增强方案
  • 丹青识画系统在嵌入式设备上的轻量化部署:基于STM32的探索
  • Phi-3-Mini-128K惊艳效果:单卡RTX4060实现128K文本问答响应延迟<3s
  • 3步搞定Navicat密码找回:全场景适用的密码恢复工具使用指南
  • 从零开始:手把手教你用Thermo-Calc计算合金相图(含FEDEMO数据库配置详解)
  • 2026年发泡陶瓷线条优质厂家推荐榜:A级防火发泡陶瓷线条、A级防火外墙Eps线条、Eps装饰线条、发泡陶瓷外墙线条选择指南 - 优质品牌商家
  • C# 进行的CAD二次开发(炸开属性块)
  • Java集成cv_resnet50_face-reconstruction:企业级3D人脸识别系统开发
  • 从LTE到NR的定位协议演进:3GPP定位标准中LPP/SLPP/NRPPa的兼容性设计剖析