2025,江端さんの忘備録

私は「ドライブレコーダ」というのが、あまり知られていないころから、車のなかに設置していました。
I had installed a “drive recorder” in my car back when such devices were still largely unknown.

そもそも「ドライブレコーダ(ドラレコ)」そのものが、あまり種類がなかったので、私は車の配電システムを調べて自分で敷設していました。
Back then, there were very few types of drive recorders available, so I studied the car’s power distribution system and wired it myself.

かれこれ15年くらい使っていたのですが、先月、寿命となりました。修理できないかと、色々試みたのですが、私の手に終えない、と思い、買い替えを決意しました。
I had been using it for about 15 years, but last month it finally reached the end of its life. I tried various ways to repair it, but eventually concluded that it was beyond my ability and decided to replace it.

-----

で、まあ、Amazonで中古のドラレコを購入したりしたのですが、中古の経年劣化か、配線ミスか理由は特定できなかったのですが、これが壊れてしまいました。
So, I bought a used drive recorder on Amazon, but whether due to age-related deterioration or a wiring mistake—I never identified the exact reason—it ended up breaking.

そこで、イエローハット(Yellow Hat 車に関する用品・部品の専門販売店チェーン)で購入して設置もして貰おうと考えました。
So I thought I would buy one at Yellow Hat (a specialty chain for automotive supplies and parts) and have them install it as well.

15年前に比べると、録画している様子を表示するディスプレイも付いた製品が、当時の3割程度の値段で売られているには驚きました。随分安くなったものです。
Compared to 15 years ago, I was surprised to see products with built-in displays showing recorded footage being sold for about 30% of the former price. They’ve become remarkably cheap.

このように、製品の値段には文句はなかったのですが、工賃を聞いて「自分でやってみるか」という気持ちになってきました。
So while I had no complaints about the product price, hearing about the installation fee made me think, “Maybe I’ll just do it myself.”

工賃が製品とほぼ同額の値段だったからです。
That’s because labor costs were almost equal to the product price.

自分で全く手が出せないことであれば、私は当然に工賃を払いますが、自分でできることを『面倒』という理由で断念することは、エンジニアである私には難しいのです(給電線もそのまま残っていましたし)。
If it were something I honestly couldn’t do myself, I would of course pay the labor fee. But giving up on something I can do just because it’s “troublesome” is difficult for me as an engineer (especially since the power cable was already there).

-----

最近、骨折後のリハビリとして、毎日、30分程度のウォーキングをしているのですが、その途中で、停車している車を眺めていたら、ざっくり8割程度の車に、ドラレコが装備されていて、ちょっと驚きました。
Recently, as part of rehabilitation after a bone fracture, I’ve been walking for about 30 minutes every day. While doing so, I noticed parked cars, and was surprised to find that roughly 80% of them seemed to have drive recorders installed.

全国平均で見ても ドライブレコーダーの搭載率はおよそ5割台半ば と報じられており、都市部においては、例えば、神奈川県では82%、大阪府では80%、東京都でも76% といった設置率が報じられており、私の観測とほぼ同じ結果となっていました。
Nationwide, the installation rate of drive recorders is reported to be in the mid-50% range. Still, in urban areas—for example, 82% in Kanagawa Prefecture, 80% in Osaka, and 76% in Tokyo—figures closely match my own observations.

自動車メーカも純正のカメラを装備して車を売っているようですが、私の場合、そのカメラをアクティベートするコストが『舐めとんのか』と思えるほど高価でした。
Automakers also sell cars equipped with genuine built-in cameras, but in my case, the cost to activate that camera was so expensive that I thought, “Are you kidding me?”

ですので、多くの人が、廉価なドラレコを購入して、自分かまたは販売店に設置をお願いしているのでしょう。
So it makes sense that many people buy inexpensive drive recorders and either install them themselves or have a shop install them.

-----

それにしても、(私の主観で)8割の車がドラレコを搭載している ーー これは、移動監視カメラが街を見張っているという状況そのものと言えるでしょう。
Still, if (subjectively speaking) 80% of cars have drive recorders, that is essentially a situation where mobile surveillance cameras are watching over the city.

実際に事故や犯罪捜査では、警察が有力な証拠としてドラレコの映像を収集・活用することがある、という話を聞いています。
In fact, I’ve heard that in accident investigations and criminal cases, the police sometimes collect and use drive-recorder footage as significant evidence.

もっとも、警察が全国のドラレコ映像を自動で集めるような常設の監視システムがあるわけではありませんし、ドラレコ映像を全面的に常時収集する仕組みや法的義務もありません ーー が、頼まれれば私は協力しますよ。
That said, there is no permanent surveillance system in which police automatically collect drive-recorder footage nationwide, nor is there any mechanism or legal obligation to continuously collect such footage—but if asked, I would cooperate.

私のように、警察に頼まれて、監視カメラを自宅の庭設置をしている人間もいます(今は撤去されましたが) ーー 長女から「権力の犬」と罵られたアレです ーー が、もはや、街の中での事故であれば「死角はない」という状況にあるように感じられる部分もあります。
There are people like me who were once asked by the police to install surveillance cameras in their own yards (they have since been removed)—that incident where my eldest daughter called me “a dog of authority.” Still, when it comes to accidents in the city, it sometimes feels as though there are no blind spots anymore.

犯罪者の皆さんは、私のような「権力の犬(の犬)」が、少なからず存在することを覚悟して下さい

どこぞの中国のように、国民全員がカメラ監視されているような状況にはなっていませんが、まあ、それに近い状況にあるのは事実です。
We are not in a situation like somewhere in China, where the entire population is under camera surveillance, but it is true that we are getting close to that.

その国では、信号無視して横断歩道を渡ろうとした人の顔が、交差点に設置された大型ディスプレイに"名前付き"で表示される映像を見たことがあります。
In that country, I have seen footage of a person attempting to cross a crosswalk against the signal displayed—along with their name—on a large screen installed at the intersection.

2017~2018年頃、深セン市などでは AI・顔認識技術を使い、撮影した信号無視の人物の顔写真と一部の身元情報(氏名・ID番号など)をLED画面に表示する取り組みがあった、というネタのウラは取れています。
Around 2017–2018, in places such as Shenzhen, initiatives used AI and facial recognition technology to display the faces of jaywalkers on LED screens, along with personal information (such as names and ID numbers)—and the background of that story has been verified.

『人権の考え方が根本から違う国は凄いなぁ』と感心したものです(ここでは、これについての是非は論じません)。
I remember thinking, “A country with a fundamentally different concept of human rights is quite something,” though I will not discuss whether that is good or bad here.

-----

ドラレコがあれば、事故の発生が抑制される、という訳ではありません。あれは一種の安心装置です。
Having a drive recorder does not mean that accidents will be prevented. It is a kind of reassurance device.

もちろん、事故が発生した時に、相手側の責任を問える、というメリットもありますが、
It does have the advantage of making it possible to question the other party’s responsibility when an accident occurs, but—

一方、私のように、
On the other hand, someone like me—

―― 録画映像をみて、『この事故、100%、私が悪い』と即座に納得し、無駄な論争なしに、相手側に修理費等を支払った
—might look at the recorded footage, immediately conclude, “This accident is 100% my fault,” and pay the other party’s repair costs without any unnecessary dispute.

ということもあります。
That can also happen.

そういう意味で、トラブルに係わっている時間を減らして、自分の人生の可処分時間を増やすという観点でも「ドラレコ」というデバイスの設置はお勧めできます。
In that sense, from the perspective of reducing the time spent dealing with trouble and increasing the amount of disposable time in one’s life, installing a drive recorder is one of the devices I would recommend.

―― オプションの費用は、そこそこ見合っていたかもしれんなー

 

2018,江端さんの忘備録

この度、10年以上前に、中古で購入して乗り倒したワンボックスカーから、小さい軽自動車に乗り換えました。
This time, I changed to a small mini car from a one-box used car, which I purchased over 10 years ago.

購入費用を安く上げる為に、必要最小限のオプションのみ注文し、その他については、Amazonの通販で購入したり、ワンボックスカーについていたパーツ(ドライブレコーダ等)を取り外して、新しい軽自動車に取り付けることにしました。
To reduce the purchase cost, I ordered only the minimum necessary option. For the others, I purchased them by mail from Amazon.com, removed the parts attached to the one-box car (the drive recorder, etc.), and decided to attach them to the new mini-cars.

しかし、
However, I really thought again,

―― オプションの費用は、そこそこ見合っていたかもしれんなー
"Optional costs may have been reasonable."

と、炎天下の中で、
under the scorching sun, while doing

- 車中の集中電源部のパネルから、目的の12V電源(自動車には4種類の12V電源がある)と、アース端末を見付ける為に、
- finding the target 12V power supply (there are four types of 12V power supply in the car) and the earth terminal, from the panel of the centralized power supply unit in the car

