在大厅的帮助下) - 页 7

 

不幸的是,我不是一个数学家,我不太明白你在这一页的开头写了什么。如果我们谈论我的问题,有一组七个向量,我们需要找到这些向量元素的所有可能组合,总共有256个。

 
有没有人想过,为什么 话题发起人和维塔利 解决这个问题--而且是用所有的选项?
 
我不知道它是用来做什么的。我被要求制定问题的条件,再加上我很好奇如此复杂的问题如何能在GA的帮助下得到解决。
 
Mathemat:
有没有人想过,为什么 "话题 "和 "维塔利 "需要解决这个问题 - 和所有的变体?

我已经考虑过这个问题。而且我已经表示,我不认为有什么实际意义。

vitali_yv:

我不知道为什么TC。我需要它是因为我被要求制定问题的条件,我想知道如何用GA来解决这样一个复杂的问题。

哎呀。而我恰恰相反,认为你才是话题发起人。:[

然后一切都被取消了。我们正在等待这个神秘的创造者,等待这个神秘的不必要的问题。

 
那么,为什么要取消它呢?让我用我的条件为你做一个特别的主题,如果你想解决这个问题,只有当我是TC )
 
vitali_yv:
为什么会被取消?让我用我的条件专门为你创建一个主题,如果你只想解决它,如果我是TC )

不需要建立一个新的分支。已经有一个 阿列克谢的 分支 负责此事。这里列出的问题的所有变体都是用GA解决的。

不过,我还是想听听交通部门负责人的意见。

 
你去了,你被许诺为一座金山。
 
vitali_yv:
我们在这里,他们承诺会有金山银山。
晚上将提出一个解决方案。
 
vitali_yv:
A =  11    12    16    19    23    25    26    27    29    34    37    38    43    46    48    58    59    62    64    73
B =   2     3     7     9    11    16    18    31    32    33    41    42    43    47    53    54    60    61    64    81
C =   7     9    15    22    24    25    27    28    29    34    42    44    46    52    53    64    66    67    68    70
D =   1     5     4    15    18    19    24    32    34    39    42    46    47    48    49    60    61    68    72    77
E =   9    12    19    21    24    27    29    35    43    45    46    55    58    61    64    65    66    68    71    82
F =   6    11    12    22    26    32    42    48    52    54    58    61    64    65    72    83    84    87    94    97
G =   4     9    14    15    19    26    35    37    39    40    45    48    52    53    59    63    67    70    74    76

A + B + C + D + E + F + G = 256

好吧,让我给你一个任务。你不知道变量中的值是否重复,那么我们就说它们是重复的。该问题被简化为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 你说的是什么样的千年?:)

附加的文件:
 
非常有趣,可惜不是所有的选项都可以用。这很难比较。尊重。