タグ付けされた質問 「optimization」

他のタグでカバーされていないアスペクトの最適化に焦点を当てた課題。

3
翼の順序を最適化する
このツイートは、中華料理店1の翼の可能な注文のリストです。 ピザを注文するとき、私は通常、簡単な計算である最高のピザ価格比を与えるサイズを計算します。しかし、このレストランでの注文の価格を最小化することはそれほど単純な作業ではないため、そこでの次の注文に備えたいと思います。 チャレンジ 444 例 100100100$111.20$111.20$111.20 [50,50],[25,25,50],[25,25,25,25] 222[50,50] ルール n≥4n≥4n \geq 4 nnn すべての可能な注文を返すことを選択できます テストケース 4 -> [4] (4.55) 23 -> [23] (26.10) 24 -> [6,18],[9,15],[12,12] (27.20) 31 -> [6,25] (34.60) 32 -> [4,28],[6,26],[7,25] (35.75) 33 -> [4,29],[5,28],[6,27],[7,26],[8,25] (36.90) 34 -> [6,28],[9,25] (38.00) 35 -> [35] (39.15) 125 -> [125] …

7
1Dホッピング配列迷路
触発さ我々の塔は、ホッピングんとに関連した2D迷路マイナス1D 前書き あなたの仕事は、指定されたルールに従って配列迷路から抜け出すための最短経路を見つけることです。 チャレンジ n個の要素を持つ1D配列aは、n 個の点で構成される迷路と見なすことができます。インデックスkの点は、一方向にk + a [ k ]およびk - a [ k ] の点に接続されます。つまり、インデックスkのポイントからa [ k ]ステップだけ正確に前後にジャンプできます。配列の境界外のインデックスを持つポイントは、迷路外と見なされます。 これを説明するために、次の配列を検討してください。 [0,8,5,9,4,1,1,1,2,1,2] 現在5番目の要素にいる場合、要素は4であるため、9番目の要素まで4ステップ進むか、1番目の要素まで4ステップ戻ることができます。後者の場合、要素0になります。これは、それ以上移動できないことを示します。前者を実行すると、9番目の要素が2であるため、11番目の要素(再び2)にホップすることを選択できます。その後、「13番目の要素」に再びホップできます。配列し、迷路への出口と見なされます。 したがって、真ん中の要素から開始する場合、迷路から抜け出すための1つの方法は、1ステップ戻る、4ステップ進む、2ステップ進む、そして再び2ステップ進むこと[-1,4,2,2]です。これは配列として表すことができます。または[4,8,10,12]、すべての中間点と最終点のゼロベースのインデックスを記録する配列(1ベースのインデックスでも問題ありません)、または単に記号で表現できます[-1,1,1,1]。 低指数の端から迷路を脱出することも大丈夫です。 最初の表記を使用して同じ要素から開始すること[1,1,1,2,2]も解決策ですが、4つではなく5つのステップがあるため最適ではありません。 タスクは、配列の迷路から抜け出すための最短パスを見つけ出し、パスを出力することです。最適なパスが複数ある場合は、それらの一部またはすべてを出力できます。解決策がない場合は、有効なパスから識別可能な偽の値を選択して出力する必要があります(出力をまったく生成しなくてもかまいません)。 簡単にするために、配列内の要素の数は常に奇数であり、常に真ん中の要素から始めます。 テストケース テストケースはさまざまな形式の出力を示していますが、これらに限定されません。 Input Output [0,8,5,9,4,1,1,1,2,1,2] [-1,4,2,2] [2,3,7,1,2,0,2,8,9] [2,9] (or [2,-5] or [[2,9],[2,-5]]) [0,1,2,2,3,4,4,4,3,2,2,3,0] [1,-1,1,1] [0,1,2,2,4,4,6,6,6,6,6,4,2,1,2,2,0] [] スペック 関数または完全なプログラムを作成できます。 配列には非負の整数のみが含まれます。 任意の標準フォームを介して入力と出力を行うことができますが、使用するフォームを回答で指定してください。 これはcode-golfであり、最小バイト数が勝ちます。 いつものように、デフォルトの抜け穴がここに適用されます。

