さまざまな問題サイズで課題をスコアリングするにはどうすればよいですか?


21

これらの質問が具体的かつ回答可能である場合、メインのトピックに挑戦的な質問を書くためのメタに対するかなり強力なサポートがあります。しかし、まだそのような質問はありませんので、私は水域をテストすると思いました。この質問は、おそらく良い主観的、悪い主観的領域に入っていますが、それはチャレンジライティングの質問がどうあるべきかだと思います。質の高いコンテンツを生成するために、回答にワイルドな投機的なアイデアを投稿しないでください。以下に挙げた問題を回避する理由を説明するか、過去に提案された手法を使用して成功した既存の課題を理想的に示します。

特定の最適化の課題では、課題を設定する際の自由なパラメーターは、最適化する問題のサイズです。「最適化の課題」とは、回答が通常正確/最適であることが要求されるジャンルのようなものを意味するものではなく、課題は固定問題サイズまたは処理可能な最大問題サイズのいずれかで採点されます一定の時間で。根本的な問題に対する次善の解決策が許可され、可能性が高い場合でも、具体的に挑戦することを意味し、目標は可能な限り行うことです。

原則として、これは既知の最適なソリューションを持たない他のチャレンジタイプにも適用されますが、ビジービーバーチャレンジを考慮してください(ここでビジービーバーを使用しているのは、下記の問題を悪化させるためです)。たとえば、最も忙しいBrainfuckビーバーを見つけることに挑戦したいと思いました。ビジービーバーの問題における自由なパラメーターは、コードのサイズです。なんらかの方法でコードサイズを参照せずにチャレンジを設定することはできません。ある意味では、problem-sizeパラメーターの各値Nは、個別の(ますます困難な)課題を与えます。私の主な質問は、バランスの問題に陥ることなく、このようなチャレンジをどのように機能させることができるかです。

明らかな解決策は修正することNです:「N可能な限り多くの文字を印刷する/可能な限り多くのティックで実行する、ソースコードのバイトで終了するBrainfuckプログラムを見つける」。これには大規模なバランスの問題があります。サイズを小さくしすぎると、誰かがすぐ最も忙しいビーバーと挑戦は終わった。サイズを大きくしすぎると、最適なソリューションは終了する前に天文学的な量の文字を印刷します。つまり、そのようなプログラムを見つけるのは簡単であり、挑戦は忍耐で雑用/運動になります。忙しいビーバーはプログラムで見つけることができますが、代わりに、多くの人があまり楽しいとは思わない結果を正式に証明する必要があります。もちろん、この問題は、最適なソリューションの成長により、他のタイプよりも忙しいビーバーの課題でより顕著になりますが、それでも他の課題に当てはまります。

次のオプションでは、N制約なしのままにして、何らかの機能を介してスコアリングの一部にします。「通常の」チャレンジでも、総合スコアのバランスを正しく取るのは非常に困難ですが、忙しいビーバーの場合、最適なソリューションがN計算可能な機能よりも速く成長するという事実により、実際には基本的に不可能です。つまり、十分なN長さで実行するプログラムを簡単に見つけられるので、手間をかけずに良いスコアを得ることができるので、常に既存の最良の答えを打ち負かすことができます。

また、固定Nを設定し、N次のタイブレーカーとして使用されるより大きなビーバーも送信できるようにすることを検討しました。これには似たような問題があります。誰かが「同じように良いビジービーバーを見つける」ことができN、それによってネクタイを作成し、次にN大きなスコアを見つけるのが簡単な次のためにほとんど何でも提出することができます最適なスコアが難しくなります)。これらの場合、同じソリューションを使用して複数の人にどのように対処しますか?最適な場合には、それを禁止するのも奇妙です。

たぶん、合理的Nな知識を身につけてN、5バイト以内のすべてのサイズのビジービーバーを要求することにより、中途をたどることができるかもしれません。いずれかの手法で単一のものに)。私の最初の推測Nは興味深い挑戦をする範囲からまだ大きく外れている可能性があるため、これも十分に満足できるものではありません。

TL; DR:サイズが変動する問題を(準最適に解決し)最適化することが課題の場合、サイズを課題に組み込むにはどうすればよいですか?理想的には、人々Nが扱いやすいサイズの範囲の上限に近い値で作業できるようにしたいと思います。しかし、そのために最適な解決策が可能であることが判明したN場合、少し大きな解決策Nが重くなり始め、より興味深い問題のサイズで挑戦が続くことができれば素晴らしいでしょう。


6
これは、PPCGに固有のものではないため、チャレンジライティングの質問のモデルとして気に入っています。「これはどうすればいいの?」ではありません。しかし、「これを行う良い方法は何ですか?」。プログラミング愛好家のサイトや対面での競争で、こうした課題が実行されることを想像できました。
-xnor

tldrを一番上に置きます!
Majora320

1
@ Majora320 ...しかし、dwに変更:-)
ルイスメンドー

回答:


3

次のNを見つける

課題は、N提出が開始されるべきであることを示します。

その後、人々は現在の回答を提出しますN。特定の提出が最適であることが証明された場合、N1ずつ増加し、プロセスが繰り返されます。

これを採点するにはいくつかの方法があります。

  1. 現在で最高の提出を獲得 N
  2. 現在Nので最高の提出ポイントと各最適ソリューションのポイントを与えます
  3. #2と同じですが、与えられた提出が最適であることを証明した人物にもポイントを与えます。

1

有界N内の解のポイントを与える

許可N固定範囲内であることを。下限は明らかに些細な答えを除外する必要があり、上限は下限からそれほど遠くないはずです。

次に、N境界内でそれぞれに最適なソリューションを持っている各人に1ポイントを与えます。高いほどN解がより難しいことを意味する場合、それらにNポイントを与えます。(またはNに基づくいくつかの式)。

この方法は、AZsPCが行う方法と似ていますが、部分的なポイントは与えられません。

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