私は問題があります。NP困難な問題だと思いますが、よくわかりません。まず、スペースについて説明します。
次に、イベントがあると仮定して、a,b,c,d,e,f
これらのイベントから生成された 3 つの長さの順序付けられたシーケンスのすべての可能性を検討します。お気に入り、
list1: ['a','b','c']
list2: ['a','b','d']
list3: ['a','b','e']
....
....
list120: ....
順序はシーケンスにとって重要であるため、合計 120 の 3 長のシーケンス (6 つのイベントの順列) があります。さらに、これらの 3 つの長さのシーケンスはすべて、0 と 1 の間の独自の値になります。
ここで、長さ 6 のシーケンスを考えてみましょう。
seq = ['a','b','c','d','e','f']
の値は、 のseq
3 つの長さのシーケンスをすべて合計して決定できますseq
。
からの 3 つの長さのシーケンスはすべて、順序を変更せずにseq
から任意の 3 つのイベントを取得することで見つけることができます。seq
それらのいくつかの例;
seq1: ['a','b','c']
seq2: ['a','b','d']
seq3: ['a','b','e']
seq4: ['a','b','f']
....
....
seq20: ['d','e','f']
質問は;
考えられるすべての 6 長のシーケンスの中で最小 (または最大) の値を持つ6 長のシーケンスを見つける必要があります。ご想像のとおり、これは単純な例にすぎません。20 ~ 100 のイベントがある最大のスペースで作業する必要があります。したがって、6 つの長さのシーケンス スペースをすべて生成することは解決策ではありません。
最小 (または最大) を見つけるのは本当に難しいことを知っているので、値が最小 (または最大) に近いシーケンスを見つけることも許容される場合があります。Pythonで実装できるアルゴリズムまたは方法を提案していただければ幸いです。
ありがとう、