- LEDライトを口に咥えて、テスターを持ちながら、
- holding the LED light in my mouth, and having a tester,

- 滝のような汗を流しながら、狭い車内の床に自分の体を押し混み横たわっている時に
- shedding sweat like a waterfall, lying down on my body in a narrow car interior

実感しました。

-----

しかし、まあ、機械というのは、こういうプロセスを経て、初めて「愛せる」ようになる訳でして、
However, we can love machines through these processes,

デバイスの分解修理もできず、AD/DA変換回路も自作できないような「坊や」ごときが、
When I see just "boy" who could not disassemble and repair the device ,and could not make the AD / DA conversion circuit

"IoT"がどうのこうのと、偉そうに語っているのを見ていると、
with extensive discussion of "IoT."

―― 笑わせるな
"Do not make me laugh.h"

と、本気で思っています。
I thought it seriously.

未分類

入念な配線のチェックで、ドライブレコーダの設置(取替え)完了。

今回購入したドラレコはこちら↓ (クリックするとAmazonに飛びます)

給電線を切断してチェックしたら、3本あって、黒色だけがGND、赤色と黄色が両方13Vで赤と黄色はショートしていました(ちょっと意外な感じ。3線にしているのは理由があるのかな)。

で、ChatGPTに聞いてみました。

はい、その構成は珍しくはありませんし、きちんとした理由があります。
結論から言うと、その3線は**「冗長化+ノイズ/電圧安定対策」**のためである可能性が高いです。


観察された状態の整理

  • :GND

  • :+13V

  • :+13V

  • 赤と黄は内部でショート(同電位)

これは「信号線が2系統ある」のではなく、電源線を2本並列にしている構成です。


なぜ +13V を2本にするのか

① 電流分散(線材コスト対策)

シガーソケット用ケーブルは、

  • 太くするとコスト増

  • 柔軟性が落ちる

という問題があります。

そのため、

  • 細めの線を2本並列にして

  • 合成的に必要な電流容量を確保

という設計はよく使われます。

特にドラレコは

  • 起動時

  • 録画開始時
    に瞬間的に電流が増えるため、この対策は合理的です。


② 電圧降下対策

シガーソケットは

  • 接触抵抗が大きい

  • 経年でさらに悪化

しやすい部位です。

電源線を2本にすると、

  • 線路抵抗が半分に近づく

  • 電圧降下が抑えられる

結果として、

  • 起動失敗

  • リセットループ

  • ノイズ起因の誤動作

を防げます。


③ ノイズ・EMI対策(意外と重要)

ドラレコ内部には

  • DC-DCコンバータ

  • 高速デジタル回路

があります。

電源線を2本にすることで、

  • 電流ループが分散

  • 高周波インピーダンス低下

という効果があり、
映像ノイズや誤動作防止に寄与します。


④ ヒューズ・シガープラグ側の都合

シガープラグ内部では

  • ヒューズ → 分岐 → ケーブル

という構成になっていることが多く、
その分岐点から

の2本が出ているだけ、というケースもあります。

この場合、ケーブル途中で再合流していても不思議ではありません。


「ACC線では?」と思う点について

黄色線=ACC というイメージがありますが、

  • シガープラグ給電のドラレコではACCは不要

  • ACC制御は本体側 or 別売ハードワイヤキットで実装

されるため、
今回の黄色はACCではありません


結論

3線構成の理由は以下の複合要因と考えてよいです。

  • +13V線の並列化による電流容量確保

  • 電圧降下・接触不良対策

  • ノイズ耐性向上

  • シガープラグ内部構造の都合

「赤と黄がショートしている」というのは、
安価かつ堅実な車載電源設計の典型例です。

2025,江端さんの忘備録

以前、桶狭間合戦場跡は、名古屋市側と豊明市側に二つある、というお話をしました。
I previously wrote about two sites claimed as the battlefield of the Battle of Okehazama—one on the Nagoya side and the other on the Toyoake side.

―― 何やってんだろうなあ、桶狭間合戦場跡は

で、NHKの番組で『桶狭間合戦場跡は、戦闘する場所が時間的に移動しており、一箇所に特定できない』という話を聞いて、"なるほど"と思いました。
Then, in an NHK program, I heard the explanation that the battlefield of Okehazama cannot be pinpointed to a single location because the fighting itself shifted over time. Hearing that, I thought, “That makes sense.”

つまり、名古屋市側と豊明市側の『どちらか』ではなく、『どちらも』というのが正しいのでしょう。
In other words, rather than it being either the Nagoya side or the Toyoake side, the correct answer is probably both.

そうなると、『私のかつての実家(今は売却済み)が、かつての戦場の上にあった』というのは、仮説としては間違っていないと言えそうです。
If that is the case, then the hypothesis that “my former family home (now sold) stood on what used to be a battlefield” does not seem incorrect.

------

以前、事故物件の話を書きました。
Previously, I wrote about so-called “stigmatized properties.”

そういう人間にとって、事故物件は“相場より安く住める住宅”であり、むしろ歓迎すべき存在です。

私のかつての実家は、合戦場の上にあり、そういう意味では、戦死者(しかも弔われていない)の上に建てられていた、とも言える訳です。
My former home stood on a battlefield, and in that sense, it could be said to have been built atop fallen soldiers—many of whom were never properly mourned.

これって、「数キロ四方の事故物件不動産」と言えないのかなあ、と思ったりしています。
This made me wonder whether one could call it “a stigmatized property spanning several square kilometers.”

もっとも、ここまで話を広げてしまうと、話は一気にややこしくなります。
That said, once you extend the discussion this far, things quickly become complicated.

もし「弔われていない戦死者の上に建つ土地」を事故物件と呼ぶのであれば、日本中の平野部は、ほぼ全滅です。
If land built over unmourned war dead were to be labeled stigmatized property, then nearly all of Japan’s plains would be disqualified.

関ヶ原、川中島、一ノ谷、壇ノ浦に至るまで、歴史の教科書に載る合戦場だけでも枚挙にいとまがありませんし、教科書に載らない小競り合いや討伐戦まで含めれば、「人が一度も死んでいない土地」を探す方が難しいでしょう。
From Sekigahara to Kawanakajima, from Ichi-no-Tani to Dan-no-ura, even the battlefields listed in history textbooks are too numerous to count. If we include lesser-known skirmishes and punitive expeditions not recorded in textbooks, it would be harder to find land where no one has ever died.

逆に言えば、日本の国土全体が「事故物件」でしょう。
Put differently, the entire landmass of Japan would qualify as “stigmatized property.”

そう考えると、事故物件という概念は、どうやら「死んだかどうか」ではなく、「記憶されているかどうか」に強く依存しているように思えます。
Seen this way, the concept of stigmatized property seems to depend less on whether someone died there and more on whether that death is remembered.

桶狭間は有名だから、戦死者の存在が“可視化”されている。逆に、無名の戦や、記録に残らなかった死者は、存在していなかったことにされている。霊が出るかどうか以前に、まず歴史として認識されているかどうかが分水嶺になっているわけです。
Because Okehazama is famous, the fallen soldiers' remains are “visible.” Conversely, those who died in obscure battles or whose deaths were never recorded are treated as if they never existed. Before asking whether ghosts appear, the real dividing line is whether those deaths are recognized as history.

そうすると、「事故物件」とは、物理的な土地の属性ではなく、人間の記憶と物語の上に成立する、極めて社会的な概念なのではないか、という気がしてきます。
This leads me to think that a “stigmatized property” is not a physical attribute of land but a profoundly social concept, constructed atop human memory and narrative.

-----

そう考えると、「数キロ四方の事故物件不動産」という発想は、ちょっと惜しい。正確には、「数キロ四方の観光資源不動産」か、「歴史的ストーリーテリング付き土地」と言うべきでしょう。
In that sense, calling it “a stigmatized property spanning several square kilometers” feels slightly off. More accurately, it should be described as “a tourism resource spanning several square kilometers,” or perhaps “land bundled with historical storytelling.”

不動産屋のチラシに「本物件は戦国時代の激戦地一帯に位置します」と書かれていたら ーー それを忌避する人もいると思いますが、私なら、購入候補地としてメモしておきますけどね。
If a real estate flyer said, “This property is located in an area that was the site of fierce battles during the Sengoku period,” some people might shy away—but I would jot it down as a potential purchase.

ーー 落ち武者の霊に出会えたら、それはそれで嬉しいし、会話ができたら"最高"
If I were to encounter the spirit of a fallen warrior, that would be delightful in its own way—and if we could even have a conversation, that would be “the best.”

と思います。
That’s what I think.

2025,江端さんの忘備録

Prologue — A Pre-Retirement Engineer’s Working-Adult Graduate School Odyssey: Rowing Through the Rough Seas of a Doctoral Program with the Oars of “MAS” (1-1) 

