釣りの問題


10

近くの湖で午前8時から午後8時まで釣りに行きたいとします。乱獲のため、1日に1匹しか捕まえないという法律が定められています。魚を捕まえたら、それを維持するか(その魚と一緒に家に帰る)、または湖に投げ戻して釣りを続けるかを選択できます(ただし、後で小さな魚を受け入れるか、まったく魚を捕まえない危険があります)。あなたはできるだけ大きな魚を捕まえたいです。具体的には、持ち帰る魚の予想される質量を最大化する必要があります。

正式には、次のようにこの問題を設定する可能性があります。魚は一定の割合で捕獲され(次の魚を捕獲するのにかかる時間は既知の指数分布に従います)、捕獲された魚のサイズは(既知の)分布に従います。私たちは、現在の時間とあなたが捕まえたばかりの魚のサイズを考慮して、その魚を維持するか、それを投げ返すかを決定するいくつかの決定プロセスを求めています。

だから問題は:この決定はどのように行われるべきか?いつ釣りを止めるかを決める簡単な(または複雑な)方法はありますか?問題は、与えられた時間tについて、最適な漁師が時間tに開始した場合に、どの程度の予想魚量が持ち帰るかを決定することと同等だと思います。最適な決定プロセスでは、魚が予想される質量よりも重い場合にのみ、魚を維持します。しかし、それは一種の自己参照のようです。私たちは最適な漁師の観点から最適な釣り戦略を定義しているのですが、どうすればよいのかよくわかりません。


5
ウィキペディアの秘書問題、特に1 / e-lawの最良の選択に関するセクションを確認してください。
soakley

2
ここでの主な違いは、すべてがどのように分散されているかがわかっていると想定されていることですが、その解決策の鍵は、最初の1 / e申請者を使用してその知識の一部を取得し、適切なしきい値を定義することです。同様のアイデアはここではうまく機能しないと思います。分布からしきい値を導出することを想像できますが、修正する必要はないと思います。あなたはより良い/どんな魚でも捕まえる時間がますます少なくなっているので、しきい値は時間とともに減少するはずだと思います。
b2coutts

1
@soakleyは、olooneyの回答に対する私の回答も参照してください。待機の(期待される)値は、将来取得するキャッチだけでなく、戦略が実際に取るキャッチによっても異なります。したがって、この質問にも奇妙な自己参照的な側面があると思います。
b2coutts

1
私たちが最適化しようとする機能または値は何ですか?つまり、リスクと利益をどのように比較するのでしょうか。釣った魚の大きさの期待値を最大化する方法を考えるべきか。釣りは1日だけですか、それとも複数日ですか?後者の場合、日数はどのように関連付けられますか?
Sextus Empiricus

1
私たちは分布を知っています...それは単に分布のタイプを参照していますか、それとも分布パラメータも含んでいますか?
Sextus Empiricus

回答:


4

ましょうλポアソン過程の速度を示すとlet S(x)=1F(x)F(x)魚のサイズ分布の累積分布関数です。

してみましょうt=0表す一日の終わりにしてみましょうg(t)t0区間で予想キャッチ表し、(t,0)最適な戦略を使用している場合、我々は入手を。明らかにg(0)=0です。また、時間tでサイズx魚を捕まえた場合、それを維持し、それがg t よりも大きい場合は釣りを停止する必要があります。これが決定ルールです。したがって、プロセスの実現と実現された決定(グリーンポイント)は次のようになります。tg(t)

ここに画像の説明を入力してください

確率的動的計画法のアイデアを使用して連続時間で作業すると、時間の逆方向のg(t)変化は、単純な微分方程式で記述されます。極小の時間間隔(tdt,t)考えます。我々はサイズの魚をキャッチする確率X>g(t)この時間には間隔がある

λdtS(g(t)),
それ以外の場合は私たちの期待キャッチはなりg(t)

、よりも大きい魚の平均サイズの式を使用g(t)

E(X|X>g(t))=g(t)+1S(g(t))g(t)S(x)dx.

(tdt,0)

g(tdt)=[λdtS(g(t))][g(t)+1S(g(t))g(t)S(x)dx]+[1λdtS(g(t)]g(t).

整理すると、ことがわかりますg(t)

(1)dgdt=λg(t)S(x)dx.
g(t)λ0S(x)dx

Xexp(α)S(x)=eαx

dgdt=λαeαg(t)
g(t)=1αln(1λt),
t0α=λ=1g(12)

g <- function(t,lambda, rate) {
  1/rate*log(1-lambda*t)
}
catch <- function(daylength=12, lambda=1, rfn=runif, gfn=g, ...) {
  n <- rpois(1,daylength*lambda)
  starttime <- -daylength
  arrivaltimes <- sort(runif(n,starttime,0))
  X <- rfn(n,...)
  j <- match(TRUE, X > gfn(arrivaltimes,lambda,...))
  if (is.na(j))
    0
  else
    X[j]
}
nsim <- 1e+5
catches <- rep(0,nsim)
for (i in 1:nsim)
  catches[i] <- catch(gfn=g,rfn=rexp,rate=1,lambda=1)
> mean(catches)
[1] 2.55802
> g(-12,1,1)
[1] 2.564949

XU(0,1)

g(t)=111λt/2
g(t)t


3
g(t)(t,0)

1
g(t)(t,0)tg(t)

1
g(t)=1eλt1λt
g(t)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.