首页 > 编程语言 >投资分配问题 python

投资分配问题 python

时间:2022-11-10 11:48:35浏览次数:58  
标签:60 python 问题 65 np 分配 dp 85

最近在研究最优化问题时,发现了这篇文章对求解过程写的比较清楚 投资分配问题_动态规划 - 你的雷哥 - 博客园 (cnblogs.com)  

以该问题为模型,写了一段 python 代码。

问题提出:

求解流程: 

 

 

 

 

针对该问题及求解思路,用 python 编写如下代码:

import numpy as np

g = np.array([
    [0, 20, 50, 65, 80, 85, 85],
    [0, 20, 40, 50, 55, 60, 65],
    [0, 25, 60, 85, 100, 110, 115],
    [0, 25, 40, 50, 60, 65, 70]
])


def opt(g):
    m = g.shape[0]  # 工厂数
    n = g.shape[1]  # 投资数
    dp = np.zeros([m, n, m])  # 各阶段最优策略
    f = np.zeros([m, n])
    f[0] = g[0]
    dp[0, :, 0] = np.arange(n)
    for k in range(1, m):
        for i in range(n):
            b = np.zeros(n)
            for j in range(i):
                b[j] = g[k, j] + f[k - 1, i - j]
            f[k, i] = np.max(b)
            dp[k, i] = dp[k - 1, i - np.argmax(b)]
            dp[k, i, k] = np.argmax(b)  # j
    return f[-1, -1], dp[m - 1, n - 1]

print(opt(g))

 

标签:60,python,问题,65,np,分配,dp,85
From: https://www.cnblogs.com/yhebai/p/16876417.html

相关文章

  • 记一次多个Java Agent同时使用的类增强冲突问题及分析
    摘要:JavaAgent技术常被用于加载class文件之前进行拦截并修改字节码,以实现对Java应用的无侵入式增强。本文分享自华为云社区《记一次多个JavaAgent同时使用的类增强冲突问......
  • node -v显示信息 npm -v 不显示信息问题解决
    两个方法:第一个,1.将打开nodejs文件夹(如果你是安装到D盘,就打开D盘!就是nodejs文件所在目录)2.分别右击该文件,点击列表属性,选择安全,编辑,勾选写入,应用,确定。(目的是为了一会要......
  • 紧急模式(emergency mode)问题处理方法
    问题现象Linux系统启动时进入紧急模式,提示:Welcometoemergencymode,如图1所示,并提示输入root密码进入维护。图1 紧急模式根因分析紧急模式提供尽可能最小的环境,即......
  • ext4 几个问题
     1个文件对于一个inode?1个大文件inode如何与块联系起来?文件名与inode的关系,怎么联系起来。   1个大文件inode如何与块联系起来?========================......
  • 拓端tecdat:Python 贝叶斯概率推断序列数据概率和先验、似然和后验图可视化
    在这篇文章中,我将集中讨论一个给定一个短数据序列的推断概率的例子。我将首先介绍如何用​​贝叶斯​​方法进行期望推理的理论,然后在 ​​Python​​ 中实现该理论,以便我......
  • win10下双击py文件无反应,cmd命令行敲python跳转至应用商店
    原因python安装目录没有添加至环境变量解决办法将python安装目录添加至系统环境变量PATH中"我的电脑"--->"属性"--->"高级"--->"环境变量"--->"系统变量"--->"PATH"......
  • iOS上架ipa上传问题那些事
     总结一下自己的经验,如有错误请留言,尽快修改。先说一下IOSAPP上架的几个步骤(详细步骤见下图):创建证书申请文件登录Apple开发者中心以生成发行者证书(双击以下载)设......
  • 11_性能调优_如何调优_性能问题_跟踪问题_SQL规划
    一、如何性能调优1、设置性能预期可以接受的查询时间,每分钟的查询数等等;基准线(Benchmarks) 2、了解当前系统的基本的硬件性能I/O:磁盘吞吐量,容量、CUP、内存、网络; ......
  • 图嵌入概述:节点、边和图嵌入方法及Python实现
    近年来基于图的机器学习有了很大的发展。基于图的方法在数据科学中的许多常见问题中都有应用,例如链接预测、社群发现、节点分类等。根据如何组织问题和所拥有的数据,有许多......
  • Windows下MySQL安装主要步骤和过程中出现的一些问题
    最近公司的系统要迁移服务器,记录一下新服务器中MySQL安装的过程。 0、最开始的安装选项我选了”custom“,因为这个选项可以选择安装地址,其他的好像选不了,然后只选择......