14
タワーホッピングをします
仕事 負でない整数aの配列を指定すると、位置0から開始して配列の「外側」にジャンプするために必要な右方向ジャンプの最小数を決定します。そうしない場合はゼロ/ nullを返します。 インデックスからのジャンプiは、配列インデックスの最大増加分であると定義されていますa[i]。 外部へのジャンプは、ジャンプの結果のインデックスiが配列の範囲外であるジャンプです。そのため、1ベースのインデックス付けi>length(a)では、0ベースのインデックス付けでは、i>=length(a)。 例1 考慮してくださいArray = [4,0,2,0,2,0]: Array[0] = 4 -> You can jump 4 field Array[1] = 0 -> You can jump 0 field Array[2] = 2 -> You can jump 2 field Array[3] = 0 -> You can jump 0 field Array[4] = 2 -> You …

30
消える要素
文字列Sとインデックスのリストを指定すると、その結果をの新しい値として使用しながら、の各インデックスの要素を削除してX変更SしSますS。 例えば、与えられたS = 'codegolf'とX = [1, 4, 4, 0, 2]、 0 1 2 3 4 5 6 7 | c o d e g o l f | Remove 1 c d e g o l f | Remove 4 c d e g l f | Remove 4 c …
17 code-golf  string  array-manipulation  code-golf  string  ascii-art  code-golf  number  sequence  pi  code-golf  number  array-manipulation  code-golf  string  ascii-art  code-golf  math  number  game  code-golf  math  sequence  polynomials  recursion  code-golf  math  number  sequence  number-theory  code-golf  permutations  balanced-string  code-golf  string  ascii-art  integer  code-golf  decision-problem  hexagonal-grid  code-golf  ascii-art  kolmogorov-complexity  code-golf  number  code-golf  matrix  binary-matrix  code-golf  math  statistics  code-golf  string  polyglot  code-golf  random  lost  code-golf  date  path-finding  code-golf  string  code-golf  math  number  arithmetic  number-theory  code-golf  tetris  binary-matrix  code-golf  array-manipulation  sorting  code-golf  number  code-golf  array-manipulation  rubiks-cube  cubically  code-golf  grid  optimization  code-golf  math  function  code-golf  string  quine  code-golf  ascii-art  grid  code-golf  decision-problem  grid  simulation  code-golf  math  sequence  code-golf  path-finding  code-golf  ascii-art  grid  simulation  code-golf  number  whitespace  code-golf  sequence  code-golf  sequence  code-golf  sequence  integer  code-golf  math  game  code-golf  internet  stack-exchange-api  code-golf  sequence  code-golf  internet  stack-exchange-api  code-golf  math  factoring  code-challenge  sequence  polyglot  rosetta-stone  code-golf  string  browser  code-golf  date  code-golf  base-conversion  code-challenge  cops-and-robbers  hello-world  code-golf  cops-and-robbers  hello-world 

12
シャミールの秘密の共有
与えられたn(プレイヤーの数)、 t(しきい値)、およびs(秘密)、出力nによって生成された秘密シャミール秘密分散アルゴリズム。 アルゴリズム このチャレンジの目的のために、計算はGF(251)(sizeの有限体251、または整数mod 251として知られる)で行われます。通常、フィールドは、サイズがより大きい素数になるように選択されnます。課題を簡素化するために、フィールドサイズは一定になります。251これは、8ビットの符号なし整数で表現できる最大の素数であるため選択されました。 t-1(包括的)範囲でランダムな整数を生成します[0, 250]。これらのラベル1を通過T-1 。 構築t-1用い番目の多項式をsのパワーの係数として工程1からの一定値とランダムな整数としてx:F(X)= S + X * 1 + X 2 * 2 + ... + X T- 1 * a t-1。 (包括的)範囲内の(f(z) mod 251)それぞれの出力。z[1, n] 参照実装 #!/usr/bin/env python from __future__ import print_function import random import sys # Shamir's Secret Sharing algorithm # Input …
17 code-golf  number-theory  random  cryptography  polynomials  code-golf  number  code-golf  math  number  sequence  code-golf  quine  code-generation  code-golf  arithmetic  set-theory  code-golf  sequence  code-golf  code-golf  string  math  fastest-code  optimization  code-golf  code-golf  internet  stack-exchange-api  code-golf  array-manipulation  code-golf  string  internet  string  code-challenge  internet  test-battery  code-golf  math  pi  code-golf  arithmetic  primes  code-golf  array-manipulation  code-golf  string  code-golf  string  palindrome  code-golf  sequence  number-theory  fastest-algorithm  code-golf  math  number  base-conversion  code-golf  number-theory  sorting  subsequence  search  code-golf  permutations  code-challenge  popularity-contest  code-generation 

