Business Process Optimization Competition ‘25Python

S盒+异或+循环密钥:Windows PE查表逆向实战详解 阅读详情

Java Python Business Process Optimization Competition ‘25

Overview

The goal of the competition is to build efficient planning and scheduling mechanisms for an artificial hospital. To do this, the competitors implement:

1. A ‘plan’ policy function that assigns patients to the moment in time at which they will be admitted to the hospital for treatment.

2. A ‘schedule’ policy function that schedules how many resources of different types (e.g. operating rooms, hospital beds, ...) are available at which time.

The objective is to create these functions in such a way that they both minimize the cost of running the hospital and the (cycle) time it takes to treat the patients. For both cost and cycle time it holds that ‘lower is better’. The tradeoff lies therein that having more resources available reduces the cycle time of patients, but at the same time increases the cost of having the resources.

Different types of patients have to be treated in the hospital. Patients will go through a treatment process that roughly follows the steps illustrated in Figure 1. The figure illustrates that, once admitted, patients have an intake interview. After that they go to surgery and then to a nursing ward. Complications of their surgery may arise, upon which they need to go back into surgery. However, note that the figure is incomplete. To understand in detail which types of patients there are, which process steps they go through, and which resources are needed in which step, you will need to do process mining yourself.

Figure 1. Treatment Process.

Competition

Competitors implement two policy functions in Python: ‘plan’ and ‘schedule’.

The quick way to get started is to use the example planner that is provided with the competition code (__example__.py). The example runs out-of-the-box and contains example implementations of both policy functions that are relatively easy to understand and contain some useful pointers for how you can proceed.

The ‘plan’ policy function is invoked each time a resource or patient becomes available. It is given three parameters. The first is the list of patients who have not yet been planned for admission to the hospital. The second is the list of patients that have been planned, but can still be replanned, because they have not yet been admitted. The third is the current simulation time. You implement the function such that it returns a list of patients and the time at which to admit them. Not each patient has to be planned at the moment the ‘plan’ function is invoked. If a patient is not in your result list, it will simply be in the list of patients to plan again next time the function is invoked. Patients must be planned for a timeslot 24 hours before their admittance. This means that if you try to plan a patient for admittance at a moment in time that is less than 24 hours ahead, you will receive an error. For example, if the plan policy function is invoked with a list of patient identifiers [100, 101, 102] and a time t, it could return a list of tuples [(100, t+24), (101, t+168)], meaning that patient 100 will be admitted tomorrow at the same time, patient 101 will be admitted next week at the same time, and the planning of patient 102 is postponed till the next time the plan function is invoked. Returning [(100, t+23)] would raise an exception, because then patient 100 is planned less than 24 hours ahead.

The ‘schedule’ policy function is invoked each day at 18:00 (in simulation time) and can be used to schedule how many resources of which type should be available at which (future) moment in time. The function must return a list of tuples (<type>, <time>, <number>). Each tuple should contain:

- A resource type.

- The number of resources of that type that should be available.

- The moment in (simulation) time from which that number of resources should be available.

Note that a week has 168 hours and the simulation starts at t=0, which is Monday 2018-01-01 00:00. There is a maximum number of resources of each type that is available. For example, there are at most 5 operating rooms available. Your schedule must observe the following constraints:

1. You must schedule for tomorrow 8:00 or later (i.e. at least 14 hours ahead, considering that scheduling is done each day at 18:00).

2. You must not schedule more resources than the maximum number of resources of a type.

3. If you are scheduling less than one week ahead on the same day (i.e., less than 158 hours ahead), you can only increase - not decrease - the number of resources.

For example, if your schedule function is invoked at time t=18, you could return [(“OR”, t+14, 5), (“OR”, t+158, 3)]. Note that t=18 is 18:00 on Monday 1 January 2018. This is the first moment in time at which the schedule function will be invoked. The returned answer means that from t+14, i.e. from 8:00 on Tuesday 2 January, 5 operating rooms will be available. This will continue to be the case until t+158, i.e. 8:00 on Monday 8 January, from which moment only 3 operating rooms will be available. This number of operating rooms will continue to be available indefinitely, but at the next invocation of the schedule function you can change that.

