我的问题与电信有关,但它仍然是纯粹的编程挑战,因为我使用的是软开关。
目标:
- 创建呼叫路由引擎使用的算法,以使可用链路容量完全饱和,流量以尽可能高的速率出售
情况:
- 有固定容量为 30 个语音通道的通信链路 (E1/T1)(1 个通道 = 最终用户之间的一个语音呼叫,因此每个链路上最多可以有 30 个并发呼叫)
- 链接每月的运行成本是固定的,所以最好是一直充分利用它(固定成本除以更多分钟会产生更高的利润)
- 有用户通过向呼叫路由引擎发送呼叫来“争夺”链路容量
- 每个用户可以在给定时间消耗随机链路容量,有可能一个用户一次占用全部容量(即 peek hours)但在非高峰时段不消耗容量
- 每个用户每分钟的通话率不同
- 理想情况:链路被充分利用(24/7/365),每分钟呼叫率最高的用户拨打电话
可用控制:
- 呼叫路由引擎可以接受呼叫并使用此链接发送或拒绝呼叫
可用数据:
- 当前链接使用情况
- 每分钟用户率
- 每位用户每分钟的最近通话次数
- 用户通话记录(访问成本很高,但可能)
例子:
- 用户 A 的费率为每分钟 1 美分,B 0.8 美分,C 0.7 美分
- 如果用户 A 可以填满链路容量,最好接听用户 A 的来电并拒绝其他人
- 但是用户A通常不能填满整个链路容量,我们需要接听其他人的电话来填补空白
- 我们无法控制用户在给定时刻将发送多少电话,因此很难计划接受哪些电话以及拒绝哪些电话
任何想法或建议的方法来解决这个问题?