4
実際に整数のメタゴルフ
バックグラウンド 実際(Seriouslyの後継)は、2015年11月に作成したスタックベースの命令型ゴルフ言語です。他の多くのゴルフ言語と同様に、スタックの内容に基づいて異なる機能を実行する1バイトのコマンドがあります。その専門の1つは数学です-多種多様な数学ベースのコマンドがあります。ただし、数学演算を実行するには、スタックに(1つ以上の)数値を配置する必要があります。多くの異なるオプションがあるため、特定の値をできるだけ少ないバイト数でプッシュすることは困難です。この課題では、実際にできる限り少ないバイトで数値(具体的には整数)を表すことを正確に行います。 チャレンジ N入力として整数を指定するNと、スタックにプッシュされる結果となる有効な実際のコードを出力します。 入力は、32ビットの符号付き2の補数整数の範囲内にあります(つまり、包括的範囲の整数[-2147483648, 2147483647])。 結果は整数(float、string、list、またはfunctionではなく)でなければならず、スタックの先頭になければなりません。 スタックの内容について何も仮定しないでください(空かどうかなど)。スタック上の既存の値を変更または再配置してはなりません。 このチャレンジを書いている時点でのActuallyの最新のコミットが使用されることになっています。バグ修正またはパフォーマンスの強化(または許可されたコマンドの機能を削除または変更しないその他の小さな変更)を行った場合、このバージョンを更新します。 ソリューションは、少なくとも単純なソリューション(:数値リテラルを作成するために入力に追加)と同様に実行する必要があります。 スコアは、簡単な解の長さの合計から、スコアリングに使用される1000個の32ビット符号付き2の補数整数の選択の出力の長さの合計を引いたものになります。必要に応じて、スコアリング整数をいつでも変更する権利を留保します(テストケースの最適化や、テストケースの徹底が不十分な場合など)。 ソリューションは、入力ごとに30秒以内に有効な回答を出力する必要があります。タイミングは、標準の無料のCloud9ワークスペースで行われます。 コマンド 簡単にするために、(現在の)208個のコマンドのうち141個のみを使用でき、数値計算とは関係のない141個の多くのオーバーロードが削除されています。許可されるコマンドのリストは次のとおりです(形式は<hex code> (<symbol>): <descriptions of functions based on stack values and types>次のとおりです。 0B (♂): take the next command and map it over the top of the stack (for example, ♂A is equivalent to `A`M) 1F (▼): pop …

2
ビリヤードをする
このコードゴルフでは、ポケットに落ちる前に正確にn個のクッションに当たる最短ショットの方向を決定する必要があります。 ビリヤードテーブルは、次の特徴を持つ6ポケットプールテーブルです。 寸法は可変です(a x b) 摩擦なし:ボールはポケットに落ちるまで永遠に転がります ポケットとボールのサイズはほぼゼロです。これは、同じ位置にある場合にのみ、ボールがポケットに落ちることを意味します。 ボールは最初に左下の穴に置かれます(しかし、落ちません) テーブルの寸法(a、b)とnをヒットするクッションの数を入力として受け取り、ポケットに落ちる前に正確にn個のクッションをヒットする最短パスの角度を度数で返す完全なプログラムまたは関数を作成します。 a > 0 b > 0 0 <= n <10000000 0 < アルファ <90(度)精度:少なくとも10 ^ -6 例: で= 2、B = 1、N(1)(2)(3)次の図に:= 1三つの可能な経路が存在します。数値(1)は最短であるため、出力はatan(2)= 63.43494882292201度になります。 a = 2、b = 1、n = 4 の解はatan(4/3)= 53.13010235415598度です 試験サンプル: a = 2, b = 1, n = …

4
奇妙なコインによる最適化の課題
あなたは持っているn、それぞれがそれぞれのからラベル付けされているいずれかの重量を量る-1または1コイン0にn-1あなたが離れてコインを伝えることができるようにします。1つの(魔法の)計量装置もあります。最初のターンでは、負の重量と正の重量の両方を測定できる計量装置に好きなだけコインを置くことができます。 しかし、計量装置には本当に奇妙なことがあります。x_1, x_2, ..., x_j初めてデバイスにコインを置いた場合、次回(x_1+1), (x_2+1) , ..., (x_j+1)よりも大きい番号のコインを置くことができないことを除いて、次にスケールにコインを置く必要がありますn-1。それだけでなく、新しい計量ごと0に、スケールにコインを入れたいかどうかを選択できます。 このルールでは、どのコインの重さが1で、どのコインの重さが-1であるかを常に示す最小計量値は何ですか? 明らか0に、最初のターンでデバイスにコインを置くだけでn問題を解決するには正確な計量が必要です。 言語とライブラリ 好きな言語やライブラリを使用できます(このチャレンジ用に設計されたものではありません)。ただし、可能であればコードをテストできるようにしたいので、Ubuntuでコードを実行する方法について明確な指示を提供できれば非常にありがたいです。 スコア 与えられたnスコアに対してn、最悪の場合に必要な計量の回数で割られます。したがって、スコアが高いほど優れています。このパズルへの入力はありませんが、あなたの目標はn、最高のスコアを獲得できるものを見つけることです。 同点の場合、最初の答えが勝ちです。誰かが無限のスコアを得る方法を見つけるという非常にまれな状況では、その人がすぐに勝ちます。 仕事 あなたの仕事は、最高のスコアを獲得するコードを書くことです。コードはnを賢く選択し、そのために計量回数を最適化する必要がありnます。 主要なエントリー Sarge BorschによるPythonの4/3 7/5 ピーターテイラーによるJavaの 26/14

6
巡回セールスマン
リストまたはベクターなど、3タプルの束などが与えられます。最初の2つの要素は文字列で、3番目の要素は数値です。文字列は都市であり、数字はそれらの間の距離です。タプル内の都市の順序は任意です(つまり、どちらが最初に来て、どちらが最初に来るかは関係ありません)。また、接続された引用のペアごとにタプルが1つだけあります。すべての都市が接続されているわけではありません。また、距離は常に正です(ではなく0)。これらの条件を確認する必要はありません。入力が正しい形式であると仮定することができます。あなたの仕事は、都市を周期的な順序で返すことです。そのため、ある都市から開始して、同じ都市に戻った場合、都市間の距離の合計は最小になります(正確かつ全体的に)解決策が存在すると仮定することができます。たとえば、与えられたとしましょう [("New York", "Detroit", 2.2), ("New York", "Dillsburg", 3.7), ("Hong Kong", "Dillsburg", 4), ("Hong Kong", "Detroit", 4), ("Dillsburg", "Detroit", 9000.1), ("New York", "Hong Kong", 9000.01)] 次のいずれかを出力できます(ただし、出力する必要があるのは1つだけです)。 ["Detroit","Hong Kong","Dillsburg","New York"] ["Hong Kong","Dillsburg","New York","Detroit"] ["Dillsburg","New York","Detroit","Hong Kong"] ["New York","Detroit","Hong Kong","Dillsburg"] ["Dillsburg","Hong Kong","Detroit","New York"] ["New York","Dillsburg","Hong Kong","Detroit"] ["Detroit","New York","Dillsburg","Hong Kong"] ["Hong Kong","Detroit","New York","Dillsburg"] …

2
Befungeプログラムを圧縮する
Befungeは2次元の難解なプログラミング言語です。基本的な考え方は、(1文字の)コマンドが2次元グリッドに配置されるということです。制御フローはグリッド上を移動し、通過するコマンドを実行し、矢印にヒットすると方向を変更します(>^<v)。コマンドはスタックベースです。このリストを参照してください。http://esolangs.org/wiki/Befungeも参照してください。 Befunge-98の仕様が利用可能です。 問題 Befungeプログラムをよりコンパクトな表現に変換するプログラムを作成します。たとえば、次のプログラムは印刷します0: > 0 v > @ . ^ < この場合、スペースの行を削除することにより、プログラムの動作を変更せずに圧縮できます。 >0v >@. ^ < より洗練された変換は、コマンドのシーケンスを回転またはミラー化し、プログラムを圧縮するために不要な制御フローコマンドを排除できます。たとえば、このプログラムでは: >12345v 6 v....7< . . . @ プログラムの終わりを穴に押し込むかもしれません。 >12345v >...@ 6 ^....7< 最初の例では、可能な限り最もコンパクトなプログラムは >0.@ 出力プログラムで同じ結果が得られる限り、任意の変換を使用できます。 入力プログラム 入力プログラムは有効なBefunge-98プログラムです。 入力プログラムが決定論的であると仮定することができます。つまり、外部状態を読み取るコマンドは使用しません。ユーザー入力コマンド&と~、ランダマイザー?、および自己修正コードコマンドpとgです。 入力プログラムが終了することを想定できます。 得点 これはコードゴルフではありませんが、コードゴルフを実行するプログラムを作成する問題です。 入力はテストケースのセットです(上記の入力制限を満たすBefungeプログラム)。合計スコアは、テストケースのスコアの合計です。 各テストケースのスコア スコアは、出力プログラムの空でないセルの凸包の面積です。各セルは、4つの角がデカルト平面の格子点である正方形として扱われます。たとえば、 > v @ < 9.5のスコアを取得します。 プログラムが特定の入力で妥当な時間とメモリで終了しない場合、スコアは入力プログラムのスコアです。(これは、プログラムが時間内に終了しない場合、入力プログラムを変更せずに出力する時間制限ラッパーを簡単に追加できるためです。) プログラムで処理した後、テストケースプログラムの結果が異なる(または終了しない)場合、スコアは入力プログラムのスコアに100ポイントのペナルティを加えたものです。

1
1Dキーボードでのスワイプの最適化
これは、カスタムスコアリングシステムによるコードチャレンジであり、最低スコアが勝ちます。 前書き 多くのスマートフォンでは、2D仮想キーボード上で指をスワイプすることでテキストを入力できます。この技術は通常、推測された単語のリストを出力する予測アルゴリズムと組み合わされ、最も可能性の高いものから低いものへとソートされます。 この課題では: 26文字のサブセットに制限された1次元キーボードをスワイプします。 予測アルゴリズムはありません。各単語が「スワイプシーケンス」によって一意に識別されるようにします。 特定の単語リストの移動の合計数が最小になるようにキーボードを最適化する必要があります。 1次元でのスワイプ 以下は、すべての文字で辞書式にソートされた1Dキーボードです。 ABCDEFGHIJKLMNOPQRSTUVWXYZ 注意:モバイルから閲覧している場合、これは複数の行に表示される場合があります。単一の行と考えてください。 そのようなキーボードで単語 ' GOLF ' を入力するには、次のようにします。 で始まる G 右にスワイプして O 左にスワイプして F そのためLの間に位置しているOとF、私たちはそこに停止せずにスワイプに行きます。 それで、このキーボードの' GOLF 'のスワイプシーケンスはGOFです。 より一般的に: 最初と最後の文字は常に含まれます。 他の文字は、方向の変更が必要な場合にのみ含まれます。 繰り返される文字は、単一の文字と同じように扱われる必要があります。たとえば、上記のキーボードで: ' LOOP 'は次のようにエンコードされますLP(停止なしO) 「GOOFY」は次のようにエンコードされますGOFY(O方向が変更されたために含まれています-二重になっているためではありません) キーボードの最適化 次の単語のリストを考えてみましょう:[' PROGRAMMING '、 ' PUZZLES '、 ' AND '、 ' CODE '、 ' GOLF ']。 …

4
高次元の格子状グラフで最大の独立集合を見つける
指定された正の整数について、n長さのすべてのバイナリ文字列を考慮します2n-1。与えられた文字列について、の長さの各部分文字列内のs の数のカウントを含む長さの配列をしSましょう。たとえば、if およびthen です。のカウント配列を呼び出します。Ln1nSn=3S = 01010L=[1,2,1]LS 同じカウントの2つの文字列が一致し、それぞれのカウント配列がプロパティthat およびfor all を持っている場合に一致するS1と言います。S2L1L2L1[i] <= 2*L2[i]L2[i] <= 2*L1[i]i 仕事 増加のためnで始まるn=1、タスクは、長さの各文字列の最大セットのサイズを見つけることです2n-1何の2つの文字列が一致しないように。 コードは、値ごとに1つの数値を出力する必要がありますn。 スコア あなたのスコアは、n他の誰もあなたの答えのいずれに対してもより高い正解を投稿していない最高です。明らかに、すべての最適な回答があれば、n投稿した最高のスコアが得られます。ただし、あなたの答えが最適でなくても、他の誰もそれを打つことができなければ、あなたはまだスコアを得ることができます。 回答例 以下のためにn=1,2,3,4私が取得します2,4,10,16。 言語とライブラリ 使用可能な任意の言語とライブラリを使用できます。可能であれば、コードを実行できるとよいので、可能であればLinuxでコードを実行/コンパイルする方法の完全な説明を含めてください。 主要なエントリー 5 Mathematicaの MartinBüttnerによる C ++の Reto Koradiによる6。値は2, 4, 10, 16, 31, 47, 75, 111, 164, 232, 328, 445, 606, 814, 1086です。最初の5つは最適であることが知られています。 Javaの Peter Taylorによる7。値は 2, 4, …

4
最小限の手がかりの数独アンソルバーを構築する
この質問を述べようとする私の試みですが、より客観的な解決基準があります。 あなたのタスクはS、選択したフォーマットで解決された数独グリッドを取得Sし、独自のソリューションとして可能な限り少ない手がかりで問題グリッドを生成しようとするプログラムまたは関数を構築することです。(Sソリューションが一意であることが証明されている限り、ブルートフォースを含め、どのメソッドが一意のソリューションであるかは関係ありません。) プログラムは、このファイルにある100,000のソリューショングリッドのセット(7.82 MBのダウンロード)で実行し、ソリューションが生成するすべての100,000の問題グリッドの手がかりの数を合計することでスコア付けされます。 上記のテストファイルの数独ソリューションは、左から右、上から下の81文字の文字列として表されます。テストファイルの入力を使用可能なソリューションに変換するために必要なコードは、ソリューションのバイトカウントにはカウントされません。 私のFlood Paintチャレンジのように、プログラムは、有効なソリューションと見なされるために、100,000個のパズルすべてに対して有効な出力を実際に生成する必要があります。すべての100,000個のテストケースについて最も少ない合計手がかりを出力するプログラムが勝者であり、短いコードが同点になります。 現在のスコアボード: 2,361,024 -nutki、C 2,580,210 -es1024、PHP 6,000,000 -CarpetPython、Python 2 7,200,000 -Joe Z.、Python

3
コンコルドのlight状
バックグラウンド 巡回セールスマン問題(TSP)は最短回路を尋ね訪問その都市の指定されたコレクション。この質問の目的のために、都市は飛行機内の点であり、それらの間の距離は通常になりますユークリッド距離(最も近い整数に丸められます)になります。サーキットは「往復」でなければなりません。つまり、出発都市に戻る必要があります。 コンコルドTSPソルバは、ユークリッド巡回セールスマン問題のインスタンスを解決することができ、正確かつはるかに高速1が期待するよりも。たとえば、コンコルドは85,900ポイントのインスタンスを正確に解決できました。その一部は次のようになります。 ただし、一部のTSPインスタンスは、コンコルドの場合でも時間がかかりすぎます。たとえば、誰も解決できませんでした、モナリザに基づいてこの100,000ポイントのインスタンスを。(あなたがそれを解決できるなら、1,000ドルの賞金が提供されます!) Concordeは、ソースコードまたは実行可能ファイルとしてダウンロードできます。デフォルトでは、組み込みの線形プログラム(LP)ソルバーQSoptを使用します使用しますが、CPLEXなどのより良いLPソルバーを使用することもできます。 チャレンジ Concordeに5分以上かかる、生成できる最小のTSPインスタンスは何ですかが解決するますか? インスタンスを出力するプログラムを作成するか、他の方法を使用できます。 得点 インスタンス内のポイントが少ないほど良い。インスタンスのファイルサイズによって関係が壊れます(以下を参照)。 標準化 異なるコンピューターはより高速または低速で実行されるため、ランタイムの測定基準としてConcorde用NEOSサーバーを使用します。次の単純な2次元座標形式でポイントのリストを送信できます。 #cities x_0 y_0 x_1 y_1 . . . x_n-1 y_n-1 NEOSで使用する必要がある設定は、「コンコルドデータ(xyリストファイル、L2ノルム)」、「アルゴリズム:コンコルド(QSopt)」、および「ランダムシード:固定」です。 ベースライン TSPLIBrl1889.tspからの1,889ポイントのインスタンスには、「合計実行時間:871.18(秒)」がかかります。これは5分以上です。次のようになります。

1
ニューラルネットワークで並べ替える
これまでのニューラルネットゴルフの課題(これとそれ)は、私に新しい課題を提起するきっかけになりました。 チャレンジ 任意の4次元入力ベクトルが与えられると、ように最小のフィードフォワードニューラルネットワークを探す(a 、b 、c 、d)(a、b、c、d)(a,b,c,d)の整数のエントリと[ - 10 、10 ][−10、10][-10,10]、ネットワーク出力sort(a,b,c,d)sort(a,b,c,d)\textrm{sort}(a,b,c,d)と厳密に0.50.50.5より小さい座標に関する誤差。 許容性 この課題に対して、フィードフォワードニューラルネットワークはレイヤーの構成として定義されます。層は、関数であるL:Rn→RmL:Rn→RmL\colon\mathbf{R}^n\to\mathbf{R}^m行列で指定されたA∈Rm×nA∈Rm×nA\in\mathbf{R}^{m\times n}の重みベクトルb∈Rmb∈Rmb\in\mathbf{R}^mのバイアス、及び活性化関数 f:R→Rf:R→Rf\colon\mathbf{R}\to\mathbf{R} coordinate-適用されます賢い: L(x):=f(Ax+b),x∈Rn.L(x):=f(Ax+b),x∈Rn. L(x) := f(Ax+b), \qquad x\in\mathbf{R}^n. アクティベーション関数は任意のタスクに合わせて調整できるため、この課題を面白くするためにアクティベーション関数のクラスを制限する必要があります。次のアクティベーション機能が許可されています。 身元。 f(t)=tf(t)=tf(t)=t ReLU。 f(t)=max(t,0)f(t)=max⁡(t,0)f(t)=\operatorname{max}(t,0) ソフトプラス。 f(t)=ln(et+1)f(t)=ln⁡(et+1)f(t)=\ln(e^t+1) 双曲線正接。 f(t )= tanh(t )f(t)=タン⁡(t)f(t)=\tanh(t) シグモイド。 f(t )= etet+ 1f(t)=etet+1f(t)=\frac{e^t}{e^t+1} 全体として、許容ニューラルネットは、フォームとるLk∘ Lk − 1○は⋯ ○はL2∘ L1Lk∘Lk−1∘⋯∘L2∘L1L_k\circ L_{k-1}\circ\cdots \circ L_2\circ L_1、いくつかのためにkkk各層、L私L私L_i重みで指定されたA私A私A_i、バイアスb私b私b_i、及び活性化関数f私f私f_i上記のリストから。たとえば、次のニューラルネットは許容されます(このチャレンジのパフォーマンス目標を満たしていませんが、有用なガジェットである可能性があります)。 [ 分(a …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.