タグ

ブックマーク / wagtail.cds.tohoku.ac.jp (3)

  • Pythonプログラミング(待ち行列)

    このページでは、待ち行列についてあれこれ試行してみる(ここはこれから)。 ポアソン過程 ある瞬間に発生するイベントを考えよう。例えば、コンビニに客が入店する、原子が崩壊する、パソコンのLANポートに信号(パケット)が到着する、等々。 ある時刻$t$から、わずかな時間間隔$\Delta t$の間に、それらのイベントが発生する確率が時間間隔に比例する、すなわち $$ p(t ; t+\Delta t) = \lambda \Delta t + O(\Delta t^2) $$ であるような場合について考えてみよう。 すると、イベントが発生しない確率は $$ q(t; t+\Delta t) = 1 - \lambda \Delta t + O(\Delta t^2) $$ ということになる。 $t=0$から$T=n \, \Delta t$の間の$n$個の等間隔な区間で、合計$k$回のイベント

  • 情報基礎 「Pythonプログラミング」(ステップ8・動的計画法)

    重量の合計が2500グラム以内(2500グラムを含む)のとき、袋の中の荷物の価格の合計は、最大いくらにすることができるだろうか。 この問題をコンピュータに解かせるために、以下のステップで、アプローチしてみよう: 荷物のデータ表現 アルゴリズムの検討に入る前に、以下では、重量と価値の表を、Pythonのクラスとそのリストを使って、 class Item: def __init__(self,w=0,p=0): self.weight=w self.price=p items = [ Item(300,400), Item(500,250), Item(200,980), Item(600,340), Item(900,670), Item(1360,780), Item(800,570), Item(250,800) ] と表現することにしよう。 こうして変数を定義しておけば、i番目の品の価

  • Pythonプログラミング(メトロポリス法)

    このページでは、複雑な確率分布を得る手法のひとつ、メトリポリス法について紹介する。 状態遷移と棄却法を組み合わせた乱数生成 正規分布に従う乱数列を得るアルゴリズムは色々と知られているし、Pythonに標準装備されているrandomモジュールを使えば random.gauss(平均, 標準偏差) で簡単に得ることができるが、ここでは、それらを全く知らないものと仮定して、 正規乱数を生成する方法を考えてみよう。ここでは、目的とする確率密度を $$ p(x) = \frac{1}{\sqrt{2\pi}} e^{-\frac{x^2}{2}} $$ とする。 いま状態が $x$ であったとして、その次にどのような値 $y$ を出力すべきかを決める判定基準を考える。 その際、とりあえず、乱数(例えば [-1,1]の範囲の一様乱数。左右対称な分布を持つ乱数ならば何でもよい)$\xi$を使って、 $$

  • 1