C++ 求集的最佳组合的算法

C++ 求集的最佳组合的算法,c++,algorithm,math,recursion,combinations,C++,Algorithm,Math,Recursion,Combinations,假设我有向量到达和向量离开填充了飞机对象,这些对象按照着陆优先级排序(例如,燃油较少的飞机,更多乘客应在燃油较多的飞机之前着陆)或出发(例如,等待时间最长的飞机应首先起飞)。不能降落的飞机将绕跑道(停留在到达方向)飞行,并在每次“转弯”时损失一个单位的燃油.飞机有一个预定的到达或起飞时间,在那个时间他们可以降落或起飞。而且,在这个时间之后,他们将开始失去燃料。所有动作(降落和起飞)都需要1个时间单位 还假设我只有两条跑道,一次只能“处理”两架飞机(着陆/着陆、着陆/起飞、起飞/起飞)。是否有办法

假设我有
向量到达
向量离开
填充了
飞机
对象,这些对象按照着陆优先级排序(例如,燃油较少的
飞机
,更多乘客应在燃油较多的飞机之前着陆)或出发(例如,等待时间最长的飞机应首先起飞)。不能降落的飞机将绕跑道(停留在到达方向)飞行,并在每次“转弯”时损失一个单位的燃油.飞机有一个预定的到达或起飞时间,在那个时间他们可以降落或起飞。而且,在这个时间之后,他们将开始失去燃料。所有动作(降落和起飞)都需要1个时间单位

还假设我只有两条跑道,一次只能“处理”两架飞机(着陆/着陆、着陆/起飞、起飞/起飞)。是否有办法使用编程优化这种情况的统计数据(例如死亡人数、平均等待时间)?换句话说,我需要弄清楚我是否可以起飞,以及有多少架飞机可以起飞而不会造成坠机

我想递归地测试每一种可能的情况,并以某种方式相互测试。有没有类似的算法?也许是回溯

这个程序是C++的,但是任何语言都可以用。谢谢。 编辑

详细示例:


在时间0,我有两架飞机到达,一架带1单位燃油,一架带0单位燃油。但是,我也有两架飞机计划在时间1到达,这两架飞机在时间1将带0单位燃油。在这种情况下,为了“优化”我的统计数据,我需要在时间0降落两架飞机(即使装有1单位燃油的飞机不需要立即到达)以便我可以在时间1降落两架飞机。

提供的信息太少。例如,如何定义“优化”?如何计算“死亡人数”?我将优化定义为最少的死亡人数,最低的平均等待时间。我通过检查燃料单位少于零的飞机来计算死亡人数。我认为你不会试图平衡等待时间和死亡人数,因为生命比延误更重要,对吗?也就是说,一架即将坠毁的飞机会获得优先权呃一架不管延迟时间长短都会延迟的飞机,对吧?没错。但是如果我能够在不造成撞机的情况下离开飞机,我会尽力“优化”我的问题让我在等待答案时能唤起最强烈的理解。如果你想尽量减少死亡人数,那么允许两架飞机同时使用一条跑道并不是一个特别好的主意……或者,也许“一次只能使用两架飞机的两条跑道”并不是真正的意思。。。