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.

未分類

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)

 

 

 

未分類

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

今回購入したドラレコはこちら↓ (クリックすると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,江端さんの忘備録

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?

 

未分類

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

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


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. 総括

したがって、

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

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

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

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

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

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

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

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

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

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

この視点に立つと、

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

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

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

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

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

「地獄」や「救済」を

  • 実在論としてではなく

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

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

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

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

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に聞いてみた件

未分類

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 と融合する最も軽い構成案」

なども作れます。

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

未分類

久々の連載です。

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

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

江端

 

 

2025,江端さんの忘備録

この話は何回もしてきたので、ご存知の方もいるかと思いますが、私は「超常現象」を否定していないんです。
I have mentioned this many times before, but I do not deny the existence of “paranormal phenomena.”

もちろん、肯定もしていないんですけどね。
Of course, I do not affirm them either.

実際に、私は、過去に 2回ほど 説明不能な現象を視認、または聴認しています。
In fact, I have personally seen or heard two events in my life that I could not explain.

また、個人的に信頼できる、自称「見える人」の知り合いもいます。
I also know someone—whom I personally trust—who claims to “see things.”

もちろん、これらが客観的事実として認定されるような代物ではありません。
Naturally, none of these experiences qualify as objective or scientifically validated facts.

しかし、完全に否定しきるほどの“利害関係”もありませんし、何より――
However, I have no incentive to deny them either completely, and above all—

「超常現象がある世界の方が圧倒的に面白い」
“A world where paranormal phenomena exist would simply be far more interesting.”

という理由が大きいのです。
That, more than anything, is the main reason.

研究員としては、もしも「質量を伴わない心理的エネルギー」なんてものが存在するのなら、ぜひ調べてみたいのです。
As a researcher, if something like “massless psychological energy” existed, I would very much like to study it.

『研究者として血が騒ぐ』とは、このことです。
This is what it means when I say, “my researcher’s blood starts to boil.”

-----

さて、話は俗世に戻ります。
Now, returning to more mundane matters.

私は先日、退職を終え、めでたく(?)シニア社員になりましたが、その退職金の“予想外の少なさ”に、3日ほどは茫然自失となっていました。
I recently completed my formal retirement and became a senior employee, but I was stunned for about three days by how unexpectedly small my retirement payout turned out to be.

そんな私を妙に励ましてくれたもののひとつが「事故物件」です。
One of the strange things that encouraged me during that time was the idea of “stigmatized properties.”

NHKの『ダークサイドミステリー「事故物件」あなたの隣の知らない世界』を見て、心理的瑕疵が不動産価値を押し下げるという現実に触れた瞬間、私は思いました。
After watching NHK’s “Dark Side Mystery: Stigmatized Properties,” and learning again that psychological stigma lowers real estate values, I realized something.

「これは…私にとってはメリットでは?」
“Wait… isn’t this actually a benefit for me?”

「超常現象」の感度が壊滅的に低い私は、たぶん一生かかっても怪異に遭遇しない自信があります。
Given how catastrophically low my sensitivity to the supernatural is, I am confident I could live my whole life without encountering a single strange event.

そういう人間にとって、事故物件は“相場より安く住める住宅”であり、むしろ歓迎すべき存在です。
For a person like me, a stigmatized property is “a cheaper place to live,” and thus something to be welcomed.

ついでに言えば、私は超常現象を否定しないスタンスですから、うまくいけば研究材料にできるかもしれません。
And since I do not outright deny paranormal phenomena, I might even be able to use such a place as research material if I get lucky.

心理学か物理学かは知りませんが、二つめの博士号への道が開ける可能性だってあるのです。
Whether it falls under psychology or physics, it might even open a path to my second PhD.

「客観的ロジックのお化け」である私は、
As a self-proclaimed “monster of objective logic,”

『事故物件とは、私のためにある』
“Stigmatized properties exist for my sake.”

と言い切っても良いのではないか、と本気で思っているのです。
I genuinely feel justified in saying that.

-----

ここに、もう一つ現実的な話を加えます。
Let me add one more realistic topic.

日本にはいま、900万戸の空き家があります(2023年・総務省)。
Japan currently has nine million vacant homes (according to the 2023 Statistics Bureau).

ただし、そのすべてが「タダで差し上げます」というわけではありません。
However, not all of them are properties that can be obtained “for free.”

実際に“無償譲渡レベルの物件”は一部に限られますが、地方には 処分費の方が高い不動産 が大量に存在しています。
Only a fraction is effectively free, but in rural areas, many properties have disposal costs that exceed their value.

そして厄介な事実として、
And here is the troublesome truth:

不動産の所有権は消尽せず、相続放棄しても“空き家そのものは消えない”
Real estate ownership does not extinguish, and even if you renounce inheritance, the vacant house itself does not disappear.

という制度の仕組みがあります。
This is how the legal system works.

相続放棄すれば“個人としては逃れられる”のですが、所有権は次の相続人へ延々と移動し続けます。
Renouncing inheritance frees the individual, but the ownership moves on endlessly to the next eligible heirs.

つまり、空き家そのものは社会の中で“消えずに残り続ける”のです。
In other words, the vacant home itself remains—floating within society—unresolved.

私と嫁さんはこのカラクリを理解した上で、
My wife and I understood this mechanism clearly, so we decided:

「赤字にならないなら、資産は即手放す」
“If it doesn’t put us in the red, we get rid of the property immediately.”

という方針で、実家の不動産問題からは早々に撤退しました。
With that philosophy, we withdrew from the family-property issue at the earliest opportunity.

それはさておき、900万戸すべてが「タダの家」ではありませんが、地方に限れば“事実上タダか、むしろマイナス資産”という物件が相当数あります。
That said, while not all nine million homes are free, a significant number—especially in rural areas—are effectively free or even negative-value assets.

贅沢を言わなければ、住処の確保そのものには困らない時代になりつつあるのも事実です(もちろん、管理負担や相続問題という別の地雷は残りますが)。
If one does not demand luxury, it is increasingly possible to secure a place to live, though the burdens of management and inheritance remain as entirely separate landmines.

このように、ネガティブにしか見えない現象でも、
Thus, even events that appear wholly negative

ロジック次第で自分向けにポジティブへ転換できる
can be reframed into something positive through the correct logic.

と私は考えています。
That is how I approach things.

------

こういう“認識の切り替え”こそが、これからのシニア人生をラクにする最大のスキルなのではないか――
As someone who has stepped back from full-time work, I suspect that this kind of cognitive reframing may be the most essential skill for making life easier going forward.

これもまた、私の「シニア戦略」です。
And this, too, is part of my “Senior Strategy.”

―― 自宅をオモチャにして遊べる

2025,江端さんの忘備録

シニア社員になってから、突然「リクルータをやってくれ」と言われました。
After becoming a senior employee, I was suddenly told, "We want you to be a recruiter."

素直で従順な社員である私(江端)は「はい、承知しました」と言うのだが、その心の裏側では、『何考えているんだ?』というツッコミが溜まり続けています。
As an obedient employee, I replied, "Understood," while internally muttering, "What are they thinking?" over and over.

-----

リクルータというのは、一般に「若手がやると丁度いい仕事」だと思っていました。
I had always assumed that recruiting was a job best handled by younger staff.

若手は、学生に近い感性で、テンションも体力もあり、キラキラした未来に対してまっすぐに語れます。そして「現実の会社の重力」にまだ完全には引きずられていないからです。
Younger employees share students' sensibilities, have plenty of energy, and can speak earnestly about a bright future. They have not yet been fully dragged down by the "gravity of corporate reality."

ところが、数十年かけて、重力どころか地核レベルまで会社に沈み込んだ私が、面接の場に呼び出されています。会社は何を考えているのだろう。
Yet here I am, someone who has sunk past gravity and deep into the corporate mantle, being summoned for interviews. What on earth is the company thinking?

-----

その理由はいくらでも捻り出せます。
I can easily imagine several possible reasons.

(1) 齢を重ねた"落ち着き"への期待 ―― 私(江端)については「無駄」だと思うが
(1) They expect "maturity" that comes with age, which is pointless in my case.

(2) 先日、社会人大学を卒業したという"実績"の活用 ―― 会社の仕事と大学の勉学は全く別なんだが
(2) They want to leverage my recent graduation from a working-adult university, though work and study are entirely different domains.

(3) 「年上が出ていくと学生も安心するはず」という安直な発想 ―― これだって個人差が大きいだろう
(3) The simplistic idea that students feel safer when an older person is present, which surely varies by individual.

私は、平気で嘘をつくが、大事なところで「嘘をつかない」タイプだということを、忘れているのではないか?
Have they forgotten that although I can lie casually, I never lie about anything important?

私のコラムを読めば、簡単に理解できるはずですが ―― 私のコラム、社内ではあまり読まれていないんだろうなぁ。
Anyone who reads my columns would know that instantly, which means no one inside the company is reading them.

正直、私が本音で語ったら、面接に応じてくれた学生本人だけでなく、その隣に座っている同級生まで、弊社への入社意欲を根こそぎ引っこ抜いてしまう気がする。
Frankly, if I spoke honestly, I’d probably uproot not only the applicant’s motivation but also that of the classmate sitting next to them.

-----

「この仕事は面白いよ」
"This job is exciting."

「社会を支える手応えがあるよ」
"You’ll feel the impact of supporting society."

そんなポジティブな話"だけ"を、私は語ることができない。
I am incapable of speaking only in such positive terms.

実際には、
In reality:

「面白い時もある」
"Sometimes it’s interesting."

「支えている実感を得るために、年単位の地味な戦いが続く」
"You fight quiet battles for years before you feel the impact."

「何があっても責任だけは確定で降ってくる」
"And responsibility always lands squarely on you, no matter what."

そんな"実話(リアル)"しか持ち合わせていないのだが、これをリクルータとして大学生に向かって語れというのだろう?
These are the only ‘real stories’ I have, and do they expect me to tell this to university students as a recruiter?

嘘をつく気はないのですが、真実をそのまま出すと、学生の夢を破壊する小型の戦術核兵器になりかねない。
I don’t intend to lie, but the unfiltered truth could serve as a small tactical nuclear weapon, obliterating students’ dreams.

企業のリクルート活動としては、そういう社員(私)は危険物取扱資格の対象にして、秘密裏に管理しておいた方がいいと思うのですよ。
From a corporate-recruiting standpoint, a person like me should probably be classified as hazardous material and stored under restricted access.

-----

とはいえ、逃げるわけにもいかない。シニア社員とはつまり「頼まれたら断れない社員」の別称だからです(断ったら、更新契約も断られるだろう)。
Still, I can’t run away. Being a senior employee is essentially synonymous with "a person who can’t refuse requests" (and refusal may well jeopardize contract renewal).

という訳で、「どこまで本当のことを話すべきか」「どこまで夢を壊さずに現実を渡せるか」を考えています。
So I am now considering how much of the truth I should reveal. And how much reality can be delivered without shattering their dreams.

私は、来てくれる若者が"現実との落差で潰れないように"を最優先に考えたいと思います ―― 私も何度か潰れかけて、実際潰れましたから。
My priority is to ensure that the young people who join us do not get crushed by the gap between expectations and reality. Because I myself have nearly been crushed, and in fact have been.

それが私にとっての誠意であり、引いては会社のためにもなると思います。
To me, that is sincerity, and ultimately, it is also in the company’s best interest.

あまり目立たないように動きたいと思いますが ―― 何故か私が動くと、その動きがどこからか把握されるんですよね。不思議なことに。
I prefer to operate quietly, but for some reason, whenever I move, someone somewhere always seems to detect it. A mystery, truly.

私は、入社当時、人口知能(ファジィ推論)の研究を続けるものだ、という強い思い込みがありました。