アルゴリズム最適化選手権。 - ページ 98

 
Andrey F. Zelinsky:
フォーラムにモデレーターはいますか?
なんでそんな大声出すんだ...痛みか何かですか?出て行け
 
Andrey Dik:
もちろん、そうでなければなりません。もし、皆さんから機能提案がなければ、最終版のコードを掲載して、選手権の第2 段階に進みたいと思います。
皆さんの事例を拝見して、私なりの機能提案をさせていただくかもしれません。それが正当とされるなら...)
 
Реter Konow:
あなたの例を見て、私なりの機能のバリエーションを提案できるかもしれません。それが正当とされるなら...)

ええ、もちろん、問題ありません。

pow(cos(0.2e1 * 0.3141592654e1 * x2 * x2) + cos(0.1884955592e1 * y2) - 0.11e2, 0.2e1) + pow(cos(0.1256637062e1 * x2) + cos(0.2e1 * 0.3141592654e1 * y2 * y2) - 0.7e1, 0.2e1)

и

0.3e1 * (double) (int) pow((double) (1 - x3), (double) 2) * exp((double) (-x3 * x3 - (int) pow((double) (y3 + 1)), (double) 2))- 0.10e2 * (0.2e0 * (double) x3 - (double) (int) pow((double) x3, (double) 3) - (double) (int) pow((double) y3, (double) 5))* exp((double) (-x3 * x3 - y3 * y3))- exp((double) (-(int) pow((double) (x3 + 1), (double) 2) - y3 * y3)) / 0.3e1;

f(x1,x2)のような関数の例を2つ紹介します。

 
Andrey Dik:

ええ、もちろん、問題ありません。

pow(cos(0.2e1 * 0.3141592654e1 * x2 * x2) + cos(0.1884955592e1 * y2) - 0.11e2, 0.2e1) + pow(cos(0.1256637062e1 * x2) + cos(0.2e1 * 0.3141592654e1 * y2 * y2) - 0.7e1, 0.2e1)

и

0.3e1 * (double) (int) pow((double) (1 - x3), (double) 2) * exp((double) (-x3 * x3 - (int) pow((double) (y3 + 1)), (double) 2))- 0.10e2 * (0.2e0 * (double) x3 - (double) (int) pow((double) x3, (double) 3) - (double) (int) pow((double) y3, (double) 5))* exp((double) (-x3 * x3 - y3 * y3))- exp((double) (-(int) pow((double) (x3 + 1), (double) 2) - y3 * y3)) / 0.3e1;

f(x1, x2)という形の関数の例を2つ紹介します。

関数の書き方に不連続性が見られるが...。

正しい形式は、fy = (x1 + x2 + ...xn) で、方程式の左側と右側の部分を指定します。このような数式のスクラップでは、パラメータの数が少ないのは明らかである。500人以上かと思いきや...。

 
Реter Konow:
あなたの例を見たら、私なりの機能のバリエーションを提案できるかもしれませんね。それが正当とされるのであれば...)

ただ一点、テストベンチのソースを公開する前にお話ししておきたいことがあります。

要は、[-DBL_MAX; DBL_MAX]パラメータでの定義の全範囲にわたって、アルゴリズムの複雑さの点で十分に興味深い関数を知らないということです。周知のように、2進数は17桁(小数点以下16桁)まであり、[-DBL_MAX; DBL_MAX]の範囲をとると、関数がパラメータの変化に対して鈍感になる(入力値の範囲を関数の感度範囲に拡大しなければならないから)。これは、ステップが連続的で均一でなくなるためである。

そこで、0.0刻みで[-2.0; 2.0]の範囲を使用することを提案します。実際、number doubleの制限により、0.000000000001のステップが得られますが、これは問題の複雑さの点から興味深いので、number doubleのすべての機会を十分に利用できます(パラメータのステップ数は4E16になり、パラメータが500であると考えると、控えめに言っても、FF値の多くのバリエーションがあることは明らかです)。

 
Реter Konow:

関数の表記に不連続性があるようですが...。

正しい形式は、fy = (x1 + x2 + ...xn) で、方程式の左辺と右辺を指定します。このような数式のスクラップでは、パラメータの数が少ないのは明らかである。500ともっとかと思ったが...。

f(x1,x2)という形の2つの関数の例です。選手権FFは、このような255の関数で構成され、パラメータは互いに混ざり合い、これら個々の関数はすべて依存し合い、互いに影響し合うことになる(具体的にはどのように-審判は、個々の関数への呼び出しとパラメータへの呼び出しのシーケンスを生成します)。

もし可能なら、そのようなf(x1, x2)の形の関数の例を提示していただければ、一般的なFFに含めたいと思います。

 
Andrey Dik:

ただ一点、テストベンチのソースを公開する前にお話ししておきたいことがあります。

要は、[-DBL_MAX; DBL_MAX]パラメータでの定義の全範囲にわたって、アルゴリズムの複雑さの点で十分に興味深い関数を知らないということです。周知のように、2進数は17桁(小数点以下16桁)であり、[-DBL_MAX; DBL_MAX]の範囲をとると、ステップが連続しないため、関数はパラメータの変更に鈍感になる。

そのため、0.0刻みで[-2.0; 2.0]の範囲を使うことをお勧めします。実際には、倍数の制限により、0.000000000001のステップが得られますが、これはタスクの複雑さの点から興味深いもので、倍数のすべての可能性を十分に利用することができます。

理解できない。ステップ0.0は、ステップなしという意味です...。

さて、倍数の可能性をすべて使うには、範囲は[-DBL_MAX; DBL_MAX]で、0.000000000001のステップにする必要があります。

いくらやりすぎたとはいえ...。

 
Реter Konow:

理解できない。ステップ0.0は、ステップなしという意味です...。

さて、数倍を最大限に活用するには、範囲は[-DBL_MAX; DBL_MAX]で、0.000000000001のステップにする必要があります。

いくらやりすぎたとはいえ...。

ステップ0.0とは、ステップ0.00000000000001を意味する。レンジについては、上記で説明したとおりです。範囲 [-DBL_MAX; DBL_MAX] に適合し、この範囲での動作が保証されている関数は見つかりませんでした(確認するには調査が必要で、その時間がありません)。

明日まで考える、そのことに気づくことが大切です。

 
Andrey Dik:

f(x1,x2)という形の2つの関数の例です。チャンピオンシップFFは255の類似した機能で構成され、パラメータが混在し、これらの個々の機能はすべて依存するようになり、互いに影響し合うようになる(具体的にどのように-レフリーは個々の機能への呼び出しのシーケンスとパラメータへの呼び出しのシーケンスを生成する)。

もし可能なら、そのようなf(x1, x2)の形の関数の例を提示していただければ、一般的なFFに含めたいと思います。

私の理解では、255個の似たような解析関数のスクラップを組み合わせて、1つの方程式にするのでしょう。問題は、FFの呼び出し回数が最小になるように、その最大値を求めることである。

必要なのは、範囲、ステップ、パラメータ数です。

私の個人的な数学的シュールレアリズムはここでは必要ないと思います)私はあなたの数式を受け入れるでしょう

 
Andrey Dik:

ステップ0.0とは、ステップ0.00000000000001を意味する。レンジについては、上記で説明したとおりです。範囲 [-DBL_MAX; DBL_MAX] に適合し、この範囲での動作が保証されている関数は見つかりませんでした(確認するには調査が必要で、その時間がありません)。

明日まで考える、そのことに気づくことが大切です。

考えてみます。