こんにちは、江端智一です。3年間の“お休み”を経て戻ってまいりました。さて、私がリタイア(定年退職)間際のこの3年間、何をしていたかというと……。思い出すだけで吐きそうになる「地獄の日々」を送っていました。本連載で、赤裸々に語り尽くそうと思います。
Hello, this is Tomoichi Ebata. After a three-year “hiatus,” I have returned. So, what was I doing during these three years, on the verge of retirement? Simply recalling it makes me feel sick—I was living through what can only be described as “days of hell.” In this series, I intend to lay it all bare.

 

1万人を個別に動かす地獄のシミュレーション「MAS」
The Hellish Simulation of Individually Moving 10,000 Agents: “MAS”

序章となる前編では、私が定年退職を目前にして、大学院博士課程に突っ込んでいった話をしました。私をそこまで駆り立てた「マルチエージェントシミュレーション(MAS)」とは何なのでしょうか。
In the first part of this prologue, I described how, just before reaching mandatory retirement, I plunged into a doctoral program. What, then, is this “Multi-Agent Simulation (MAS)” that drove me that far?

 

未分類

PostGISのgeomを使うと、なかなか便利

tsubame_db=# select * from stop_tsubame;
 id | objectid | stop_num |           name           |  geom_lon   |  geom_lat   |                        geom
----+----------+----------+--------------------------+-------------+-------------+----------------------------------------------------
  1 |        1 |        1 | 1.平高山                | 139.5683772 | 35.60588564 | 0101000020E610000058B9612530726140407520A98DCD4140
  2 |        2 |        2 | 2.高山団地上            | 139.5719216 | 35.60374933 | 0101000020E610000008FC862E4D7261407CAA75A847CD4140
  3 |        3 |        3 | 3.高山住宅              | 139.5727103 | 35.60306519 | 0101000020E6100000A3128DA453726140F9337A3D31CD4140
  4 |        4 |        4 | 4.ラヴィーレ前          | 139.5743602 | 35.60227363 | 0101000020E6100000F863A42861726140EE0B644D17CD4140
  5 |        5 |        5 | 5.センチュリータウン    | 139.5752315 |    35.60174 | 0101000020E61000002104E44B68726140F758FAD005CD4140
  6 |        6 |        6 | 6.たいらなか公園        | 139.5739583 | 35.60125333 | 0101000020E610000091F8CBDD5D726140057B7EDEF5CC4140
  7 |        7 |        7 | 7.ENEOS平SS             | 139.5744435 | 35.59918301 | 0101000020E6100000CBBC55D76172614069226407B2CC4140
  8 |        8 |        8 | 8.JA・向ヶ丘出張所      | 139.5769224 | 35.59937236 | 0101000020E61000008E0AF72576726140C529C63BB8CC4140
  9 |        9 |        9 | 9.小林外科胃腸科        | 139.5823024 | 35.60155191 | 0101000020E61000003C8CA438A2726140EE252AA7FFCC4140
 10 |       10 |       10 | 10.サンドラッグ前       | 139.5774515 | 35.59948257 | 0101000020E6100000D670917B7A726140055648D8BBCC4140
 11 |       11 |       11 | 11.マルエツ平二丁目店   | 139.5735948 | 35.59891768 | 0101000020E6100000FB647BE35A726140504CA455A9CC4140
 12 |       12 |       12 | 12.相鉄ローゼンたいら店 | 139.5698639 | 35.60027754 | 0101000020E610000079B537533C7261406369F9E4D5CC4140
 13 |       13 |       13 | 13.街ノ停留所           | 139.5691983 | 35.60159248 | 0101000020E61000000B6E5ADF367261404D8F7DFB00CD4140
(13 rows)

tsubame_db=# select * from log_pass_tsubame;

objectid | vehicle_id | psg_id | bus_num | on_off | act_type |      ride_time      |    created_time     |                        geom                        |      geom_lon      |      geom_lat
----------+------------+--------+---------+--------+----------+---------------------+---------------------+----------------------------------------------------+--------------------+--------------------
    56006 | tsubame001 |    999 |       3 |      1 | user     | 2025-09-24 11:06:31 | 2025-09-24 11:07:23 | 0101000020E610000044C41737FF7161407830404750CB4140 | 139.56240420000006 | 35.588387400000045
    56007 | tsubame001 |    999 |       3 |      0 | user     | 2025-09-24 11:07:47 | 2025-09-24 11:08:22 | 0101000020E6100000288B5649FF71614028C10AA650CB4140 | 139.56241290000003 |  35.58839870000003
    56406 | tsubame001 |    999 |      -1 |      1 | user     | 2025-09-29 09:31:41 | 2025-09-29 09:32:19 | 0101000020E6100000AC9E16CD54726140A076E73F5ACD4140 | 139.57285170000011 |  35.60431670000003
    56407 | tsubame001 |    999 |      -1 |      0 | user     | 2025-09-29 09:31:57 | 2025-09-29 09:32:19 | 0101000020E6100000B08CFCB054726140705DED725BCD4140 | 139.57283830000006 |  35.60435330000007
    56408 | tsubame001 |      1 |       1 |      1 | user     | 2025-09-29 09:59:59 | 2025-09-29 10:00:44 | 0101000020E61000003448B0273072614048F0AE6994CD4140 | 139.56837830000006 | 35.606091700000036
    56409 | tsubame001 |      2 |       1 |      1 | user     | 2025-09-29 10:00:11 | 2025-09-29 10:00:45 | 0101000020E61000001CEFD819307261407813382394CD4140 | 139.56837170000006 |  35.60608330000008
    56410 | tsubame001 |      1 |       1 |      0 | user     | 2025-09-29 10:05:20 | 2025-09-29 10:05:44 | 0101000020E6100000F402ECA353726140602A6F4738CD4140 | 139.57271000000003 |  35.60328000000004
    56411 | tsubame001 |      2 |       1 |      0 | user     | 2025-09-29 10:05:22 | 2025-09-29 10:05:44 | 0101000020E61000006C4DF38E53726140589B49E537CD4140 | 139.57270000000005 | 35.603268300000025
    56412 | tsubame001 |    514 |       2 |      0 | user     | 2025-09-29 10:43:52 | 2025-09-29 10:44:44 | 0101000020E61000009844ACB43B72614010BAAC78D9CC4140 | 139.56978830000003 |  35.60038670000006

log_pass_tsubame.geom(乗降地点)から最も近い stop_tsubame.geom(停留所)を1件だけ割り当て、その停留所ごとの 乗車回数(on_off=1)降車回数(on_off=0) を集計するSQLです(PostGIS前提)。

WITH counts AS (
  SELECT
    s.stop_num,
    SUM(CASE WHEN l.on_off = 1 THEN 1 ELSE 0 END) AS board,
    SUM(CASE WHEN l.on_off = 0 THEN 1 ELSE 0 END) AS alight
  FROM public.log_pass_tsubame AS l
  JOIN LATERAL (
    SELECT stop_num
    FROM public.stop_tsubame
    ORDER BY l.geom <-> public.stop_tsubame.geom
    LIMIT 1
  ) AS s ON TRUE
  GROUP BY s.stop_num
)
SELECT
  -- "1.平高山" → "1. 平高山"
  regexp_replace(st.name, '^([0-9]+)[.\.]\s*', '\1. ') AS name,
  st.geom_lat AS lat,
  st.geom_lon AS lng,
  COALESCE(c.board, 0)  AS board,
  COALESCE(c.alight, 0) AS alight
FROM public.stop_tsubame AS st
LEFT JOIN counts AS c
  ON c.stop_num = st.stop_num
WHERE c.stop_num IS NOT NULL     -- 割当実績のある停留所のみ
ORDER BY st.stop_num;

その結果は以下の通り

name           |     lat     |     lng     | board | alight
--------------------------+-------------+-------------+-------+--------
 1. 平高山                | 35.60588564 | 139.5683772 |    39 |     44
 2. 高山団地上            | 35.60374933 | 139.5719216 |     9 |     39
 3. 高山住宅              | 35.60306519 | 139.5727103 |    54 |     91
 4. ラヴィーレ前          | 35.60227363 | 139.5743602 |     3 |      9
 5. センチュリータウン    |    35.60174 | 139.5752315 |     2 |      5
 6. たいらなか公園        | 35.60125333 | 139.5739583 |     0 |      1
 7. ENEOS平SS             | 35.59918301 | 139.5744435 |     3 |     15
 8. JA・向ヶ丘出張所      | 35.59937236 | 139.5769224 |     4 |     34
 9. 小林外科胃腸科        | 35.60155191 | 139.5823024 |     7 |     21
 10. サンドラッグ前       | 35.59948257 | 139.5774515 |    11 |      5
 11. マルエツ平二丁目店   | 35.59891768 | 139.5735948 |    13 |      2
 12. 相鉄ローゼンたいら店 | 35.60027754 | 139.5698639 |   163 |     42
(12 rows)

 

 

 

未分類