The next invocation of the planning function is at time t=42, or Tuesday 2 January 2018 at 18:00. Suppose that at this time we return [(“OR”, t+2, 5), (“OR”, t+14, 6), (“OR”, t+38, 3)]. This will return errors for multiple reasons:

1. We are scheduling for t+2, which is not allowed because it is less than 14 hours ahead.

2. We are scheduling 6 operating rooms for t+14, which is not allowed, because the maximum number of operating rooms available is 5.

3. We are scheduling 3 resources for t+38, i.e. on Thursday 4 January at 8:00, but note that this is less than a week ahead, meaning we cannot decrease the number of resources to 3, from the 5 that we originally planned to be available on Thursday when we planned (“OR”, t+14, 5) during the scheduling function invocation at dai 写Business Process Optimization Competition ‘25Python t=18.

Evaluation

Each solution is scored according to 4 KPIs:

- Waiting time for admission (WTA)

- Waiting time in hospital (WTH)

- Nervousness (NERV)

- Personnel cost (COST)

The waiting time for admission is the total time patients have to wait from the moment they arrive in the process until the moment they start their intake starts. Note that patients who never receive their intake will still add to this number.

The waiting time in the hospital is the sum of waiting times for each task. This does not include the waiting times of the emergency room patients, since you have no control over them.

Nervousness scores replannings, because replannings are undesirable to a patient. Each time replanning takes place, the score is increased by how much less than 14 days before the original planning point the patient is replanned (because replanning on short notice is undesirable). Note that patients which have not been taken in by the end of the simulation lead to a penalty. More precisely, the nervousness is calculated as max((168*2-(tp-tr)),0) where tr is the time at which the replanning takes place and tp is the originally planned time of the intake (i.e., the time for which the patient was scheduled before replanning took place). Therefore, the penalty for replanning is 0 if the replanning takes place more than 2 weeks (168*2) in advance and increases the closer the (originally planned) intake would have taken place.

The personnel cost is the total cost of personnel. Personnel costs 1 per hour you scheduled them to work. However, if they are planned less than one week ahead, they will cost 2, and overtime (a person still needs to finish a task when actually scheduled to go home) costs 3. Note that overtime cannot be completely avoided: it is common that personnel still needs to finish a task (e.g., a surgery) when they actually want to go home.

To compare submissions for the competition, each KPI will be normalized using the formula <your_value>/(<best_value> - <worst_value>). KPIs will then be weighed, but personnel cost counts 3x where the other KPIs count 1 time, because employing extra personnel can be used to improve all of the other KPIs. So the formula for computing the final score is:

(normalized(WTA) + normalized(WTH) + normalized(NERV) + 3*normalized(COST))/6

Technical Details

You can run the simulator using:

problem = HealthcareProblem()

simulator = Simulator(your_planner, problem)

result = simulator.run(365*24)

In this code your_planner is an instance of a class that you implement yourself. This class must subclass planners.Planner and implement the following function.

def plan(self, cases_to_plan, cases_to_replan, simulation_time):

Takes a list of case identifiers of patients that can be planned, a list of case identifiers of patients that have already been planned, but can still be replanned, and the current simulation time. Returns a list of tuples (<case identifier>, <time>), representing the moment in time at which the case the given case identifier will be admitted to the hospital

def schedule(self, simulation_time):

Takes the current simulation time. Returns a list of triples (<type>, <time>, <number>) indicating how many resources of which type should be available from which moment in time.

def report(self, case_id, element, timestamp, resource, lifecycle_state, data=None):

A function that you can use to collect information from the simulator. It is called each time one of the following happens: a new case arrives, a task becomes ready to perform, performing a task started, performing a task completed, a case completes. The simulator does not expect any return value. This function is just there for you to collect data on what is happening in the process, so you can also have it do nothing.

There are three ready-made reporters that you can use for your convenience in the reporter.py library. One simply prints each event to the standard output, one exports them as an event log that can be analyzed using your favorite process mining tool, and one aggregated information on resource usage which be visualized in the form. of a graph after the simulation ends.

