如何为问题大小可变的挑战评分?


21

只要这些问题是特定且可回答的,元数据就可以将挑战性写作问题作为主要话题,在元数据上有相当大的支持。但是,我们还没有任何此类问题,因此我认为自己会进行测试。这个问题可能进入了良好的主观,错误的主观领域,但是我认为这可能是挑战写作问题。为了确保它们仍能生成高质量的内容,请不要在答案中仅张贴疯狂的投机想法。说明为什么他们避免以下提到的问题,或者理想情况下指出过去已经成功使用建议的技术的现有挑战。

对于某些优化挑战,设置挑战的一个自由参数是要优化问题的大小。“优化挑战”不是指我们类型,通常要求答案是准确的/最佳的,并且挑战是根据固定的问题大小或可以处理的最大问题大小来评分的在固定的时间内。我的意思是明确地提出挑战,在这种情况下,甚至允许甚至根本不可能解决潜在问题,而且目标是尽可能做到最好。

为了确定起见,请考虑繁忙的海狸挑战,尽管原则上也适用于没有已知最佳解决方案的其他挑战类型(我在这里仅使用繁忙的海狸,因为它们加剧了下面提到的问题)。说,我想挑战如何找到最繁忙的Brainfuck海狸。繁忙的海狸问题中的free参数是代码的大小。如果不以某种方式引用代码大小,就无法应对挑战。从某种意义上说,问题大小参数的每个值N都会带来一个单独的挑战(难度越来越大)。我的主要问题是如何在不遇到平衡问题的情况下使这样的挑战起作用。

显而易见的解决方案是修复N:“找到一个终止的Brainfuck程序,N其中包含源代码字节,该程序输出尽可能多的字符/运行尽可能多的滴答声。” 这有巨大的平衡问题:如果我挑体型太小,有人可能会很快找到最繁忙的海狸,挑战已经结束。如果我选择的尺寸太大,最佳解决方案将在终止之前打印出天文数字的字符,这意味着找到这样的程序可能很简单,并且挑战变得耐心/琐事—这也留给了可以通过编程方式找到繁忙的海狸,相反,人们将需要开始正式证明其结果,但很多人可能并不觉得这很有趣。当然,由于最佳解决方案的增长,此问题在繁忙的海狸挑战中比其他类型更为明显,但它仍然适用于其他挑战。

下一个选项将N不受限制,并通过某些功能使其成为评分的一部分。即使对于“正常”挑战,要想正确地实现总分的平衡也是非常困难的,但是在繁忙的海狸中,由于最佳解决方案的增长速度快N于任何可计算的功能,从根本上讲是根本不可能的。这意味着我总是可以通过选择足够大的N位置来击败现有的最佳答案,在这里我可以轻松找到运行时间如此之久的程序,这样我就可以在不付出太多努力的情况下获得更好的成绩。

我还考虑过设置一个固定值,N并允许人们也提交较大的海狸,N这些海狸将用作后续的决胜局。这有一个类似的问题,即某人可以“碰巧找到一个同样好的忙碌的海狸” N,从而创建一个平局,然后将几乎所有内容提交给下N一个容易找到大分数的人(即使找到该大比分也是如此)。最佳分数越来越难)。在这些情况下,您将如何使用同一解决方案与多个人打交道?禁止它在最佳情况下也会很奇怪。

也许可以通过合理地进行有根据的猜测,N然后要求在(例如)5个字节以内的所有大小的繁忙海狸中找到中间立场,N以便在两个方向上都有一些回旋余地(然后将〜10分相加一项或多项技术合并为一个)。这也不太令人满意,因为我最初的猜测N可能仍远远超出提出有趣挑战的范围。

TL; DR:在挑战是(不能最佳地解决和)优化大小可变的问题的情况下,如何将大小合并到挑战中?理想情况下,我希望人们能够以N接近于易处理尺寸范围上限的值工作。但是,以防万一,事实证明,最佳解决方案是可行的,N如果稍大一点的解决方案N开始占上风,那将是一个很好的选择,这样挑战就可以以更大的问题规模继续进行。


6
我喜欢将其作为挑战性写作问题的模型,因为它并不特定于PPCG。不是“我们应该怎么做?” 但是“执行此操作的好方法是什么?”。我可以想象在编程爱好者现场或面对面的竞赛中会遇到这样的挑战。
xnor

将tldr放在顶部!
Majora320 '16

1
@ Majora320 ...但随后将d更改为w :-)
Luis

Answers:


3

找到下一个N

挑战将表明N提交应从何处开始。

然后,人们将在当前提交答案N。如果证明给定的提交是最佳的,则将N其增加1,然后重复该过程。

有几种评分方法:

  1. 在当前评分最佳提交 N
  2. 给出当前最佳提交N的分数,以及每个最佳解决方案的分数
  3. 与#2相同,但也要指出证明给定提交是最佳的人。

1

给出有界N内解的点

允许N在固定范围内。下界应该排除明显的琐碎答案,并且上界不应与下界相距太远。

然后,给每个N在边界内对每个人都有最佳解决方案的人给1分。如果更高,则N意味着解决方案会更难,请给它们N分。(或一些基于N的公式)。

此方法类似于AZsPC的操作方式,但未给出局部点。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.