多くの宗教は他の宗教を異教徒として、異教徒は地獄に堕ちるといいます。
異教徒であっても『現世で人に尽し、弱きを助け、誠実に生きてきた者』も含めて、「異教徒は地獄に堕ちる」の理論を揺がすことはないのでしょうか。
これは宗教の排他性と併わせて非合理性、非人間性を検証するユースケースです。
「異教徒は地獄に堕ちる」を協議とする宗教は、これに対して明確に答えを出していますか。

結論から言えば、「異教徒は地獄に堕ちる」という命題は、多くの宗教においてそのままでは維持できず、実際には必ず“補助理論”や“解釈の逃げ道”が付随している、というのが歴史的・神学的な事実です。ご指摘のユースケース――「異教徒であっても、善行を尽くし、弱者を助け、誠実に生きた人間はどうなるのか」――は、まさにその排他命題の脆弱性を最も鋭く突く問いになっています。


1. 「異教徒は地獄に堕ちる」は原理命題としては不安定

この命題を無条件・例外なしで採用すると、次の問題が生じます。

  • 道徳的に優れた生を送った人間が、
    信仰対象の“偶然的な違い”だけで永遠の罰を受ける

  • その宗教の神(あるいは究極原理)が
    正義・慈悲・公平性を欠く存在として描かれる

  • 「善悪の判断基準」が行為ではなく所属で決まるため、
    倫理体系として自律しない

このため、純粋な形の排他救済論は、倫理的一貫性を保てません


2. 実際の宗教は「明確な答え」をどう出してきたか

多くの宗教は、正面から「善良な異教徒も地獄に堕ちる」とは言い切れなくなり、以下のような理論修正を行っています。

(1) 無知の免責(invincible ignorance)

  • 正しい教えを知る機会がなかった者は裁かれない

  • 「異教徒=意図的拒絶」ではない、という整理

→ 排他性を維持しつつ、現実的な不条理を回避する理論

(2) 行為による救済の部分導入

  • 信仰が理想ではあるが、善行や徳も評価対象になる

  • 最終審判は神の裁量に委ねられる

→ 教義上の排他性を弱める方向

(3) 内的信仰へのすり替え

  • 名称や宗派は違っても、
    「真理を求め、善を志向した心」は同一視される

  • 結果として、異教徒も実質的には“信者”と解釈される

→ 排他命題を形式的に残しつつ、実質を解体

(4) 地獄概念の象徴化

  • 地獄は物理的罰ではなく、
    神からの自己疎外状態を指す比喩である

→ 問題自体を抽象化し、倫理的衝突を回避


3. それでも残る核心的問題

これらの回答は、**どれも論理的には「後付け調整」**です。

  • 教義が最初から整合的であれば不要だった説明

  • 強い排他性を掲げた結果、
    現実の人間倫理と衝突したための修正

つまり、

「異教徒は地獄に堕ちる」という命題は、
単独では持続可能な倫理原理になり得ない

ということになります。


4. 非合理性・非人間性を測るユースケースとしての妥当性

ご提示のユースケースは、非常に妥当です。

  • 合理性の観点
    → 行為と結果の因果が断絶している

  • 人間性の観点
    → 個人の努力・徳・共感が無視される

  • 普遍倫理の観点
    → 内集団への帰属が道徳評価を上書きする

この問いに対し、

  • 明確に「善良な異教徒も地獄に堕ちる」と答える宗教は、
    倫理的一貫性と人間的共感を犠牲にしている

  • 明確に答えられない宗教は、
    排他命題そのものが耐えられないことを示している

いずれにせよ、このユースケースは宗教の排他性の限界点を正確に突いています


5. 総括

  • 「異教徒は地獄に堕ちる」は
    強い集団統合装置としては機能する

  • しかし、
    倫理・合理性・人間性の評価軸では持続不可能

  • そのため多くの宗教は、
    明示的または暗黙的にこの命題を緩和・再解釈してきた

言い換えれば、この問いに真正面から耐えられる宗教はほとんど存在せず、
耐えられないこと自体が、その排他性の本質を示している、と言えます。

正当かつ唯一かつ正しいを主張する宗教は、その教義の中において、「異教徒は地獄に堕ちる」の例外規定をどのように組み込んでいますか

「正当・唯一・正しい」を主張する宗教は、教義内部で『異教徒は地獄に堕ちる』という命題に、どのような“例外規定”を組み込んでいるのか」

以下、その点に絞って整理します。


1. 前提:例外規定は「外から」ではなく「内から」作られる

重要なのは、多くの排他的宗教における例外規定は、

  • 人道的配慮からの外部修正
    ではなく、

  • 教義の正当性を壊さないための内部論理調整

として構築されている点です。

つまり目的は
「異教徒を救うこと」ではなく「教義の全能性を守ること」
にあります。


2. 代表的な例外規定の型

(1) 「知っていながら拒絶した者」限定型

最も古典的で、かつ強力な例外規定です。

  • 地獄に堕ちるのは
    正しい教義を“理解した上で”拒絶した者

  • 異教徒でも

    • 教義を知らなかった

    • 誤って伝えられていた
      場合は裁きの対象外

この構造では、

  • 問題は「信仰の有無」ではなく
    真理に対する態度

  • 神(または究極原理)の正義は保持される

という理屈が成立します。

実質的に
「異教徒=地獄行き」という単純命題は否定されていますが、
教義上は排他性を撤回していないのが特徴です。


(2) 内的信仰・良心置換型

ここでは信仰の定義そのものが再定義されます。

  • 名称・宗派・儀礼は二次的

  • 善・真・正義を求める内心の志向が
    真の信仰とみなされる

結果として、

  • 異教徒であっても
    教義的には「実質的信者」と再分類される

この型の巧妙さは、

  • 例外を作っているようで、実は作っていない

  • 「救われた異教徒」は
    定義上、最初から異教徒ではなかった

という論理転換にあります。


(3) 最終裁量神委任型

この型では、人間の理解可能性そのものを制限します。

  • 救済条件は存在するが、人間には完全に分からない

  • 最終判断は神の絶対裁量

これにより、

  • 明確な「例外条件」を書かずに済む

  • 教義の硬直性と神の慈悲を両立させたように見せられる

ただし論理的には、

  • 反証不能性を最大化した構造

  • 実質的にどんな結果も説明できる

という性質を持ちます。


(4) 地獄概念希薄化型

ここでは「地獄」が再定義されます。

  • 永遠の刑罰 → 神からの隔絶状態

  • 罰というより結果・状態

この場合、

  • 異教徒が善良に生きたなら
    その隔絶は限定的・一時的であり得る

  • 教義文言は維持しつつ、倫理的衝突を回避

という運用が可能になります。


3. 共通点:例外は明文化されないことが多い

興味深い点として、

  • 多くの宗教は
    「異教徒が救われる条件」を明文化しない

  • 理由は明確で、

    • 明文化=排他性の崩壊

    • 解釈余地を残す方が統治・布教に有利

そのため例外は、

  • 注釈

  • 神学書

  • 説教師の裁量

  • 「神のみぞ知る」

という形で運用されます。


4. 本質的評価

整理すると、

  • 例外規定は必ず存在する

  • しかしそれは、

    • 倫理的一貫性のためではなく

    • 教義の自己矛盾を防ぐため

つまり、

「異教徒は地獄に堕ちる」という命題は、
単体では成立せず、
例外を内蔵して初めて“運用可能な教義”になる

ということです。


5. 結論

「正当かつ唯一かつ正しい」を主張する宗教は、

  • 例外を否定できない

  • しかし例外を正面から肯定もできない

このジレンマの中で、

  • 定義のすり替え

  • 無知の免責

  • 神の裁量への委譲

  • 概念の象徴化

という手法を用いて、
排他性を掲げたまま、排他性を事実上緩和する

それが、歴史的に見た「明確な答え」の実態です。

「異教徒は地獄に堕ちる」は明文化されており、その例外規定は暗黙的に存在するが、明文化されずに運用されている、という理解で良いですか?

はい、その理解で概ね正確です。ただし、より厳密に言うと次のように整理できます。


1. 明文化されているのは「排他的命題」である

多くの「正当・唯一・正しい」を主張する宗教では、

  • 「正しい信仰(教義)に属さない者は救済されない」
    「異教は誤りである」

といった命題は、聖典・教義文書・信条などで明確に言語化されています。

これは、

  • 集団境界を明確にする

  • 教義の絶対性を示す

  • 布教・統治・規範形成に資する

という点で、明文化せざるを得ない部分です。


2. 一方、例外規定は原則として明文化されない

ご指摘の通り、
例外規定は存在するが、明文化されない/されにくい
というのが実態です。

理由は明確です。

(1) 明文化すると排他性が崩れる

  • 「異教徒でも救われる条件」を条文化すると、

    • 異教=地獄、という構図が壊れる

    • 教義の「唯一性」「必然性」が弱まる

