我将通过一个例子来介绍我的问题。假设您正在设计考试,其中包括一组特定的独立问题(考生可以对是错)。您想决定要给每个问题的分数,其规则是总分高于某个阈值的候选人将通过,其他候选人将不及格。
实际上,您对此非常了解,并且已经预见了所有可能的结果,并为每个结果确定具有这种表现的候选人应该通过还是失败。所以,你有一个布尔函数表示候选人是否应通过或失败取决于其确切的答案。当然,此功能应该是单调的:当正确解决一组问题使您通过时,正确解决任何超集也必须使您通过。
您能否确定要给出问题的分数(正实数)和阈值,以便您的功能能够被“如果正确问题的分数总和高于阈值,则候选人通过”规则准确地捕获。 ?(当然,在不失一般性的前提下,可以将阈值设为1,直至将分数乘以一个常数。)
正式:是否有的单调布尔函数表征对于其中存在瓦特1,... ,瓦特Ñ ∈ [R +使得对于所有v ∈ { 0 ,1 } ñ,我们有˚F (v )= 1当且仅当Σ 我瓦特我v 我 ≥ 1?
不难发现并非所有功能都可以如此表示。例如,该函数不能:如(1 ,1 ,0 ,0 )被接受,我们必须具有瓦特1 + 瓦特2 ≥ 1,的这么一瓦特1,瓦特2必须是≥ 1 / 2,并同样用于瓦特3,。现在,如果它是,例如,瓦特1和瓦特3,我们有一个矛盾,因为瓦特1 + 瓦特3 ≥ 1但(1 ,0 ,1 ,0 )被拒绝; 其他情况类似。
在我看来,这是一个非常自然的问题,所以我的主要问题是要知道使用哪种名称进行了研究。当然,要求“特征化”是含糊的;我的问题是要知道可以用这种方式表示的函数的类别是否具有名称,关于测试输入函数是否属于该函数(以公式或电路形式)的复杂性的了解,等等。
当然,可以想到有关此主题的许多变体。例如,在实际考试中,问题不是独立的,但是有一个DAG上的指示依赖项的问题,并且只有在所有先决条件都得到满足后,考生才能回答问题。上单调函数的条件可以随后在被限制为估值满足的依赖性,而问题是要确定是否输入功能可如此捕捉给定的变量的输入DAG。人们还可以想到的变体,其中分数的ķ固定元组ķ(逐点求和,并逐点相比于阈值矢量),其能够捕捉比多个功能ķ。另外,您可能希望捕获更多不是布尔型的表达函数,而是转到一个完全有序的域,并使用不同的阈值来指示您在域中的位置。最后,我不确定如果您允许负分数会发生什么事情(因此您可以取消对功能的单调限制)。
(注意:让我对此感到疑惑的是Google Code Jam选择回合,如果候选人达到一定的分数阈值,就会选择他们,并且问题的分数大概经过精心设计,以反映认为哪些问题足以被选中。Code Jam对问题具有依赖关系结构,除非您先解决了“小输入”问题,否则某些“大输入”问题是无法解决的。)