【问题标题】:How to think about a schedule-building script (general thought process)如何考虑制定时间表的脚本(一般思维过程)
【发布时间】:2022-11-25 20:14:44
【问题描述】:

我遇到了这个一直困扰着我的问题。 我正在尝试编写一个 Python 脚本来构建库存计划。

我设法根据截止日期提出日期,并且我还设法将提议的日期移至最近的“合法”日期,以防原定日期恰逢周末、计划的年度代码冻结等......

我有更多的条件,我正在努力实施这些条件。 我尝试将 while 循环与 ifs 结合使用,但在我的案例中却无济于事。

我是一个自学成才的 Pythoner,到目前为止一直主要使用 Pandas 进行分析,这就是我可能为此苦苦挣扎的原因。 ** 我不是在寻找免费的代码服务**,但如果有人能告诉我如何首先考虑这个问题,我会欣喜若狂。

理想情况下,算法附带的日期是:

  1. 在每个位置的给定截止日期之前
  2. 同一天发生的计数不超过 n 我可以手动交换最后一个,但是:
  3. 同一地区没有同一日期的位置
    Area Location Deadline Proposed
    A A1 14 Apr 01 Apr
    B B3 14 Apr 01 Apr
    A A2 14 Apr 03 Apr

    在正确的方向或半行伪代码的任何一点点推动都会有很大的帮助。

    非常感谢那些在阅读本文后还没有进入 Picard 式面部表情的人。

【问题讨论】:

    标签: python schedule


    【解决方案1】:

    我认为你需要从伪代码开始。

    像这样:

    For entry in your data.
       Propose an initial date (eg: deadline -1)
       Check if another location from the same area happens that day
         Yes?  Decrement 1 to the proposed day and check again
         No?  Check the next condition
      Check that if more than n counts happen on this date
         Yes?  Decrement 1 to the proposed day and check again both conditions
         No?  Set the date for that entry.
    

    如何进行检查将取决于您决定如何存储数据。我建议可能使用字典,但也许您可能需要创建自己的类和数据结构。

    当然,这是一个简单的算法,可能无法适合所有日期,但您可以从中着手。然后,如果您发现这还不够,您可以尝试添加一些东西,例如对您的条目进行排序,因此首先设置最严格的,最后设置更灵活的。

    理想情况下,它应该实现为一棵树,您可以在其中探索分支,一旦卡住就可以回溯,因此您最终会找到一条路径,使所有条目都有解决方案。然而,树可能会长得太多而无法计算,因此您需要一些启发式方法来先探索一些分支。但这可能会变得太复杂,所以也许对于您的问题,像我提出的那样的更简单的算法就足够了

    【讨论】:

      猜你喜欢
      • 2011-08-28
      • 1970-01-01
      • 2014-02-12
      • 1970-01-01
      • 2019-04-10
      • 2021-03-15
      • 2016-10-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多