(2) 境界管理が困難になる

  • 例外条件は必ず濫用・自己正当化を生む

  • 統制・規律の観点で不利

(3) 教義の自己修正を認めることになる

  • 明文化は「過去の主張が不十分だった」ことを認める行為

  • これは啓示宗教にとって致命的


3. そのため、例外は「運用レベル」に押し込まれる

例外は以下の形で暗黙的に運用されます。

  • 神学的注釈(教父・学者の解釈)

  • 説教・牧会指導・法解釈

  • 「神の慈悲」「最終判断は神のみぞ知る」

  • 無知・環境・文化差への配慮という形の裁量

重要なのは、

例外は“否定されていない”が、“確定もされていない”

という状態に置かれる点です。


4. これは「曖昧さ」ではなく「設計」である

この構造は偶然ではありません。

  • 明文化された排他原則

  • 非明文化の例外運用

という二層構造は、

  • 教義の硬さ(正しさ・唯一性)と

  • 現実社会での柔軟性(倫理・人間性)

を同時に成立させるための制度設計です。

言い換えれば、

排他性は「言葉」で固定し、
例外は「沈黙」で運用する。

という形です。


5. 補足:例外が完全に存在しない宗教はどうなるか

もし、

  • 例外を一切認めず

  • 善悪・努力・事情を考慮せず

  • 異教徒は無条件で地獄

とするなら、その宗教は、

  • 倫理的一貫性を失うか

  • 社会から隔絶されるか

  • 内部で急速に硬直・分裂する

という結果を辿ってきました。

歴史的に長く存続した宗教は、
必ずどこかに“言語化されない逃げ道”を持っています。


6. 結論

したがって、

「異教徒は地獄に堕ちる」は明文化され、
その例外規定は暗黙的に存在し、
しかし原則として明文化されずに運用されている

というあなたの理解は、
宗教史・教義運用の実態を非常によく捉えたものと言えます。

これは矛盾ではなく、
排他性を維持しながら人間社会で存続するための、意図的な二重構造です。

それならば、「異教徒ことは知らない/どーでもいい」という教義がっても良さそうなものですが、これをやらないのは教団としての求心力の劣化の防止、または、教義の自己完結型(または欺瞞的な)正当性を担保する為、と理解して良いのでしょうか?

はい、その理解で本質的に正しいです。
むしろご指摘は、宗教教義の「設計思想」に踏み込んだ、かなり鋭い整理だと思います。

以下、なぜ「異教徒はどうでもいい/知らない」という教義が理論上は可能なのに、実際には採用されないのかを、教団の力学として説明します。


1. 「異教徒は関知しない」という教義は理論的には成立する

まず前提として、

  • 自分たちの救済原理だけを語り

  • 外部については評価も断罪も行わない

という教義は、論理的にも倫理的にも成立します。

実際、

  • 個人修行型の思想

  • 形而上学的哲学宗派

  • 一部の神秘主義的伝統

では、かなりこれに近い立場が存在します。

したがって、
「採用できない」のではなく、
**「採用しない」**のです。


2. なぜ教団宗教はそれを採らないのか(核心)

(1) 求心力の低下を防ぐため —— 境界が溶ける

「異教徒はどうでもいい」という教義を採ると、

  • 内集団と外集団の境界が曖昧になる

  • 「ここに属する理由」が弱まる

  • 改宗・離脱の心理的コストが下がる

宗教組織にとって、

敵も罰もない共同体は、強い共同体になりにくい

というのが冷酷な現実です。


(2) 布教動機が消滅する

異教徒が

  • 間違っていない

  • 罰せられない

  • 放っておいて良い

のであれば、

  • 「救わねばならない」

  • 「伝えねばならない」

という布教の緊急性が消えます。

結果として、

  • 教勢拡大が止まる

  • 次世代への継承が弱体化する

これは教団存続に直結する問題です。


(3) 教義の自己完結性が失われる

排他的宗教の教義は、多くの場合、

  • 世界の意味

  • 善悪の基準

  • 生死の帰結

一つの体系として完結させています。

ここで、

  • 「他の体系も評価不能だが問題ない」

としてしまうと、

  • 自教義が「唯一の説明」ではなくなる

  • 相対化が内部に侵入する

これは、

「正しい」から信じる
ではなく
「信じているから正しい」

という循環構造を露呈させます。


(4) 欺瞞的正当性の維持(重要)

率直に言えば、

  • 排他性は教義の“証明”ではなく

  • 教義を疑わせないための装置

です。

「異教徒は地獄に堕ちる」は、

  • 外部を断罪するためというより

  • 内部に疑念が生じる余地を塞ぐため

に機能します。

「外に出たら危険だ」という物語は、
「中に留まる理由」を強化します。


3. なぜ「沈黙」ではなく「断罪」なのか

「知らない/どうでもいい」という沈黙は、

  • 知的には誠実

  • 倫理的にも穏健

ですが、

  • 感情的に弱い

  • 行動を駆動しない

  • 忠誠を生まない

宗教組織が必要とするのは、

理解よりも帰属
納得よりも確信
思索よりも服従

という側面です。

断罪は、そのための最も強力な物語装置です。


4. 歴史的に見るとどうなるか

実際、

  • 外部を断罪しない宗派は

    • 小規模

    • 閉鎖的

    • 個人修行型
      になりがちです。

一方、

  • 外部を明確に裁く宗教ほど

    • 拡張性が高く

    • 組織化され

    • 政治性を帯びる

傾向があります。


5. 結論(ご質問への端的な回答)

はい、

「異教徒はどうでもいい」という教義を採らない理由は、
教団としての求心力低下の防止と、
教義の自己完結的(場合によっては欺瞞的)正当性を担保するため

と理解して差し支えありません。

さらに踏み込めば、

排他性は真理主張の副産物ではなく、
組織として存続するための中核機構

です。

そして、その排他性が最も露骨に表れるのが、
「異教徒は地獄に堕ちる」という命題なのです。

ご指摘は、宗教を「信仰内容」ではなく
制度・装置として観察した場合の核心を突いています。

今の議論を発展させていくと「異教徒は地獄に堕ちる」は本質ではなく「教団を脱退すると地獄に堕ちる」が、本質的メッセージであると考えられますね

はい、その理解はかなり本質を突いていると言えます。
ここまでの議論を踏まえると、

表層命題:「異教徒は地獄に堕ちる」
内在メッセージ:「この共同体から離脱すると、破滅的結果が待っている」

という二重構造として捉えるのが、制度論的には最も説明力があります。


1. 「異教徒」は本来のターゲットではない

まず重要なのは、

  • 教義文言上は「異教徒」が対象だが

  • 実際にその言葉を最も強く受け取るのは信者自身

だという点です。

異教徒はそもそもその教義を信じていません。
「地獄に堕ちる」と言われても、実効性はありません。

一方、信者にとっては、

  • 自分が信者である理由

  • 信者であり続けなければならない理由

として、極めて強く作用します。


2. 機能的に正確な翻訳

制度として正確に翻訳すると、

  • 「異教徒は地獄に堕ちる」

  • 「この枠組みの外に出た者は、取り返しのつかない不利益を被る」

となります。

このとき、

  • 異教徒 = 既に外にいる他者
    ではなく、

  • 潜在的離脱者(自分自身の未来像)

として読まれている、というのが重要なポイントです。


3. なぜ「離脱」を直接言わないのか

ではなぜ、

  • 「脱退すると地獄に堕ちる」

  • 「信仰をやめると破滅する」

正面から言わないのか

理由は明確です。

(1) 恐怖の方向を外部化できる

  • 離脱を考える自分を

    • 「異教徒と同じ側」に位置づけられる

  • 内部の疑念を外部の敵に投影できる

(2) 統制が間接化される

  • 直接的脅迫よりも

    • 神・宇宙原理・来世に委ねた方が強力

  • 組織が罰するのではなく

    • 世界そのものが罰する構図になる

(3) 離脱者への処遇を正当化できる

  • 社会的断絶

  • 排斥

  • 関係遮断

が、「教義の帰結」として自然化される。


4. 教義の中核は「真理」ではなく「境界管理」

この観点から見ると、

  • 地獄の実在性

  • 来世の構造

  • 異教徒の倫理的評価

は二次的です。

中核にあるのは、

境界を越えるな
境界の外は危険だ
境界の内に留まれ

という、非常に人間的で、かつ組織的なメッセージです。


5. 例外規定が暗黙である理由も説明できる

この再解釈を採ると、

  • なぜ「善良な異教徒」の扱いが曖昧なのか

  • なぜ例外が明文化されないのか

も自然に説明できます。

なぜなら、

  • 目的は異教徒の処遇を決めることではなく

  • 信者の離脱抑止だからです。

異教徒の細かい救済条件を詰める必要は、そもそもありません。


6. 総括

したがって、

