问题描述

求矩阵不同行不同列元素和的最大值(最小值)

问题求解

1.通过scipy库求解

scipy.optimize库中的linear_sum_assignment方法可以求解

输入一个矩阵,参数maximize=True时找最大值,否则求解最小值

返回元素所在的行坐标,列坐标

import numpy as np
from scipy.optimize import linear_sum_assignment data = np.array([[10, 3, 6], [5, 2, 4], [2, 1, 5]])
rindex, cindex = linear_sum_assignment(data,maximize=True)
result = data[rindex, cindex] print(rindex,cindex,result,sep='\n')

output:

[0 1 2]
[0 1 2]
[10 2 5]

2.通过市场清仓价格算法求解

具体相关术语,详见书籍《网络、群体与市场》10.3节

import numpy as np

# 估值矩阵
data = np.array([[10, 42, 35], [12, 45, 63], [44, 25, 44]])
# 市场清仓价格 初始化为0
price = np.zeros(data.shape[0],dtype=np.int) # 不断循环直到找到市场清仓价格
while True:
# 收益矩阵 = 估值矩阵 - 价格
mdata = data - price
# 找出每个人的偏好卖家
prefer = mdata == np.max(mdata,1)[:,None]
# 计算每个卖家 有多少买家想买
prefer_sum = np.sum(prefer,0)
# 对于某个卖家,若买家大于1 就代表有受限组 否则此时为市场清仓价格
if not np.sum(prefer_sum > 1):
break
# 受限组的卖家价格提高1
price += (prefer_sum>1).astype(int) print('清仓价格:',price)
print('偏好卖家:',prefer,sep='\n')
print('结果:',data[prefer])

output:

清仓价格: [4 0 3]
偏好卖家:
[[ True False False]
[False True False]
[False False True]]
结果: [10 2 5]

3.通过整数规划求解

略,可以通过各种软件和库进行整数规划,例如matlab cvx库等

市场清仓价格算法 python求矩阵不同行不同列元素和的最大值的更多相关文章

  1. 【机器学习算法-python实现】矩阵去噪以及归一化

    1.背景    项目须要,打算用python实现矩阵的去噪和归一化.用numpy这些数学库没有找到非常理想的函数.所以一怒之下自己用标准库写了一个去噪和归一化的算法,效率有点低,只是还能用,大家假设有 ...

  2. pageRank算法 python实现

    一.什么是pagerank PageRank的Page可是认为是网页,表示网页排名,也可以认为是Larry Page(google 产品经理),因为他是这个算法的发明者之一,还是google CEO( ...

  3. 前向算法Python实现

    前言 这里的前向算法与神经网络里的前向传播算法没有任何联系...这里的前向算法是自然语言处理领域隐马尔可夫模型第一个基本问题的算法. 前向算法是什么? 这里用一个海藻的例子来描述前向算法是什么.网上有 ...

  4. Expm 10_2 实现Ford-Fulkerson算法,求出给定图中从源点s到汇点t的最大流,并输出最小割。

    package org.xiu68.exp.exp10; import java.util.ArrayDeque; import java.util.ArrayList; import java.ut ...

  5. (数据科学学习手札09)系统聚类算法Python与R的比较

    上一篇笔者以自己编写代码的方式实现了重心法下的系统聚类(又称层次聚类)算法,通过与Scipy和R中各自自带的系统聚类方法进行比较,显然这些权威的快捷方法更为高效,那么本篇就系统地介绍一下Python与 ...

  6. 算法导论-求(Fibonacci)斐波那契数列算法对比

    目录 1.斐波那契数列(Fibonacci)介绍 2.朴素递归算法(Naive recursive algorithm) 3.朴素递归平方算法(Naive recursive squaring) 4 ...

  7. 压缩感知重构算法之IRLS算法python实现

    压缩感知重构算法之OMP算法python实现 压缩感知重构算法之CoSaMP算法python实现 压缩感知重构算法之SP算法python实现 压缩感知重构算法之IHT算法python实现 压缩感知重构 ...

  8. 压缩感知重构算法之OLS算法python实现

    压缩感知重构算法之OMP算法python实现 压缩感知重构算法之CoSaMP算法python实现 压缩感知重构算法之SP算法python实现 压缩感知重构算法之IHT算法python实现 压缩感知重构 ...

  9. 压缩感知重构算法之CoSaMP算法python实现

    压缩感知重构算法之OMP算法python实现 压缩感知重构算法之CoSaMP算法python实现 压缩感知重构算法之SP算法python实现 压缩感知重构算法之IHT算法python实现 压缩感知重构 ...

随机推荐

  1. css3 压缩及验证工具

    1.css w3c统一验证工具 网址:http://www.csstats.com/ 如果你想要更全面的,这个神奇,你值得拥有: w3c统一验证工具:http://validator.w3.org/u ...

  2. JDK15真的来了,一起来看看它的新特性

    目录 简介 JDK15的新特性 JEP 385 Deprecate RMI Activation for Removal JEP 371 Hidden Classes JEP 339 Edwards- ...

  3. Fiddler无法抓取web项目中的http请求解决方案

    问题:webform项目中对接API使用Fiddler无法获取该API的请求,该webform比较老的一个项目, 同一个API写在控制台可以抓取到请求,用web项目放在本地IIS却不行,使用IIS E ...

  4. Cloudera Manager和CDH安装部署

    本次安装采用离线安装的方式,需要提前下载好需要的包. 1. 准备工作 1.1 环境说明 操作系统:RedHat企业级Linux6.5 64-bit Cloudera Manager:5.8.4 CDH ...

  5. Docker实战(6): 导出docker镜像离线包

    前言 离线环境安装Docker 镜像,我已知两种情况,以下操作我将采用在可访问外网的机器上通过镜像迁移的方式来给离线环境安装. 环境:服务器node1可访问外网.服务器node2无法访问外网 两台机器 ...

  6. redis连接池参数动态化

    有的时候要从后端获取数据,真实的key可能在参数之上做一些修改,查了下set-misc模块,set_unescape_uri命令支持变量替换 location ~ /get_redis$ {      ...

  7. Magento中数据拷贝一实现

    Mage_Sales_Model_Quote::setCustomer方法,有这么一行代码 Mage::helper('core')->copyFieldset('customer_accoun ...

  8. Analytics Zoo Cluster Serving自动扩展分布式推理

    作者: Jiaming Song, Dongjie Shi, Gong, Qiyuan, Lei Xia, Wei Du, Jason Dai 随着深度学习项目从实验到生产的发展,越来越多的应用需要对 ...

  9. springboot中关于Long类型返回前端精度丢失问题处理

    使用了HuTool这个雪花算法后,会出现丢失精度的问题 hutool算法使用地址 对于一些大的业务表,自增主键这里 接口层得注意下是否会产生大数值 设计接口的时候采用String类型. 在项目中,我们 ...

  10. domReady的理解

    domReady的理解 domReady是名为DOMContentLoaded事件的别称,当初始的HTML文档被完全加载和解析完成之后,DOMContentLoaded事件被触发,而无需等待样式表.图 ...