感染シミュレータ(ゲーム) 

Ver0.91
フリーソフト(ソース同梱)
稼働OS:Windows 11/10/8.1/7/Vista (64bit版)
並列処理化につきコア数の多いCPU推奨
注:本シミュレータの結果と実際は一致するものではありません。
傾向が参考にできるようであれば御の字です。


グラフ表示とか些細なバグがいくつか見つかったので2022年5月以降一端公開中止していました。
本質的な部分ではなかったのですが、「マスク着用率」を「感染対策者率」という表現に変更したり... ようやく修正したので2025年8月(Ver0.90)より公開します。

※謝辞:今回の再開に際しChat-GPT(Open-AI)さんとCopilot(Microsoft)さんから大変的確なアドバイスと励ましをいただきました。 これが一番の推進力になりました。m(_._)m

必要であればソースも同梱していますので自由に改変してご利用ください。 修正方法は一部ヘルプに記載しています。
修正用開発言語(C++)は、マイクロソフトが無償提供している Visual Studio Communityをご利用下さい。


ダウンロード:kss091.zip(166,085Byte) → ヘルプ
ダウンロードして解凍後、kss.exe を実行すると起動します。

 最初の1回目は、セキュリティーチェックで様々なメッセージが出る場合があります。 (必要であれば解凍フォルダをウイルスチェックWindowsDefenderなどしたのち)、
警告解除してご利用下さい。
「WindowsによってPCが保護されました」「Windows SmartScreenは認識されないアプリの起動を停止しました...」などの警告ダイアログが出る場合、 「詳細情報」に進み「実行」をクリックして下さい。

[Ver0.90 → Ver0.91による機能追加/改善点]
・変異モードでシミュレーション中の変異中断/再開(C-Key)機能追加
・変異モードでシミュレーション中に人為変異株の投入(H-Key)機能追加
  ※人為変異株の定義は初期設定ファイルにて指定可能に
・各変異属性の変異幅を初期設定ファイルにて指定可能に
 サンプル(kss.ini)内の記述が間違っていました。
  免疫維持日数の変異単位を定義する以下の記述に誤りがありました。
  誤: EFFECTIVE DAYS(MUTATION VALUE) =5
  正: EFFECTIVE DAYS(MUTATION UNIT) =5

・免疫減衰率(%)/親等を初期設定ファイルにて指定可能に
・変異率を初期設定ファイルにて指定可能に
・mutation.txtのpeek陽性者数間違いの解消
・エリア破壊(表面化せず)の解消(環境によってはグラフの青線が緑に)
etc...
※各種設定方法は初期設定ファイル(F2キー)を参照して下さい。



[本シミュレータ(仮想コロニー)環境における結論(仮説)]

新規感染者数/(日)の周期 ≒ (免疫維持日数×2) ±β

*免疫維持日数
(個体差無しを前提)
感染後回復して陰性化した日から感染を防ぐレベルの免疫を維持している日数
ウイルスの種類ごとに異なるので、ウイルス側の属性として捉える
感染期間(=陽性期間)
(個体差無しを前提)
感染して陽性化してから陰性化(回復/免疫獲得)するまでの日数
免疫システム(抗体など)準備工程期間
潜伏期間
(個体差無しを前提)
感染しているが気が付かない期間
むしろこの期間の後半は他人に移しやすい?
感染率
(個体差無しを前提)
濃厚接触時の感染率
感染対策者率 自身が感染していても他人に感染させない人の率(マスク常時着用など)
*+α 感染期間?
条件によって若干異なる感触あり?
*±β 気温,湿度,季節,北半球/南半球,周期的イベントなどの外部要因
インフルエンザなんかは時期補正がかかってないか?
※感染者数周期はおおむね免疫維持日数の倍数?
※感染率や感染対策者率は振幅(ピーク)の高さには影響するが周期にはほとんど影響していない。 ただし周期性が保てるか崩れるかの条件には影響する。
※新型コロナの流行には季節性なくほぼβ=0、4〜5か月周期
★Copilot(Think Deepr)さんの見解
マクロ経済の典型モデル。
新規感染者数の周期がおおよそ「免疫維持日数×2+感染期間(曝露から陰性化まで)」の形で現れるのは、 SIRS/SEIRSモデルの固有振動数に起因するものであり、そこに定数やルートがかかる形で「係数的な歪み」が生じるのは妥当な挙動。 免疫学分野でも昔から、免疫維持日数を考慮した研究は多々あるが、 現状では前提や初期条件/各種属性値で統一した見解が得られていない。