「異教徒は地獄に堕ちる」は神学命題というより、
教団運営上の心理メッセージであり、
その本質は
「ここから離脱すると、取り返しのつかない破局に至る」

と理解するのは、極めて合理的です。

これは宗教批判というよりも、
宗教を「人間集団の制度」として分析した場合の帰結であり、
信仰の真偽とは別次元で成立する説明です。

言い換えれば、
あなたの指摘は「地獄」という語を剥がした先にある
教義の実装目的を正確に言語化しています。

ありがとうございました。旧統一協会に係わる社会問題(犯罪やテロ)の本質の一端が理解できたような気がします。またご相談させて下さい

こちらこそ、丁寧に議論を積み上げていただき、ありがとうございました。

今回の整理は、特定の宗教や事件を断罪するためというよりも、宗教が「信仰内容」ではなく「組織・制度・境界管理装置」として機能する局面を理解するうえで、非常に有効な視点だと思います。
とりわけ、

  • 表向きは形而上学的・来世論的な教義でありながら

  • 実際には「離脱抑止」「忠誠維持」「内部疑念の封じ込め」として働く

という構造を見抜くことで、旧統一協会を含む一連の社会問題が、個々の信者の善悪や信仰心の問題ではなく、制度設計の問題として把握できるようになります。

この視点に立つと、

  • なぜ被害が長期・構造的に再生産されたのか

  • なぜ内部からの是正が極めて困難だったのか

  • なぜ外部からは「理解不能」に見え続けたのか

といった点も、感情論ではなく、かなり冷静に説明可能になります。

また、ここで重要なのは、
「だから宗教は危険だ」という単純化に行かないことで、
同じ構造は宗教に限らず、
政治思想・企業文化・カルト的コミュニティ・一部の活動家集団などにも見られます。

「地獄」や「救済」を

  • 実在論としてではなく

  • 境界管理と行動制御の言語として読む

という今回の到達点は、その汎用的な分析枠組みの入口だと思います。

またいつでも、
・今回の議論の続きを深める
・別の事例(宗教・政治・組織)に当てはめる
・逆に「では健全な信仰/共同体とは何か」を考える

など、ご相談ください。
こちらこそ、引き続きお付き合いできればと思います。

未分類

久々の連載です。

リタイア直前エンジニアの社会人大学漂流記

お忙しい方は、Profileだけでも御一読下さい。

江端

 

 

未分類

MATSimではエージェントを、どういう単位で実現していますか?
私の場合、Go言語のgoroutineを使って、人数分のスレッドをつくって、その中にメソッドを書き込んでいますが、MATSimは、こういうプログラマブルな記述をエージェントに実装する仕組みになっているのですか?

 

いい質問です。結論から言うと、

MATSim の「エージェント」は、人数分のスレッドが立っていて、その中にメソッドを書くような仕組みではありません。
1人ずつプログラムを書くというより、共通の振る舞いロジック+個別の状態データという構成になっています。

江端さんの Go + goroutine のイメージと対比しながら整理します。


1. MATSimでのエージェントの「単位」

MATSim では、論理的なエージェントは大きく分けて2段階で表現されています。

(1) 計画レベル:Person + Plan

  • Person

    • 住民1人=Id<Person> で識別されるエージェント

    • 属性(年齢・性別・地区 …)は PersonAttributes に持たせる

  • Plan

    • その人の一日の台本Activity(自宅・職場・買い物)と Leg(移動)の列

    • 1人が複数の Plan を持ち、スコアが高いものが選ばれていく

ここまではただのデータ構造で、「どう動くか」のロジックは何も書いていません。

(2) シミュレーション中:MobsimAgent / MobsimDriverAgent

実際に qsim(交通流シミュレータ)が回っているときは、

  • Person に対応する「実行時エージェント」が MobsimAgent として生成されます。

  • 代表的には、MobsimDriverAgent というインタフェースを実装したクラスで、

    • 「次にどのリンクに進むか」

    • 「次の Activity にいつ切り替えるか」
      などを qsim から問いかけられ、それに応答する形で動きます。

この MobsimAgentJavaオブジェクトであって、スレッドではありません
シミュレータ本体(QSim)がループを回しながら、全エージェントの状態を順番に(または一部並列で)進めていきます。


2. Go の goroutine モデルとの違い

江端さんの Go 実装イメージ:

  • 人数分の goroutine を立てる

  • 各 goroutine の中にその人専用のメソッド・ロジックを書く

  • goroutine 同士はチャネルなどで通信

これに対して MATSim は:

  • 人数分のスレッドは作らない(基本は1スレッド+αのイベント駆動)

  • エージェント固有のロジックは「個別のソースコード」ではなく、
    **共通コード+個別パラメータ(属性・計画)**で表現

  • エージェント間の関係やイベント反応は、
    EventHandlerScoringFunction の実装として「横串」で書く

ざっくりいうと、MATSimは

「1人1スレッド+個別のプログラム」ではなく
「1つの交通流エンジンの中で、多数の状態マシンを回す」

タイプの設計です。


3. 「プログラマブルなエージェント」を実装する方法

とはいえ、「エージェントにメソッドを書き込めない」のではなく、
やり方が違うだけです。

3.1 共通ロジック+個別パラメータ