An example planner is implemented in the __example__.py file for your reference.

Important Notes

It is explicitly forbidden to use any variables that you did not create yourself, based on information that you obtained via the plan, schedule, or report functions. Doing so will lead to a desk rejection of the submission.

Your code must simulate one year (365*24 hours) of cases within 2 hours on a typical desktop computer. Code that takes longer to run will be rejected.

By default, the simulator always simulates a year (365*24 hours) of cases. However, this may take quite long, which may be prohibitive when you are coding or debugging. For that reason, you can also pass the number of hours you want to simulate to the run method.

Submission

Submit your solution by 15 August 2025 by e-mail to: [email protected] Send in your submission as a single .zip file that includes:

1. Your code in Python. This can contain multiple files. Make sure there is one file that ends with:

problem = HealthcareProblem()

simulator = Simulator(your_planner, problem)

result = simulator.run(365*24)

This is the file from which we will call your code to evaluate your solution.

2. A .pdf file with a brief description (max. 1 A4) of the main technique or techniques that you used for planning.

3. A .txt file with the names, affiliations, and e-mail addresses of the people who make the submission.

Evaluation process

Your solution will be checked between 16 August and 31 August 2025. The winner will be announced at the BPM 2025 conference         

Stm32L0 STM32CUBE中UART和使用LPUART1以及串口不进中断问题解决 /* 开启串口1中断 */ LL_USART_EnableIT_RXNE(LPUART1); /* 开启串口2中断 */ LL_USART_EnableIT_RXNE(USART2); 阅读详情

相关推荐

05 从零搭建 GPT 模型:LayerNorm、GELU 与解码器堆叠

本文介绍从零搭建GPT模型的关键组件:LayerNorm对特征维归一化,GELU平滑激活,前馈网络扩展收缩,残差连接缓解梯度消失。随后组装TransformerBlock(多头注意力+前馈,Pre-LN),最终构建GPTModel并实现文本生成,附参数量核算。

元直的博客 597

(五)(五)(五)(五)(五)

本节课我们一起学习了如何以团队形式构建机器学习产品。首先,我们探讨了机器学习中的各种角色,认识到生产级机器学习本质上是跨学科的,需要多种技能组合。由于人才稀缺,招聘时需要明确具体需求,而作为外部人员,通过项目展示能力是进入该领域的好方法。其次,我们分析了机器学习团队在组织中的不同结构模式,从临时型到机器学习优先型,并了解了团队如何变得更加独立和跨学科。接着,我们讨论了管理机器学习团队和项目的挑战。虽然没有银弹,但概率性项目规划有助于缓解时间估计的困难。最后,我们深入探讨了机器学习产品设计。

龙哥盟 32

Python Class 参数传递完全指南

Python Class 参数传递完全指南:1.1 实例方法(最常用)1.2 类方法(@classmethod)1.3 静态方法(@staticmethod)2. 嵌套函数(def 内嵌 def)的 4 种传参方式2.1 闭包捕获(读取外层)2.2 显式传递(推荐用于灵活传参)2.3 nonlocal 修改外层2.4 使用 self 传递(共享状态)3. 继承中的参数传递(super())4. 灵活传参:*args 与 **kwargs5. 嵌套层级过深时的最佳实践(工程建议)

m0_54652313的博客 30

妈祖文化数字导览系统设计与实现

随着数字文旅行业快速发展,传统文旅景区的线下导览模式已经难以满足当代游客多元化的游览需求。湄洲岛作为妈祖文化的发源地,拥有妈祖祖庙、妈祖文化园、平安塔、海祭广场、文化展馆等大量特色文旅资源,景区景点分散、文化典故厚重,游客普遍存在景点查找困难、历史文化了解不足、游玩路线规划迷茫等现实问题。本文设计并实现一套妈祖文化数字导览系统。

suny8的专栏 184

从零构建Python物体检测模型:基于YOLOv8的完整训练指南

