STA Chapter1 part2
Point-set diameter
distance matrix -> 距離行列について
配列iと配列jの距離を記述(iとjの距離がDij)
- >対称行列である(iとjの距離=jとiの距離)
以下を満たす
入力: m×m距離行列d
目的: 直径 を求める。
- を適当に取る
- d(x,y) が最大となるyを選ぶ
- z=d(x,y)として出力する。
行列全部を調べるとm×m回かかるが、これはm回調べるだけでよい。
すなわちですむ。
この際zの取りうる値は
である。
右の不等式は定義より明らか。左の不等式の証明は
となる。
Sequence monotonicity
入力: 要素の集合(半順序つき)
目的: 単調? すなわち、
この問題から以下のように設定を変更する。
入力: 要素の集合(半順序つき)
目的: 単調に近い(ε-close) すなわち、大きさ(1-ε)nの単調増加部分列がある。
例 n = 5 ε = 2/5 で 1 4 2 5 3という列、ここで1 2 3 は大きさ3の単調部分列
BPPのtester
- if が単調 then 3/4の確率で正解を出す。
- if が大きさ(1-ε)nの単調増加部分列がない。 then 3/4の確率で失敗を出す。
ここでいう3/4は本質的にあまり意味がなく、1/2より大きく1より小さければよい。
というのもテストを定数回繰り返し正解と失敗のうち、多いほうが問題に対する入力の答えとなるため。
単純なアイディア1
ランダムにi<jを満たすi,jをとりをみたすか調べる。
かかる。*1
理由:
という風に並んでいるときを考えると、これは失敗としたい。
しかし、でくくった部分の二点をとらない限り正解を出す。
とすると、長さのブロックが個存在する。
すなわち、同じブロック内の二点を選ぶ確率は
ゆえに以上必要。
※弱点は全体的な変化を見る確率が高いために局所的な変化に気付きにくい。
単純なアイディア2
ランダムにiを選んでをみたすか調べる。
これもあまりうまくいかない。
理由:
という風に並んでいるときを考えると、これは失敗としたい。
しかし、でくくった部分の境目をとらない限り正解を出す。
この部分をとる確率はc/n.このため、線形時間かかるためよろしくない。
※弱点は局所的な変化を見る確率が高いために全体的な変化がわからない。
これら二つをうまく組み合わせられないだろうか?というのが次のアイディア
と、その前に今後使う記号の説明。
'[n]'は1からnまでの整数の集合
''は集合Sの中からランダムに選んだものがx