解决一个排班问题(建模,算法,java实现)

komecyan 2014-11-23 11:16:41
※排班分三班,早班,晚班,夜班。

工人分“高级”和“新人”

※以31天为一月,医院有16名护士为例。

※平时早班需要6-9人,晚班需要2人,夜班需要2人。早班需要2名以上“高级工人”。晚班,夜班各需要1名以上“高级工人”。

【硬性条件】

每一班(早,晚,夜班)分配的工人数要满足人数要求。

【柔性条件】

1. 尽量不要分配三连班,尽量避免早晚夜,晚夜早,夜早晚班出现。

2. 尽量避免工人连续工作5天以上。(被分配了一天中的任意一班视为当天有工作)。

3. 尽量避免工人连续休息5天以上。(一天中三班均未分配工作任务视为当天休息)。

4. 工人可以提出自己需要特殊休息的时间,排班时要尽量避开。

5. 每个工人被分配的夜班数尽量均衡。计算工人平均的夜班数,求出每个工人夜班数与平均夜班数的差值和,差值和越小为越优。

【目标】

在满足硬性条件的前提下,尽量满足柔性条件,找出最适排班。
...全文
1893 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
komecyan 2014-11-23
  • 打赏
  • 举报
回复
虽说如此,但这题感觉和网上搜的不一样……网上搜的好像是每个人一天内只能一次排班,但这个限制条件是不能三连班(
ghx287524027 2014-11-23
  • 打赏
  • 举报
回复
你百度搜一下,排班的例子很多的
内容概要:本文详细介绍了一个基于Java语言开发的婚纱影楼管理系统的设计与实现,涵盖项目背景、目标意义、面临的挑战及解决方案,并阐述了系统的整体架构与核心功能模块。系统采用三层架构(表示层、业务逻辑层、数据访问层)和模块化设计,实现了客户管理、预约排期、员工排班、库存管理、财务统计、权限控制和数据安全等功能。文章重点描述了预约排期算法实现过程,包括时间冲突检测、优先级排序与列表排序等逻辑,并提供了核心类与方法的Java代码示例,展示了面向对象设计与业务流程落地的具体实践。; 适合人群:具备一定Java编程基础,熟悉Swing/JavaFX或Web开发的初级至中级开发者,以及对管理系统设计感兴趣的学生或软件工程师;适合参与实际项目开发或毕业设计的技术人员。; 使用场景及目标:①学习如何将真实业务需求转化为软件系统设计;②掌握基于Java的三层架构与模块化开发方法;③理解RBAC权限模型、事务管理、数据一致性保障等关键技术的实际应用;④通过预约冲突检测等典型案例提升算法设计与业务建模能力; 阅读建议:建议结合文中提供的类结构与代码示例,动手搭建系统原型,深入理解各层之间的调用关系与数据流转机制,同时可扩展数据库持久化与前端界面以完成完整项目实践。

51,409

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