市场清仓价格算法 python求矩阵不同行不同列元素和的最大值
问题描述
求矩阵不同行不同列元素和的最大值(最小值)
问题求解
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求矩阵不同行不同列元素和的最大值的更多相关文章
- 【机器学习算法-python实现】矩阵去噪以及归一化
1.背景 项目须要,打算用python实现矩阵的去噪和归一化.用numpy这些数学库没有找到非常理想的函数.所以一怒之下自己用标准库写了一个去噪和归一化的算法,效率有点低,只是还能用,大家假设有 ...
- pageRank算法 python实现
一.什么是pagerank PageRank的Page可是认为是网页,表示网页排名,也可以认为是Larry Page(google 产品经理),因为他是这个算法的发明者之一,还是google CEO( ...
- 前向算法Python实现
前言 这里的前向算法与神经网络里的前向传播算法没有任何联系...这里的前向算法是自然语言处理领域隐马尔可夫模型第一个基本问题的算法. 前向算法是什么? 这里用一个海藻的例子来描述前向算法是什么.网上有 ...
- Expm 10_2 实现Ford-Fulkerson算法,求出给定图中从源点s到汇点t的最大流,并输出最小割。
package org.xiu68.exp.exp10; import java.util.ArrayDeque; import java.util.ArrayList; import java.ut ...
- (数据科学学习手札09)系统聚类算法Python与R的比较
上一篇笔者以自己编写代码的方式实现了重心法下的系统聚类(又称层次聚类)算法,通过与Scipy和R中各自自带的系统聚类方法进行比较,显然这些权威的快捷方法更为高效,那么本篇就系统地介绍一下Python与 ...
- 算法导论-求(Fibonacci)斐波那契数列算法对比
目录 1.斐波那契数列(Fibonacci)介绍 2.朴素递归算法(Naive recursive algorithm) 3.朴素递归平方算法(Naive recursive squaring) 4 ...
- 压缩感知重构算法之IRLS算法python实现
压缩感知重构算法之OMP算法python实现 压缩感知重构算法之CoSaMP算法python实现 压缩感知重构算法之SP算法python实现 压缩感知重构算法之IHT算法python实现 压缩感知重构 ...
- 压缩感知重构算法之OLS算法python实现
压缩感知重构算法之OMP算法python实现 压缩感知重构算法之CoSaMP算法python实现 压缩感知重构算法之SP算法python实现 压缩感知重构算法之IHT算法python实现 压缩感知重构 ...
- 压缩感知重构算法之CoSaMP算法python实现
压缩感知重构算法之OMP算法python实现 压缩感知重构算法之CoSaMP算法python实现 压缩感知重构算法之SP算法python实现 压缩感知重构算法之IHT算法python实现 压缩感知重构 ...
随机推荐
- 必考算法之 Top K 问题
大家好,这里是<齐姐聊算法>系列之 Top K 问题. Top K 问题是面试中非常常考的算法题. 8 Leetcode 上这两题大同小异,这里以第一题为例. 题意: 给一组词,统计出现频 ...
- java安全编码指南之:堆污染Heap pollution
目录 简介 产生堆污染的例子 更通用的例子 可变参数 简介 什么是堆污染呢?堆污染是指当参数化类型变量引用的对象不是该参数化类型的对象时而发生的. 我们知道在JDK5中,引入了泛型的概念,我们可以在创 ...
- Linux实战(19):Shell交互式read 用法
read 用法有好几种,我在实战过程中用到了 -p,记一笔以防不用忘记了. 实例 #!/bin/bash echo "检测IP是否被占用" while read -p " ...
- Powershell编程基础-002-日期及日期格式化
在Powershell中,关于日期,时间计算与格式化,常用的如下: $today=Get-Date ...
- 原子类的 ABA 问题
原子引用 public class AtomicReferenceDemo { public static void main(String[] args) { User cuzz = new Use ...
- 【性能监控-Perfmon工具】手动添加数据收集器,点击保存时需要输入用户NT AUTHORITY\SYSTEM的密码问题
发现是有的电脑会弹出这种输入用户NT AUTHORITY\SYSTEM密码的现象,有的电脑不会弹出这个对话框.......仍然没搞懂是为什么? 关键是输入windows用户登录时的密码也不对!!压根不 ...
- 【Flutter 实战】大量复杂数据持久化
老孟导读:上一篇文章讲解了 Android 和 iOS 的文件目录系统,此篇文章讲解如何使用 SQLite 保存数据. 欢迎大家投稿:http://laomengit.com/plan/Contrib ...
- python的全局函数
1.Python的全局函数 import builtins dir(builtins) abs # 返回参数的绝对值 可以写成函数:def absnum): if num >=0: retu ...
- throw throws try catch finally return
throw throw 语句用于抛出异常,例如 throw new EOFException(). throws 当使用throw 语句抛出checked 异常后,可以不用捕获异常并处理,而是使用 ...
- vant实现下拉多选组件
1.最近需要做一个移动端多选的功能,发现vant上没有多选的下拉组件,于是决定写一个,样式如下 调用部分传入值 propsselect-data-opts 传入list数据, disabled 下拉是 ...