- ベストアンサー
誤謬発見効率の良い検索方法とは?
- 要素数nの規則性のない数列Xにおける誤謬要素を効率的に発見する方法を教えてください。
- 誤謬要素を発見するための最適な検索方法を知りたいです。
- 数列Xの誤謬要素を特定するために、効率の良い検索手法を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
前段について: ポアソン分布の典型的な応用は、待ち行列で一定時間内に到着する新規顧客の人数ですが、 このとき、顧客になりえる人間の範囲は、モデル化されずにボヤかされています。 今回のように n 個の全データという範囲が明白だと、二項分布以外を仮定したとき、 個々のデータが誤謬であるか否かが独立でないことが問題になってきます。 二分探索や、それを拡張した No.1 のような、分割統治による探索の効率を計算するとき、 分割された各区分内での誤謬の発生確率が、相関を持ってしまうのです。 このため、期待値の計算は、ほとんど現実的でなくなります。 後段について: 誤謬の発生数を二項分布と仮定するならば、個々のデータが誤謬であるか否かは独立ですから、 前述の問題は起こりません。No.1 に従って、少し計算してみましょう。 nm 個のデータを n 個づつ m グループに分割し、1 グループづつ誤謬の検索をします。 k 個目に調べたグループで初めて誤謬を発見する確率は、 これ以前のグループに属する n(k-1) 個のデータが誤謬でない確立 (1 - 1/20)^{n(k-1)} と 第 k グループの n 個のデータの中に少なくとも 1 個の誤謬がある確率 { 1 - (1 - 1/20)^n } の積で p_k = (1 - 1/20)^{n(k-1)}・{ 1 - (1 - 1/20)^n } です。 検索に要する時間の期待値は、 E = Σ[k=1…m] (a k) p_k = a{ 1 - (m+1)r^m + mr^(m+1) }/(1-r) ただし r = (19/20)^n。 nm 一定の条件下に E を最小にする n, m を求めればよいのですが、 E/a = { 1 - (19/20)^(nm) }/{ 1 - (19/20)^n } + { nm(19/20)^(nm) }/n と整理できますから、 ∂E/∂n = 0 を変形して、 F(n) = √{ F(nm) }・(20/19)^(nm/4) ただし F(x) = sinh(x log√(20/19)) / (x log√(20/19))。 これを近似的に満たす自然数 n を見つけることになります。計算するのは辛そうですが。
その他の回答 (3)
- alice_44
- ベストアンサー率44% (2109/4759)
ポアソン分布ってのが、謎ですね。 全部で n 個のデータ中で、エラーの個数が ポアソン分布に従うとすれば、 n≒∞ で近似している訳で、 二分探索の効率を評価することなど できない話になります。 標本の大きさが、分布関数のバラメータとして 現れませんから。 No.2 にあるように、エラーの発生数を 二項分布で近似するのなら、分割統治の効率を 論じることができるのですが… ポアソン分布では、個々のデータがエラーか否かが 独立ですらないのですから。
お礼
ありがとうございます。 実は、前段の意図が全くわかりません。要素はたくさんあるので、 とりあえずnを無限大で近似しても良いかと思ったのですが、 それ自体に問題があるという意味でしょうか。 後段については、 「No.2 にあるように、エラーの発生数を 二項分布で近似するのなら、分割統治の効率を 論じることができるのですが…」 とのことであれば、エラーの発生数を2項分布で近似して (つまり私の質問を必要最低限修正したうえで) 効率を論じてみていただけますでしょうか。
- Tacosan
- ベストアンサー率23% (3656/15482)
大雑把にいうと個々の要素が誤謬要素である確率は 1/20 くらいと思っていいのかな? もしそうだとすると, 最初から二分探索するのはあまり効率的ではないと思います. つまり「F[1,n/2], F[n/2+1, n]を行い、誤謬要素がある方について、更に検索範囲を半分にして関数Fで判定する。」としましょう. このとき, n がある程度大きければ「どちらにも誤謬要素が含まれる」可能性が高く, したがってその次には F[1, n/4], F[n/4+1, n/2], F[n/2+1, 3n/f], F[3n/4+1, n] のすべてを調べることになりがちです. とすれば, 最初から 4つに分けておけば最初の判定 (F の 2回の呼び出し) を省略できるはずです. これをもっと進めると, たとえば「最初に F[1, 20], F[21, 40], ... のように判定し, 誤謬要素がある部分のみ二分探索する」ようにすると誤謬要素を含まない部分が出てくるので速くなるんじゃないでしょうか. もちろん 20 が適切かどうかはわかりません.
お礼
もし、その考え方を推し進めるのであれば、ご回答になった全部、 「もちろん 20 が適切かどうかはわかりません」というところまでは、 質問者がすでに到達しています。 一体いくつ程度に分割するのがよいのかという質問であるとお考えください。
補足
> 個々の要素が誤謬要素である確率は 1/20 くらいと思っていいのかな まさにその通りとお考えください。No.3の御回答を見る限りではポアソン分布などと 言い出さずに、このように記載すればよかったと考えている次第です。 おっしゃる通り、確かに実績としては、「どちらにも誤謬要素が含まれる」ことがままあります。 結局、4分割試験を4回しています。 一方で、nが少ない時(20-30程度のこともある)は、経験則としては、いきなり細分化して調べるのは どう見ても面倒です。
- alice_44
- ベストアンサー率44% (2109/4759)
条件 1. と 4. が矛盾していることを どう説明しますか?
お礼
ありがとうございます。矛盾はしておりません。 恐らく、質問文解釈を勘違いされているものと推察されます。 もちろん、勘違いの理由は貴方とは限らず、私の記述に分かりにくい点があるのかもしれません。 そこで、いかなる理由で矛盾と考えるのか、説明願いますでしょうか。
お礼
ありがとうございます。 かなり複雑なので時間がかかりましたが、とても参考になりました。