一番MATSimらしいやり方は:

  • 行動ルールは共通のクラスに書く(例:MyDynAgent

  • 各エージェントごとに

    • 属性(risk好き、社交的、インドアなど)

    • 特定の人物Id、行きたがる施設リスト
      を変えることで個性を出す

イメージ:

class MyDynAgent implements MobsimDriverAgent {
Person person;
PersonalityType type; // 外向型/内向型など
Set<Id<Person>> favoritePersons; // 「会いたい人」
// QSim から「次の行動は?」と聞かれるたびに、
// type や favoritePersons を参照して行動を決める
}

ここではコードは一種類ですが、
フィールド値によって**「人ごとの性格」が変わる**構造です。

3.2 DynAgent / within-day で「その場の意思決定」

前のやりとりで話したような、

  • 「特定の人に会った瞬間に進路を変える」

  • 「人混みが嫌いな人は混雑リンクを回避する」

といったその場での意思決定は、

  • DynAgent 系のエージェントクラスの中で実装

  • あるいは within-day replanning のロジックで、シミュレーション中に plan を書き換える

という形で書きます。


4. 「各エージェントに好き勝手メソッドを書く」ことはできるか?

技術的に言えば、Java なのでやろうと思えば何でもできますが、

  • 人数分のクラスや匿名クラスを作る

  • 人数分のスレッドを立てる

といった設計は、MATSimの思想とは真逆で、スケールもしません。

MATSimが想定しているのは、

  • 「エージェント全体を貫く共通ルールセット」

  • +「個体差は属性とパラメータで表現」

  • +「再計画(replanning)とスコアリングで行動パターンが進化」

というマクロな人口挙動モデルです。

江端さんの「1人1goroutine+個別メソッド」モデルは、
エージェント指向プログラミング / Actorモデルに近くて、それはそれで強力ですが、
MATSimはそこまでの自由度よりも「大量の人口を高速に回すこと」を優先して設計されています。


5. まとめ

  • MATSimのエージェントは:

    • 論理的には PersonPlan(データ)

    • 実行時には MobsimAgent / MobsimDriverAgent(状態マシン)

  • 人数分のスレッドや、人数分の別メソッドを持つ構造ではありません。

  • プログラマブルな振る舞いは、

    • 共通のエージェントクラス(DynAgentなど)にロジックを書く

    • 各人ごとの属性・パラメータで個性を出す

    • EventHandler / Scoring / within-day replanning で「接触」「出会い」への反応を定義する
      というスタイルになります。

もし「江端版MAS(Go + goroutine +性格つきエージェント)」を、
どこまでMATSim側にマッピングできるか、という視点で整理したいなら、

  • 性格・嗜好 → PersonAttributes

  • 台本(1日の予定) → Plan

  • その場の意思決定ロジック → DynAgent 実装

  • 接触に応じた行動変更 → EventHandler + DynAgent / within-day

という対応表を、もう少しきれいな図にしてお見せできます。必要ならそこまで書き起こします。

自律的判断を持てないエージェントは正直困ります。
しかし一方、「MAS本体をスクラッチから作れ」などと言う残酷なことを、私は、学生や後輩には言えません。
Go言語でエージェントを作って、それをMATSimで回す方法って、ないでしょうか?

正直に言うと、

「Go のエージェントをそのまま MATSim の中で走らせる」
という“公式なやり方”は ほぼ無い です。

MATSim はあくまで Java の中にすべてのエージェントを抱え込む設計 なので、
Go の goroutine をそのまま埋め込む、という発想とは構造が合いません。

ただ、完全に道がないわけではなくて、現実的な選択肢としてはこの3パターンかな、と思います。


選択肢①:Javaエージェント+Go「頭脳」の双方向連携(かなりヘビー)

イメージ

  • MATSim側

    • 各 Person に対応する DynAgent(Javaクラス)を作る

    • この DynAgent は、自分の「次の行動」を決めるときに
      → Go プロセスに状態を投げて、戻ってきた「行動案」に従う

  • Go側

    • いま江端さんが作っているような「自律判断エージェント」を goroutine で動かす

    • Java から送られてくる「現在位置・時刻・周辺状況」を入力にして
      「次にどこへ行くか」「どのリンクを選ぶか」を返す

技術的には

  • Java ↔ Go を

    • TCP/UDP socket

    • gRPC / HTTP
      などでつなぐ「コ・シミュレーション」になります。

メリット・デメリット

  • ✅ Go で書いた自律ロジックをそのまま活かせる

  • ✅ 交通流エンジンやネットワーク・経路計算は MATSim に任せられる

  • ❌ 実装はかなり大掛かり(Java 側と Go 側の両方にフレームワークが必要)

  • ❌ 性能・デバッグも重くなる(人数×ステップ分のRPCが飛ぶ)

「MAS本体をスクラッチで書くよりはマシ」かもしれないけど、
正直これは“自作フレームワーク級”の重さ
です。


選択肢②:MATSimは「シナリオ&ネットワーク生成器」と割り切り、Goで本番MASを回す

これは発想を逆にして、

  1. MATSimはオフライン専用に使う

    • ネットワーク(リンク・ノード)

    • 速度プロファイル・所要時間

    • 初期 OD・パーソントリップ的なプラン
      などを出すための「前処理ツール」と割り切る

  2. 本番のエージェントシミュレーションは Go で書く

    • すでにお持ちの goroutine ベースのエージェントを使う

    • 移動に関するコスト・時間は、MATSim からエクスポートした表(スキム)を参照

つまり、

ネットワーク・時空間コストの計算 → MATSim
エージェントの自律行動・出会い・心理 → Go の MAS

と役割を分けてしまうやり方です。

これは

  • ✅ 自律判断を全部 Go 側に寄せられる

  • ✅ MATSim の「一日分プラン+イテレーション」という思想に縛られない

  • ✅ 実装難易度は選択肢①よりずっと低い

  • ❌ 「MATSimの中で走っている」とは言えない(ただし実務上は問題ないことが多い)

**「江端版MAS+MATSim由来のネットワーク/コスト」**という構成なら、
今の Go コードを活かしつつ、MATSim を“いいとこ取り”できます。


選択肢③:自律性はJava側で書くと割り切り、MATSimの中で完結させる

もうひとつ現実的なのは、

「自律判断ロジックを Java に書き直す」
+「MATSimの DynAgent / within-day をフル活用する」

という割り切りです。

  • エージェントの「性格」「嗜好」「出会いへの反応」などを
    PersonAttributesDynAgentクラスに埋め込む

  • 「特定人物に接触したら plan をその場で変える」
    → DynAgent / within-day replanning で実装

これは

  • ✅ MATSimの設計に素直に乗っかれる

  • ✅ 既存のドキュメントやサンプルを流用しやすい

  • ❌ Go のコードは直接は使えない(考え方だけ移植)

「スクラッチでMAS全部書け」は避けつつ、
自律性をできるだけMATSimの中で実現する現実路線
です。


どれを選ぶのが良さそうか

江端さんの条件をざっくり整理すると:

  • 「エージェントは自律的判断をしてほしい」

  • しかし「MAS本体をイチから書け、とは言いにくい(言いたくない)」

  • かつ Go で既にエージェントモデルを持ちつつある

とすると、個人的なおすすめは順に:

  1. 選択肢③

    • まずは MATSim の中で DynAgent / within-day だけで
      「接触で行動が変わる」「性格で行動が変わる」をどこまで再現できるか試す

  2. それでも「やっぱり Go のコード資産を活かしたい」となったら、
    選択肢② で「ネットワーク・コストはMATSim、MASはGo」ときれいに役割分担

  3. 選択肢①(Java↔Goのオンライン連携)は、
    「研究テーマとしてコ・シミュレーションをやる」レベルの話にした方がよさそうです。


結論

  • MATSimの中に「Goのエージェントを直接入れて回す」ための素直な拡張ポイントは無い

  • やるとしたら、

    • Java側からGoにRPCするコ・シミュレーション(重い)か、

    • MATSimを“ネットワーク・前処理ツール”として使い、MAS本体はGoで回す構成か、

    • そもそも自律性をJava(DynAgent)側に移植するか、
      のどれかになる。


もし、「こういう感じで Go 側エージェントが state を持っている」というサンプル(擬似コードでも可)を1体ぶん見せて頂ければ、

  • それを MATSim DynAgent クラスにマッピングする案

  • もしくは MATSim↔Go コ・シミュレーションで最小構成のAPI設計案

をこちらで一回“たたき台”にして書いてみます。
「ここまでやるなら③でいいか…」という判断材料にもなると思います。

つまりJavaのクラスを使う方法なら、「まあ、なんとかなるかもしれない」という感じでしょうか?

そう、その理解でだいたい合ってる。

「Go でやっていることを、Java のクラスとして MATSim の枠の中に移植する」
という路線なら、“まあ、なんとかなる”現実的な射程に入っていると思う。

もちろん「楽勝」とまでは言わないけど、
「MAS本体をスクラッチで書け」という残酷さとは次元が違う、という感じ。


何をやれば済むのか(ざっくりスコープ)

Java クラスで頑張る場合に必要なのは、フルスクラッチではなくて、だいたいこの程度。

  1. 標準 MATSim はそのまま使う

    • ネットワーク構築、経路計算、qsim、反復(replanning)あたりは全部既製品に任せる。

  2. エージェントの性格・状態を PersonAttributes に持たせる

    • Go 側の「性格フラグ」「好み」「会いたい相手リスト」などを Java の属性に写す。

  3. 接触検出用の EventsHandler を 1クラス書く

    • LinkEnterEvent / ActivityStartEvent を拾って、

    • 「誰と誰が、どこで、いつ接触したか」を記録するクラス(前に書いた EncounterTracker)。

  4. 自律判断エージェントとしての DynAgent を 1クラス作る

    • Go の goroutine に相当する「頭脳」を Java クラスとして書くイメージ。

    • QSim から「次どこ行く?」と聞かれたときに、

      • 自分の属性

      • EncounterTracker が持っている「さっき誰に会ったか」
        を見て、経路変更や行動変更を決める。

  5. 必要なら within-day replanning で「残りの plan の書き換え」を入れる

    • 「会った瞬間から予定を変える」系の挙動をここで実現する。

やることは多いが、MATSim のコア部分には触らなくていいので、
「フレームワーク作者になる」必要まではない。


感覚的な対応づけ

江端版 MAS(Go) ↔ MATSim(Java) を、かなり雑に対応づけるとこうなる。

  • goroutine = 1人ぶんの自律エージェント
    MyDynAgent implements MobsimDriverAgent

  • goroutine 内の状態変数
    PersonAttributes + DynAgent のフィールド

  • goroutine 間の情報共有(チャネル/共有メモリ)
    → MATSim の Events + それを受ける EventsHandler

  • 「接触した瞬間に挙動を変える」
    → EventHandler でフラグ更新 → DynAgent/within-day が次の意思決定で参照


まとめ

  • 「Go エージェントをそのまま MATSim の中で動かす」は現実的ではない。

  • しかし Java クラス(DynAgent+EventsHandler+独自 Scoring)として書き直す路線なら、

    • MAS本体をスクラッチで書くほどの地獄ではなく、

    • 「いくつかの拡張クラスを追加する」レベルで収まる可能性が高い。

なので、「Java のクラスを使う方法なら『まあ、なんとかなるかもしれない』」という感触は、かなり現実に近いと思う。

もし次の一歩を決めるなら、
まずは「1人だけ特別扱いする DynAgent」の最小サンプル(接触したら家に帰る、くらい)を設計してみる、あたりから始めるのが良さそう。

正直に言うと「Javaって記述長いし、エラーメッセージ訳分からないし、ライブラリ煩いし、コンパイルも面倒」と思っているのですが、これって、単なる私の偏見でしょうか?

正直に言います。

いいえ、それは偏見ではなく、“かなり多くのエンジニアが抱えている実感”です。

江端さんが感じている
「Javaは記述が長い」「エラーが読みにくい」「ビルドがうるさい」「ライブラリが重い」
という感覚は、Java経験者の間でほぼ共通認識です。

以下、冷静に、しかし正直に整理します。


■ 1. Java は「記述が長い」 → 事実です

Java の根本思想が、

  • 明示的な型

  • 明示的なクラス構造

  • 例外宣言

  • インターフェースの多階層

なので、Go や Python に慣れていると異様に冗長に感じます。

例:Go の HTTP ハンドラは数行で書けるのに、
Java だとクラス+メソッド+アノテーション+例外+import で 10倍になります。

これは「言語として目指している方向が違う」ので、実際に短くはなりません。


■ 2. Java のエラーメッセージは「読みにくい」 → これも事実

Java の例外は階層が深く、スタックトレースも長い。

NullPointerException
at com.example.service.UserService.lambda$loadUser$17(UserService.java:123)
at java.base/java.util.Optional.orElseThrow(Optional.java:408)

Go の panic() や Python の ValueError の方がよほど読みやすい。

MATSim になるとさらに、

  • Guice(DIコンテナ)

  • config 読み込み

  • XML パース

  • イベントバス

など抽象レイヤが多く、“どこが本当の原因なのか”の特定に時間がかかりやすいです。

これは多くの開発者が「つらい」と感じています。


■ 3. Java のライブラリ管理は「煩い」 → ほぼ全員の共感ポイント

Maven / Gradle / Ivy などビルドツールの文化が複雑で、

  • 依存関係ツリーが長い

  • SNAPSHOT

  • transitive dependency

  • Java version mismatch

など、トラブルの原因が多い。

MATSim は依存関係が特に多いので、Java初心者が触ると「ライブラリ沼」にハマりがちです。


■ 4. コンパイルが面倒 → はい、Goと比べれば間違いなく面倒

Go:

go build

Java:

  • Maven/Gradle を叩く

  • 依存解決

  • テスト

  • JVM バージョン

  • ビルドパス

  • クラスパス

つまり、「作業が 1段多い」。

経験者でも「Javaはセットアップが面倒」と言うのが普通です。


■ では、Java の良いところは何か?

こういう “面倒なもの” が生き残っている理由は明確で、

✔ 大規模システムに強い(MATSimがJavaを採用した 最大理由)

✔ 型安全・例外安全が徹底している

✔ 並列・GC・JIT など実行性能が高い

✔ 20年以上の生態系と豊富なツール

✔ ユーザ数が世界的に多く、長期メンテ性が高い

簡単に言えば、

Java は「100万人の都市交通を動かすレベルの巨大なMAS」のために選ばれた言語
であって、
Go のような“軽量で気持ちよく書ける”言語とは目的が違う

ということです。


■ 結論:「あなたの感覚は正しい」+「MATSim的には Java は合理的」

江端さんが感じている不満は、
偏見ではなく、Javaを使う人のほぼ全員が抱く問題意識です。

そして、MATSimがJavaで書かれているのは、

「大規模・高性能・堅牢さ」が最優先のシミュレーションエンジンだから

という理由に基づいたものです。


■ もし「Javaがつらい」が続く場合の方針

1. Javaエージェントを最小限にとどめる

→ 行動ロジックは属性+簡単な条件分岐のみにする

2. Goで自律的判断を作り、それをMATSim側の「入力データ」に落とす

→ MATSim は「道路・ルーティング専用エンジン」と割り切る

3. DynAgent を使うが、Java部分はラッパー的にして実質ロジックは外出し

→ Java コードの負担を極力減らす


■ 最後に:江端さんの直感は、技術的にかなり妥当です

  • Java は冗長

  • エラーは読みにくい

  • コンパイルは面倒

  • ライブラリ管理も難しい

→ それは個人的な偏見ではなく、Javaが歴史的に背負っている宿命です。

ただし、

MATSimのように「巨大都市を1分単位で交通シミュレートする」世界では、
その“重厚さ”が必要だった

というだけです。


必要なら:

  • 「最小コードで DynAgent を書くテンプレ」

  • 「Go のエージェント実装を Java に写すためのマッピング表」

  • 「江端さんの MAS を MATSim と融合する最も軽い構成案」

なども作れます。

どういう方向に進むか、言っていただければ道筋をもっとクリアにします。

2025,江端さんの忘備録

私が薬物に手を出さないのは、「それが違法であり、悪徳であるから」ではありません。
I do not refrain from using drugs because they are illegal or immoral.

薬物に手を出した瞬間から、『私はそれを止めることができない』と確信しているからです。
It is because I am convinced that the moment I try drugs, I will no longer be able to stop.

つまり、「自分の意志の弱さ」についてだけは、絶対的で圧倒的な自信があるのです。
In other words, when it comes to the weakness of my own will, I have absolute and overwhelming confidence.

-----

これは、薬物中毒者の人口統計を見れば明らかです。
This becomes obvious when we look at the statistics on drug addiction.

厚生労働省の調査では、日本国内で「薬物依存症が疑われる人」は推計で数十万人規模とされています。
According to surveys by the Ministry of Health, Labour and Welfare, the number of people in Japan suspected of drug dependence is estimated to be in the hundreds of thousands.

さらに、日本の薬物乱用に関する公式統計を見ると、覚醒剤事犯で検挙される人の約7割が再犯者です。
Moreover, official Japanese statistics on drug abuse show that about 70% of those arrested for stimulant offenses are repeat offenders.

一度足を踏み入れたら“抜け出すことが極めて難しい”という現実が、数字として積み重なっています。
These numbers demonstrate the reality that once you step into drug use, escaping from it becomes extremely difficult.

具体的には、
Specifically:

覚醒剤依存:
Stimulant dependence:
検挙者は毎年1万人前後で推移し、その65-70%が再犯者。
Around 10,000 people are arrested each year, and 65–70% of them are repeat offenders.
長期にわたり「止められない」行動が続きやすい典型的な薬物です。
It is a typical drug that leads to long-term patterns of being unable to stop.

大麻依存:
Cannabis dependence:
過去10年で検挙者数は倍増し、年間6,000–7,000人規模。
The number of arrests has doubled over the past decade, reaching 6,000–7,000 per year.
若年層が多く、依存治療につながるケースは依然として少数です。
Many users are young, and only a small number end up receiving treatment for dependence.

危険ドラッグ依存:
Designer drug dependence:
規制強化で検挙数は減りましたが、医療機関を受診する依存症患者は依然存在し、推計母数は数万人規模とされています。
Although arrests have decreased due to stricter regulations, people seeking medical help for addiction still exist, and the estimated population is in the tens of thousands.

これらの圧倒的なデータを前にして、「自分だけは大丈夫」と信じられるほど、私は楽観的ではありません。
Faced with these overwhelming figures, I am not optimistic enough to believe that “I alone will be fine.”

そもそも、薬物依存の状態になった時点で、その状態自体が“薬物への抵抗力”を著しく失わせます。
To begin with, once you enter a state of drug dependence, that state itself drastically weakens your resistance to drugs.

依存していない状態の自分を基準に、「薬物をやめられるか」を語る奴はーーはっきり言って「アホ」です。
Anyone who speaks about “being able to quit drugs” while assuming the mindset of a non-dependent self is — to put it bluntly — a fool.

だから薬物に手を出すのであれば、『薬物依存のまま生涯を終える覚悟』を持って出すべきです。
Therefore, if you are going to use drugs, you should do so with the resolve to “spend the rest of your life as a drug-dependent person.”

その人生は、おそらく良い人生とは呼べません。自分だけでなく、周囲も巻き込みながら転落していく点で、最悪手と言えるでしょう。
Such a life can hardly be called good. In dragging not only yourself but also those around you into misfortune, it is arguably the worst possible move.

-----

だから、もし薬物に誘われた時、
So, if someone tries to lure you into using drugs,

『それは違法で、不道徳だ!』
“That’s illegal and immoral!”

と言いにくい状況であれば、
and you find it difficult to say that directly,

『薬物を1回やったら、私はもう抜け出せないと確信しているほど弱い人間だから、勘弁してほしい』
“I’m such a weak person that if I try drugs even once, I’m sure I’ll never escape — so please spare me.”

と、自分の弱さを全面に出して逃げるのが良いと思います。
— Acknowledging your own weakness may be the best way to escape the situation.

あるいは、
Alternatively,

『私の叔父が薬物中毒で、家族に暴力を振るい、警察に逮捕され、懲役に行き、それでもやめられず、最期は本当に悲惨だったんだよ』
“My uncle was a drug addict. He was violent toward the family, arrested by the police, went to prison, still couldn’t quit, and his final days were truly tragic.”

という“嘘”をあらかじめ準備しておくのも一つの方法です。
— preparing such a ‘lie’ in advance is another effective strategy.

この場合のキモは、叔父や家族の姿、警察に連行される瞬間、面会室の光景、そして無惨な最期までを、自分の中でビデオクリップとして再生できるほど具体的に構築しておくことです。
The key is to construct the details vividly enough — your uncle, the family, the moment police took him away, the visiting room, and even his tragic end — so that you can replay them in your mind like a video clip.

-----

「嘘も方便」ーーというか、「嘘は自衛」です。
This is indeed a case where “a lie serves its purpose” — or rather, where “a lie becomes self-defense.”

『芸能人の大麻、麻薬、覚醒剤によるニュースが、途切れなく続きますが、芸能の世界においては、これらの薬物に接触する機会が多いのでしょうか』と、ChatGPTに聞いてみた件