物体检测是计算机视觉领域的核心技术之一,其核心目标是在图像或视频中精准定位并识别目标物体。相较于传统的图像分类(仅判断图像类别)

2601_96229599的博客 232

Agent 记忆压缩通常有哪些方法?

在传统软件中,状态可以通过关系型数据库做毫秒级精准存取;而在 AI Agent 架构中,大模型本身是无状态的概率推理引擎。为了维持多轮交互的连续性,开发者必须将历史记忆注入到上下文(Context)中。上下文爆炸与成本失控:多轮对话与工具调用轨迹(Tool Traces)包含海量冗余 Token,每次 API 请求都需要对全量历史重复计费,成本呈二次方上升。推理延迟(Latency)恶化:超长上下文会导致 GPU 在 Prefill 阶段的计算耗时大幅拉长,严重破坏实时交互体验。

2603_96126046的博客 314

详解 vLLM 开源模型部署全流程

太多团队在部署开源大模型时踩过坑:单卡跑不满吞吐量、多请求排队延迟爆炸、硬件资源利用率不足30%、不同框架适配反复折腾。而vLLM凭借PagedAttention核心设计,已经成为当前工业界部署开源LLM的首选方案,能在几乎不改动业务代码的前提下,把GPU利用率和推理吞吐量提升数倍。今天就从环境准备、基础部署、性能调优到生产级落地,把整套经过线上验证的部署方案完整拆解出来。

nblway的博客 341

22-DataCenter报文序列化

(put在循环后),解析侧遇到时continue不影响store循环——顺序无关但习惯上收尾。

yuhou25的博客 233

可以做年龄编辑的gan对抗网络(SAGAN)

把这 10 张(或更多年龄段)图片按顺序拼接,用 OpenCV 或 FFmpeg 导出为 MP4,就能看到“一个人”的年龄变化过程。:模型只学了 10 个离散年龄段(0~9),直接切换标签会导致五官突然“跳变”,无法生成 18岁→18.5岁 这种细腻变化。如果连续年龄回归,会更加的丝滑,接下来我们将修改一版连续年龄回归的代码,还是在这个的基础之上进行!,比如用预训练的 ArcFace 提取人脸特征,约束不同年龄帧的特征向量尽量接近。,会生成固定噪声下不同年龄的人脸图片,实现“编辑年龄”的效果。

有的话没说出来之前,你是他的主人,一旦说出来你就成了他的奴隶||想要干好事,别太把自己当人,别把别人太不当人||认识这个人就是开了一扇窗户,就能看到不一样的东西,听到不一样的声音,能让你思考、觉悟,这已经够了 226

基于Python的爱奇艺视频数据可视化分析系统

长视频平台剧集、评分、热度与评论数据体量大、维度多,手工汇总难以快速把握类型结构、口碑分布与主演导演影响力。系统采用 B/S 架构,后端入口为app.py,运行端口8060;数据库使用 MySQL(库名iqiyi),经 PyMySQL 访问。前台基于 Bootstrap 5、本地中的 ECharts 5 与 echarts-wordcloud,配合主题。业务表包括usersdramascommentsfavorites。数据可通过导入,或经/ 相关脚本补充样本。分析层在。

qq_35928134的博客 243

2026科学实验能力大赛真题:护林飞行闯关解析

2026 首届全国青少年科学实验能力大赛决赛已于 8 月 20—22 日在济南收官,9 月起各赛区成绩陆续公布。这场白名单赛事鼓励青少年用"做中学"的方式呈现科学探究过程,而图形化编程正是把科普内容变成可交互作品的好工具。今天我们用一道原创项目题「护林飞行闯关」,带大家用 Scratch 做一个科普护林小游戏,把六大考点串成能玩的作品。

IT_Scratch的博客 213

Java深入解析篇二十之JavaStream API详解

Stream(流)是引入的数据处理抽象,位于包。它表示从数据源产生的元素序列,并支持对其进行函数式、聚合式操作。不是集合:流不存储数据,只描述对数据的计算;不是 IO 流:与无关;惰性管道:中间操作只是登记,终端操作才触发实际计算。// 命令式写法(对照) // List<String> r = new ArrayList<>();

