n-best を数式で表現する方法

集合 \mathcal{S} の各要素に対して,スコア関数 f:\, s \in \mathcal{S} \mapsto \mathbb{R} が定義されているとき,その集合中のスコアの上位 n 要素から構成される部分集合 \mathcal{S}_{n} を数式で書きたくなった(ただし,スコア関数は単射とし,\mathcal{S}_{n} は一意に定まるとする).n-best がタイトルに入った論文などを色々見てみたが,ほとんど言葉で定義されていて,数式で書いているものは少ない.すぐ思いつくのは,

  • 外延的記法っぽいの(帰納的定義): \mathcal{S}_{0}=\emptyset として,\mathcal{S}_{n} = \mathcal{S}_{n-1} \sqcup \{\textrm{argmax}_{s\in\mathcal{S}\setminus\mathcal{S}_{n-1}} f(s)\}\qquad \textrm{or}\qquad \mathcal{S}_{n} = \bigsqcup_{k=0}^{n-1} \{\textrm{argmax}_{s\in\mathcal{S}\setminus\mathcal{S}_{k}} f(s)\}
  • 内包的記法っぽいの(n-部分集合+条件): \mathcal{S}_{n} = \textrm{argmax}_{\mathcal{S}'\in\mathcal{S}^{(n)}} \min_{s\in\mathcal{S}'} f(s)\qquad \textrm{or}\qquad \mathcal{S}_{n} = \textrm{argmax}_{\mathcal{S}'\in\mathcal{S}^{(n)}} \sum_{s\in\mathcal{S}'} f(s)
  • 裏技: \argmax 的に部分集合を返す \nbest (\argmaxN) を定義する

どれも微妙だ.mimetex の表示品質ぐらい気に入らないが,強いて言えば一つ目が一番ましか.まどろっこしい書き方だが,一番スコアが高いものから一つずつ選ぶというのを補助関数無しで表現するとこうなる.二つ目は短いけど,どんな集合を意味しているか分かりにくいのが玉に瑕.三つ目は最終手段か(論文で見かけたのはこれ.実は一番分かりやすい?).