A = 1112161923252627293437384346485859626473
B = 237911161831323341424347535460616481
C = 79152224252728293442444652536466676870
D = 1541518192432343942464748496061687277
E = 912192124272935434546555861646566687182
F = 611122226324248525458616465728384879497
G = 49141519263537394045485253596367707476
A + B + C + D + E + F + G = 256
不幸的是,我不是一个数学家,我不太明白你在这一页的开头写了什么。如果我们谈论我的问题,有一组七个向量,我们需要找到这些向量元素的所有可能组合,总共有256个。
有没有人想过,为什么 "话题 "和 "维塔利 "需要解决这个问题 - 和所有的变体?
我已经考虑过这个问题。而且我已经表示,我不认为有什么实际意义。
vitali_yv:
我不知道为什么TC。我需要它是因为我被要求制定问题的条件,我想知道如何用GA来解决这样一个复杂的问题。
哎呀。而我恰恰相反,认为你才是话题发起人。:[
然后一切都被取消了。我们正在等待这个神秘的创造者,等待这个神秘的不必要的问题。
为什么会被取消?让我用我的条件专门为你创建一个主题,如果你只想解决它,如果我是TC )
不需要建立一个新的分支。已经有一个 阿列克谢的 分支 负责此事。这里列出的问题的所有变体都是用GA解决的。
不过,我还是想听听交通部门负责人的意见。
我们在这里,他们承诺会有金山银山。
好吧,让我给你一个任务。你不知道变量中的值是否重复,那么我们就说它们是重复的。该问题被简化为7个变量,20个变体。
好了,问题解决了。其中一个解决方案是这样的。
64+11+9+24+24+72+52=256
承诺的解决这个问题和其他类似问题的源代码附后。
只有一个小细节。该算法是为那些变量严格唯一,并且在表达式中不允许其排列组合的问题而开发的,例如对于此类函数。
f(x,y)=x*x+y。
很明显,x和y的值不能互换,否则函数的值会改变。这就是为什么只有以下类型的染色体被认为是绝对相同的原因
3,9,8,7,4,5,3 и 3,9,8,7,4,5,3.如果对3,9,8,7,4,5,3和3,8,9,7,4,5,3类型的染色体进行比较,它们被认为是完全不同的染色体。
因此,我的算法并不适合于寻找上述类型问题的所有解决方案,其中 "重新安排加数的位置不会改变总和"。
由于这个原因,在算法的一次运行后,有可能只得到一个解决方案的变体,而不是所有的。我在上面给出的解决方案之一。
为了使算法适用于这种类型的问题,你应该引入可选择的规则 "当重新排列加数的位置时,总和不会改变",并将3,9,8,7,4,5,3和3,8,9,7,4,5,3这样的染色体视为重复。
源代码是用MQL5 编写的。
PS 你说的是什么样的千年?:)