Python

Python

Pythonによる交通シミュレーション:追従(IDM) × 車線変更(MOBIL)

こんにちは、JS2IIUです。皆さんは、高速道路で自動運転車がスムーズに車線変更をする動画を見たことがありますか? あるいは、普段の運転で「前の車が遅いな、隣の車線に移ろうか」と判断する一瞬、頭の中でどのような計算が行われているのか気になったことはないでしょうか。今回は、そんな「運転の意思決定」をP...
Python

Pythonによる交通シミュレーション:Intelligent Driver Model (IDM) による挙動の物理モデル化

こんにちは、JS2IIUです。これまでの連載では、基本的な交通シミュレーション環境の構築から始まり、マルチエージェント化、そしてFinite State Machine(FSM)を用いた状態遷移による行動制御までを解説してきました。前回までの実装で、車は「前の車がいなければ進む」「近づいたら止まる」...
Python

有限オートマトン(FSM)とマルチエージェントの融合:整列行動の実装

こんにちは、JS2IIUです。これまでの連載では、物理学に基づいた「社会力モデル」による群衆の動き(第1回)と、コスト関数を用いた「混雑回避の思考」(第2回)を実装してきました。これらによって、エージェントたちは障害物を避け、空いている場所を選ぶことができるようになりました。しかし、シミュレーション...
Python

マルチエージェントシステムにおける負荷分散:動的なターゲット変更ロジックの実装

こんにちは、JS2IIUです。前回の記事では、物理学の「力」の概念を応用した社会力モデル(Social Force Model)を使って、駅の改札を通る人々の物理的な動きをシミュレーションしました。しかし、前回のシミュレーションには一つ、現実とは大きく異なる点がありました。それは、エージェント(登場...
Python

マルチエージェントシミュレーション入門:NumPyとMatplotlibによる群衆挙動の実装

こんにちは、JS2IIUです。朝の通勤ラッシュ、駅のホームや改札での人の流れを観察したことはあるでしょうか?一見すると混沌としているように見えますが、そこには「ぶつからないように避ける」「空いている場所を探す」「目的地へ向かう」という、個々人のミクロな意思決定の積み重ねが存在しています。こうした現象...
Python

【Python】数式とコードで再現する! 交差点の交通流シミュレーション自作入門

こんにちは、JS2IIUです。通勤やドライブの最中、赤信号で止まっているときに「もっとうまく信号が変われば渋滞しないのに」と思ったことはありませんか? あるいは、自動運転車が普及したら交差点の景色はどう変わるのだろうと想像したことがあるかもしれません。現代の都市工学において、こうした疑問を解決するた...
Python

Pythonで学ぶモンテカルロ法:株価予測シミュレーション入門

こんにちは、JS2IIUです。「1年後の株価はいくらになっているか?」この問いに対して、ズバリ「12,500円です」と断言できる人は、預言者か詐欺師のどちらかでしょう。不確実な未来において、確実な一点を当てることは不可能です。しかし、「1年後に株価が10,000円から13,000円の間に収まる確率は...
Python

Pythonで学ぶモンテカルロ法:円周率の近似シミュレーションを可視化しよう

こんにちは、JS2IIUです。プログラミングの世界では、確定的なロジックを積み上げることが基本ですが、時には「デタラメな数(乱数)」が強力な武器になることがあります。その代表例がモンテカルロ法です。一見すると無秩序な乱数を使って、円周率(\(pi\))のような普遍的な定数を近似できるというのは、直感...
Python

Pythonで学ぶパーティクル・フィルタ入門 ― 「数」の力で確率分布を表現するモンテカルロ法

こんにちは、JS2IIUです。これまで、「カルマン・フィルタ(KF)」によるノイズ除去、「拡張カルマン・フィルタ(EKF)」による非線形システムの追跡と、確率ロボティクスの王道とも言える技術を紹介してきました。これらは非常に強力なツールですが、実はある一つの「呪縛」に囚われています。それは、「世界は...
Python

Pythonで学ぶ拡張カルマン・フィルタ(EKF)入門 ― 「非線形」な現実世界を「ヤコビ行列」で攻略する

こんにちは、JS2IIUです。これまで、「1次元カルマン・フィルタ」で基礎を固め、「2次元カルマン・フィルタ」で行列演算を用いたマルチトラッキングを体験してきました。ここまでは順調でしたね。しかし、私たちが生きているこの現実世界には、ある残酷な事実があります。それは、「世界は直線でできていない」とい...