[変異機能(おまけ機能)について]
 本シミュレータは、とりあえず36500日(100年)分のシミュレーションをするようにプログラムを作っていますが (ソースをちょこっといじってくれれば、どうにでも変更可)、 100年経たのちどのような変異のものが残っているかを見ると、結構興味深い結果を見せてくれます。 起動後「C」キーで変異モードになりますので、そこで「G」キー(実行)してみて下さい。
 変異と言っても、塩基配列のコピーミスには着目していません。 あくまでも本シミュレータで扱っているウイルス側の各種属性値を、 乱数を利用しながらある確率で増減させ、残るものは残り、消えるものは消えてもらう、 最後に何が残るかという勝ち負け競争でもありません。 全滅もあれば、ウイルスで飽和される場合もあります。 結果も予測不能です。
 素人(ゲームプログラマー)の観点で意外だったのが、変異属性の中で「免疫維持日数」がまあまあ中立で、 以下のケースAを除くと増減は一方的にはならないことです。 感覚的には減る方向の方が都合が良いように思いましたが、そうでもないような....
 また、一般的に弱毒化して行くという話をよく耳にしますが、 本感染シミュレータのウイルス属性である「感染者致死率」と「無症状者率」がどうなるか? 一見、致死率が減り、無症状者率は上がる傾向をイメージしていましたが、 結果は「致死率」はほぼ中立でちょっと意外な結果に、感染者を増やすのに都合が良い「無症状者率」に関しては増加傾向、 同様に「接触時感染率」「感染期間」「潜伏日数」などは軒並み増加します。 ここは理解しやすいところです。

※本変異機能の結果はバグが絡んでいる可能性があります。
感染者率と免疫保有者率との関係で辻褄が合っていないような???
二転三転していますが現在検証中です。 Copilotさんたちのご意見では、現実で起きていることと矛盾しているわけではないとのことですが... なんとも...

いまのところ以下3パターンが確認できています。
※Copilot(Deep Reseach)さんにまとめていただきました。

@高系統距離による免疫崩壊 → 感染者飽和
(※免疫減衰処理(degree値処理)の効果が出過ぎたパターン)

・免疫減衰が強すぎると、免疫保持者が再感染者に分類される(※当初バグと勘違い)
・それでも新規感染は減る(飽和)
・無症状者率が高く、“感染しているが問題にならない”状態
※見方によっては典型的「ウイルスとの共存」モデルとも言えるか。
Copilot(Smart)さんとの遺伝子談義  (AIの皆さん本当に深堀されます)
 かなり遺伝学よりで、 昨今問題(海外で起きた遺伝子編集ベビー)になっていた「オフターゲット変異」や 「モザイク」のリスクについての話題になりましたが、 最終的に故意の遺伝子操作(変異)と自然変異の違いを、 何か視覚的に示せないかという方向に議論が発展し、 私(AKUBI)も全く同感で、何かできないかと...
 そこで「感染シミュレータ」を「変異モード」で100年分(最近のPCで約3〜4時間?)動作させ、 最後に一番勢力を持っている変異ウイルスについて考えてみました。上記グラフのケース@です。
 仮にあなたがウイルス側で、生前に自己遺伝子を操作できるとしたら 「100年後に繁栄しているんだから、今のうちに遺伝子操作してこのウイルスで生きれば楽勝だよね」 と考えるかもしれません。 しかし実際に本シミュレータで試すと、最初はたしかに順調に繁栄するのですが、 急激な拡大で宿主側の抗体保有率が急上昇し滅びることが多いです。 (※最終変異株の属性値を初期設定にしてお試し下さい。)
 100年後に勢力を伸ばしているものが、今も優れているとは限りません。 逆もまた然り。環境は常に変わり続けます。 自然変異が必ず優れたものを生むわけではありませんが、 長期的には自然変異に委ねるほうが無難である。 それが進化の宿命なのです。by Copilot(Smart) & AKUBI
 誤解のないように、「ウイルスが無くなること」=「宿主側の安泰」 というわけでもありません。既に常態菌化しているものが急に消えたらどうなるか... 生態系に思わぬ余波を起こすはずです。

生態系への脅威/船舶のバラスト水問題
森林伐採と地球温暖化の関係

生態系で人為操作した場合、
しばらくは激動時代が訪れます。
その余波は予測不能で、
犠牲も伴うかもしれません。
もちろん自分もその対象かもしれません。
しかし、うまく均衡を取る時代は訪れます。

定着したので仲良くしてね!