萧瑟余晖的博客 350

whisper如何打包使用

Whisper作为一款强大的离线语音识别工具,能够在无网络环境下提供快速、准确的语音转文字服务。对于开发者而言,了解如何将Whisper打包并集成到自己的项目中至关重要。

2601_96210038的博客 66

Django的手机数据分析与可视化

Django的手机数据分析与可视化系统 摘 要 本系统基于Django框架、HTML和MySQL数据库技术,构建了一个全面的手机数据分析与可视化平台。大屏内容丰富,包括品牌市场份额分布、手机价格区间分布、各维度评分分布、热门机型Top10、内存容量分布以及品牌评分与价格分析等多个模块。通过这些模块,用户可以直观地了解手机市场的整体趋势、各品牌的市场表现、手机价格分布情况、用户评分分布以及热门机型的详细信息。系统采用了先进的可视化技术,将复杂的数据以图表的形式呈现,使得数据更加易于理解和分析。 在管理功能方

weixin_41915110的博客 791

Pixhawk 6C — Mission Planner 烧录 & 全套校准教程

适用于自行编译的 ArduPilot 固件。

2301_76633800的博客 305

Python 并发编程】线程、进程、协程、同步/异步一次说清

同步是"等结果",异步是"结果来找我";异步的核心收益是等待期间能干别的活。进程开销大但真并行,线程轻量但被 GIL 限制,协程极轻量但只适合 IO 等待。IO 密集:并发量小用线程池,量大用 asyncio;CPU 密集:用进程池。这一条能解决 90% 的选型问题。多线程的坑在共享变量加锁异常被吞;多进程的坑在 if __name__ == '__main__'保护和序列化成本;协程的坑在误用同步阻塞调用卡死整个事件循环。

zy123456nn的博客 338

《模型不玄学》前言 - 小白的模型算法实战手册

这是一本给算法小白的算法模型实战手册。能够深入浅出的理解如何利用数据训练一个成熟的模型。这本小册子想做的,就是把“从数据到能用的模型”这个过程,用讲透。

月华的博客 194

03Numpy基础(中)

参数解释:第一个参数是要分裂的向量,第二个参数是分裂的起始位置和终止位置,第三个参数是轴。上述代码中输出结果并不为整数型,而是浮点型,笔者猜测这是为了避免插入的浮点数被截断。上述代码中,切片结果改变,原数组也会发生改变,这样就不会造成大量内存的浪费。形式:arr[0:1,0:1] arr[::2,::1]=0指的是设置按照哪个轴(方向)进行拼接,一般默认是轴0。两个矩阵可以按照不同的维度拼接,但拼接的时候。此外,提取列的时候出来的结果是列向量。矩阵的分裂依旧要设定分裂的维度。向量的分裂:将得到更短的向量。

qq_64775230的博客 209

GLM-5.3-NVFP4 部署实战系列[四]问题深拆①:sm80 没有稀疏 MLA 注意力后端怎么办

GLM-5.3 的 DSA 稀疏注意力在 A800 上无路可走:vLLM v0.28.0 的稀疏 MLA 后端全部要求 SM90+。修通路径:移植社区 PR #47629,vendor 三个文件加两处注册,连环修掉 metadata 计数断言等小坑。最大的坑:0.28.0 把 indexer 重写为 C++ op,内部直调仅支持 SM90+ 的 deep_gemm——采用最小化改法:调用点门控回退 Triton 内核(LUT 解码 fp8),sm90+ 路径零影响。

缘友一世的博客 341

OpenAI Error: 403 Country, region, or territory not supported [Python]

从OpenAI的API服务中获取数据时,由于你所在的国家、地区或领土不被支持,因此请求被拒绝了

suiusoar 5366

奇迹加解密客户端

可以查看奇迹客户端的ozt、OZJ等文件

上一篇: Introduction to Structured Finance Spring 2025 #1Python
下一篇: MSc International Business Management
WX: 99515681
博客等级 码龄2年 324粉丝 67原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值