像很多人一样,我的待办事项列表中有很多事情。 这就引出了一个明显的问题:如果待办事项列表上有多个任务,你应该先做哪一个?名单上的首要任务式是哪个?最容易做到的是哪个?重要的事情是哪个?或者说你需要使用哪种更复杂的方法来解决它们?

当然,若您有足够的时间来完成任务,一切都会变得轻松。若您没有足够的时间,随之而来的问题是您应该首先解决哪些,以及使用什么策略来优化您的时间?

显然,这在很大程度上取决于您要优化的目标:您是否想完成尽可能多的任务?还是尽可能多地完成高优先级任务?还是尽可能及时的完成任务?

建模工具

蒙特卡洛模拟通过将一系列值(概率分布)替换为具有固有不确定性的任何因素来构建可能结果的模型,从而执行风险分析。 然后它一遍又一遍地计算结果,每次都使用来自概率函数的一组不同的随机值。这就是我们将用来找出在尝试优化待办事项列表时使用的最佳策略的工具。 我们将使用 Python构建蒙特卡罗模拟,在 Jupyter Notebook 上运行。 模拟将测试各种策略,我们将通过我们设计的一组指标来衡量它们的有效性。

模型

我们需要做的第一件事是建立一个模型。这很简单,我们真正需要建模的只是任务。

在大多数待办事项列表中,我们都有任务描述、一些注释和截止日期。 许多还具有附加到任务的优先级。 作为任务建模的一部分,我们还需要指出任务花费的时间以及任务完成的日期。

from recordtype import recordtype# weight is the priority of the task
# duration is how long it will take to complete the task
# due is the due date of the task
# done is the date when the task is completed (starts with 0,
# set to whenever the task is done)
Task = recordtype('Task', 'weight duration due done')

我使用记录类型来表示任务。它就像一种可变的命名元组,并且相对简单。要创建任务记录类型,我们需要有一个函数来创建任务。

任务

create_task 函数采用任务数来创建并返回任务列表。对于每项任务,我需要设置权重、截止日期、持续时间和完成日期(完成)。

import numpy as npdef create_tasks(num): tasks = []distribution = np.round(np.random.exponential(5,10000))for i in range(num):weight = np.random.randint(1,100)due = np.random.choice(distribution)+1duration = np.random.randint(0,due)t = Task(weight=weight, duration=duration, due=due, done=0) tasks.append(t)  return tasks

统计

初次模拟

蒙特卡洛模拟

算法设计

模拟结果示意图

源代码

详情参阅 - 亚图跨际

Python蒙特卡洛模拟工作或任务轻重缓急策略相关推荐

  1. python蒙特卡洛模拟抢红包(附源码),可用于课堂展示(presentation)

    本博客是复现b站毕导视频中描述的模拟论证过程,先上原视频链接(强烈建议先看原视频): 我给自己发了2亿个红包,才发现先抢和后抢差距这么大https://www.bilibili.com/video/B ...

  2. 雪球产品python蒙特卡洛模拟实现产品定价

    首先用蒙特卡洛模拟股票路径(注意要先做正态检验),这个网上资源很多,不再赘述 核心是计算出每支股票路径的雪球收益,核心python代码如下: """计算模拟出的每支股票路 ...

  3. python 蒙特卡洛模拟股价_12 Python总结之蒙特卡洛模拟

    蒙特卡洛模拟 蒙特卡洛模拟是金融学和数值科学中最重要的算法之一.它之所以重要,是因为在期权定价或者风险管理问题上有很强的能力.和其它数值方法相比,蒙特卡洛方法很容易处理高维问题,在这种问题上复杂度和计 ...

  4. python蒙特卡洛模拟_基于Python的21点游戏蒙特卡洛模拟

    问题重述: 大多数赌场使用6副牌或8副牌玩这种游戏,以防止"数牌点",在你的模拟中使用两副牌(共104张).只有2位参与者,你和庄家.游戏开始时每人得到两张牌,对于牌面为2~10的 ...

  5. 使用蒙特卡洛模拟进行var计算

    财务和投资组合风险管理中的VaR? (VaR in Financial and Portfolio Risk Management?) VaR is an acronym of 'Value at R ...

  6. 【Python与数学建模】蒙特卡洛模拟仿真(附完整详细代码)

    [Python与数学建模]蒙特卡洛模拟&仿真 零.前言 引例:投针实验 试验描述: 试验分析: 代码实现 蒙特卡洛模拟&仿真的基本介绍 应用实例 实例一.三门问题 问题描述 问题分析与 ...

  7. Python中表示偶数_蒙特卡洛模拟(Python)深入教程

    译者:大表哥.wiige来源:AI研习社 什么是蒙特卡罗模拟? 蒙特卡罗方法是一种使用随机数和概率来解决复杂问题的技术.蒙特卡罗模拟或概率模拟是一种技术,用于了解金融部门.项目管理.成本和其他预测机器 ...

  8. python 蒙特卡罗_蒙特卡洛模拟(Python)深入教程

    原标题:蒙特卡洛模拟(Python)深入教程 字幕组双语原文:蒙特卡洛模拟(Python)深入教程 英语原文:Monte Carlo Simulation An In-depth Tutorial w ...

  9. Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模拟进行股价预测

    全文下载链接:http://tecdat.cn/?p=20678 在本文中,预测股价已经受到了投资者,政府,企业和学者广泛的关注.然而,数据的非线性和非平稳性使得开发预测模型成为一项复杂而具有挑战性的 ...

最新文章

  1. 【NOIP 模拟赛】钟 模拟+链表
  2. #10003. 「一本通 1.1 例 4」加工生产调度(贪心)
  3. 前端绘制绘制图表_绘制我的文学风景
  4. valgrind检测libevent内存泄露
  5. 如何将maven项目打包成可执行的jar
  6. hive hql文档_大数据学习路线分享hive的运行方式
  7. Linux中关机与重启命令
  8. 42. Understand the two meanings of typename.
  9. mac安装helm工具_适用于初学者的基本 kubectl 和 Helm 命令
  10. 根据卡号识别银行卡类型
  11. 客户管理软件系统源码
  12. 最全面的web程序设计知识点总结
  13. Android Studio Menu item 的简单使用
  14. ROG手机张舜翔:把游戏体验感当成游戏手机的重要支柱
  15. [机缘参悟-13]:菩提心,一切“利他”之心
  16. Elasticsearch:理解 Elasticsearch 中的 Percolator 数据类型及 Percolate 查询
  17. java:程序包XXX不存在
  18. Beyond Compare解决java文件对比中文乱码问题
  19. 行泊一体方案「换道超车」,TOP10本土供应商领跑新赛道
  20. python 火车票订票系统(12306)

热门文章

  1. 计算机组成原理——期末复习题
  2. 【虹科分享】数字化仪的示波器功能(1)——数字化仪哪些特性能够代替示波器?
  3. Editplus配置
  4. 基于51单片机的停车场车位管理系统
  5. 对接腾讯云及时通讯总结
  6. 无代码资讯|SAP发布低代码平台;钉钉低代码应用数破500万;轻流举办无代码城市论坛......
  7. Vue 前端数据大屏 适配
  8. 论文《Efficient palette-based decomposition and recoloring of images via RGBXY-space geometry》笔记
  9. 电信IPTV直播源抓取
  10. Google Chrome 旧版本下载地址