※本件に関しましては、Ver0.91で追加しましたC-Key(変異中断/再開機能)と、 H-Key(人為変異株投入機能)の双方を駆使して、いくつかのケースを検証してみました。 H-Keyを押してからのC-Keyを押すタイミングによって、現実ではあり得ない様々な環境を生み出せます。 少々慣れも必要で、もはやゲームのような感覚ですが... ノイズを可能な限り減らすため、移動制限率0%,感染対策者率0%にして試しています。
1.感染力の強い人為変異株を単独投入した場合、ほぼ100%ウイルスは消滅します。

2.人為変異株とその子供株(1親等)の2株を残すと、 かろうじて消滅を逃れている感じです。消滅してしまう場合もありました。
感染者率:約85% 免疫保持者率:約15% 新規感染者率:0.1〜0.2%

3.人為変異株の子供株同士(2親等)の2株を残すと、かなり安定し消滅することはないようです。 親株(H0/1親等)も途中まで残っていましたが、徐々に消えて行きます。
感染者率:90〜93% 免疫保持者率:7〜10% 新規感染者率:0.1〜0.2%

4.人為変異株の子供株同士(2親等)の3株を残すと、さらに安定し消滅することはないようです。 親株(H0/1親等)も途中まで残っていましたが、徐々に消えて行きます。
感染者率:92〜95% 免疫保持者率:5〜8% 新規感染者率:0.1〜0.2%

5.人為変異株投入後、変異継続(野放し)
感染者率:96.5〜98.5% 免疫保持者率:1.5〜3.5% 新規感染者率:0.1〜0.2%
3,4のケースで1親等の親株が静かに時間をかけて消えて行く様は、 なんとも言えない数理世界?の美しさを見せてくれます。 親等距離の短いのは、お役御免というところでしょうか。

※本シミュレータでの変異株間の系統距離は、 人で言うところの親等で代用しています。 この親等に比例して初期設定ファイル(KSS.ini)内の"DEGREE DECAY RATE"の割合で 免疫減衰させるという、もっともらしいかな?と思った妥協を入れています。 これしか思いつかなかっただけですが...

A 免疫維持日数ゼロの変異株の蔓延
(※免疫維持日数の変異幅が大きい場合に見られる/Ver0.91で確認可)

・免疫維持日数が乱数で極端に短くなると、免疫がほぼ機能しない株が登場
・それが広がると、免疫の意味がなくなる
・ただし、無症状者率が高く、実質的な害は少ない
これは「免疫の形骸化」と「ウイルスの弱毒化」が同時に進むパターン。
ウイルスが“空気のような存在”になる未来とも言える。

B 減衰率低+変異幅小 → 集団免疫成立
(※主に変異幅を縮小してシミュレーションした場合に多く見られる/Ver0.91で確認可)

・免疫が長く持続し、変異も穏やかなので、免疫保持者が増え続ける
・あるタイミングで感染者数が忽然と急減 → 周期消失
・集団免疫が成立し、感染が自然消滅
前触れなく忽然とウイルスが消える感じですが、 よく見ると直近では新規感染者数の波が急に高くなってきている状態。

このBのパターンに関しては、ついついゲームプログラマー的に見てしまい、 収束してしまうとゲームオーバーといような錯覚で、あれれってなりますが、 このパターンは理想的な収束パターンでバグではないですね。 いやバグか?どっちでもいいのですが、もしバグだとしたら、 バグ(変異の一種)のお陰もあってウイルスを撲滅できたという解釈でもいいと思います。

 免疫記憶/刷り込み,抗原原罪,交差免疫またその個人差や 集団になった時の役割など、免疫システム全体を厳密に掘り下げて考慮することは大変難しいことです。 中途半端なロジックは、逆にノイズを拾い過ぎて袋小路になると考えています。 最低限のフォローとしてDegree(親等)値をもとにした免疫減衰処理は入れています。
 ご興味ある方は、ぜひ同梱ソースを改変してご利用いただければと思います。 もともとあったバグ?を修正していただいてもいいですし、バグの上にバグを積み上げていただいても、 それはそれで新たな意外性のある均衡を見せてくれたりもします。 所詮いちコンピュータ内の混乱です。誰にも迷惑はかかりません。 ぜひ手を入れていただき、なにがしか示唆するものを感じ取っていただければと思います。 ちなみに進化圧はバグ(コピーミス)が原動力になっています。

詩人Copilot(クイック応答)さん評
『本シミュレータは、偶然と創発の上に成り立っています。
(生体)機能は結果論でしかありません。意味は、あとから生まれるものです。
進化とは、袋小路を含めた旅路です。どうぞ、力を抜いて観察してください。
バグも恐れずに。偶然を歓迎してください。』
なんとも哲学的ですね。


2025/09/12
AKUBI



[TOP]