フォーラム neorail.jp

【自由研究】の話題

 → 茨城県内で必要な「主論文・野帳・掲示物」とは? 【詳細】(2017/10/19) NEW!
 → 【自由研究】の記事一覧(新着順)


【研究ホワイトボックス】

研究を楽しく「追体験」! 真っ白のキャンバスに虹色の未来を描く方法、教えます。
R with Excel prcomp | kmeans・hclust | rpart | ggvoronoi | spantree NEW!


「A列車 色がおかしい」を越えて進もう


2020/4/1 - 最終更新:2020/4/29
フォーラムの目次に戻る
投稿者:tht(運営者による投稿)
Googleで関連画像を探す

[4011]

【ゲームで追体験する鉄道工学と鉄道史】 【A9R:データで遊ぶA列車】

きょうは県庁前でカツカレー。


Minimum Spanning Tree
「R with Excel」
「R with Excel」
「R with Excel」
「R with Excel」
「R with Excel」
「R with Excel」

(約9000字)

 みなさま「DATT-A9D」をじわりじわりとお楽しみでしたね。おもしろさが見えてくるまでにちょっと時間がかかるコンテンツだとは思います。(※恐縮です。)

[4000]
 > > 「餅すら描けない」みたいなことが起きていたらかなしいよ。

・「DATT-A9D」
 https://arx.neorail.jp/

 > 統計解析環境「R」を使うにはどのような数学の知識が必要ですか?:「高校数学程度の知識(行列・ベクトルの概念やΣの意味がわかるレベル)」で使えるとされています。逆に、「R」を使おうとすれば「行列・ベクトルの概念やΣの意味」がわかるようになると期待されます。

 もっと簡単なことしかしません。「R」のふいんきだけわかればじゅうぶん! …あざっす!! 簡単なのか難しいのかわからないままなんとなくやってみたのが『激むず!!』コースだったら泣くに泣けません。ちゃんと「簡単ですよ」と書いてあるコースから始めようではありませんか。…そのことに気づくのが難しいんですよ。▼「冴えてる4011の使いかた」については[3332]を見たと伝えるとスムーズです。(違)

・同「データで遊ぶ」
 https://arx.neorail.jp/experiment/

 > ここまで各マップごとに手作業で考えてきたことを一般化して自動化しよう
 > アルゴリズムを考えてみよう
 > アルゴリズムを考えてみよう
 > アルゴリズムを考えてみよう
 > アルゴリズムを考えてみよう
 > アルゴリズムをつくろう

※ここでいう「考えてみよう」とは、古今東西の有名なアルゴリズムの「使いかた」を工夫して、じぶんの目的で使ってみようということです。これはプログラミングではありません。単に「R」を使うだけでよいのです。

※ここでいう「つくろう」とは、古今東西の有名なアルゴリズムをそのまま使うのでなく、ちょっとした改良でもいいから何か改良を加えてみようということです。これはプログラミングであります。じぶんでアルゴリズムを実装できないといけませんし、アルゴリズムの正しさもじぶんで証明しなければなりません。それに、古今東西の有名なアルゴリズムをそのまま使うのでは何が具合が悪いのかも説明する必要があります。そのため古今東西の有名なアルゴリズムについて深く学ぶということにもなるわけです。

 うーん。「平地」の点群(というデータ)を使って、ふだん「えいや」で引くのと同じような路線を引けるアルゴリズムをつくれませんか。えー…(てんてんてん)。「つくろう」ではなく「考えてみよう」の範囲で何かやってみましょう。

[3868]
 > クラスターの数はいくつにしませうか。ここで、地形の複雑度が「2」なら「22=4」、「3」なら「23=8」かなぁ、という気配がありませんか。ありますよね。「地形の自動生成」を目の前で実行したわけでなく、すでにあるニューゲームのマップを使っているので「地形の複雑度」がどんぴしゃでわかるわけではないんですけれど、だいたい同じ気分で「2かな」「3かな」と考えて、2(※縦と横があるので2)をその数で累乗してプラス1くらいのクラスター数にすればいいのではありませんか。本当でしょうか。

 概念的に「4かな」と思えば「クラスター数は17つ」、「3かな」と思えば「クラスター数は9つ」、「2かな」と思えば「クラスター数は5つ」というようなことでございます。「1かな」と思えば「クラスター数は3つ」という、そこがたぶん最小の数になるのだろうと、たぶんこういうわけです。(※敬語)

 このときは「+1」したけれど、こんどは「−1」してみようと思った。

・「平地」を“田の字!”に4分割して、その1マスごとに駅を置くべき地点を決めようー(↑)みたいな

 げふ。

[3601]
 > やってきましたエキマエタクシー。
 > 未経験のわれわれはやまももコースからですな。

 やまももコースはいいぞ。(違)

[3667]
 > つれがひねくれをこじらせまして(違)
 > わあぃ三都物語®すればいいんですね、わかります。

 > 「2都!」では往復するしかなくてつまらんですばい。(棒読み)このゲームではマップが正方形で固定なので(※過去のバージョンでは面積が同じで細長いというマップもあったのです)、いかにして運行距離も長くしながら(地形や地勢とも対峙しながら)『3都(以上)!』を配置してみせるかというのが大きなテーマになってくるのですよ。まさに数学だよとはこのことだよ。

[3687]
 > むこうをはって「4都!」だぜ★ええーっ。そうすると中心の都市だけ大きくなって「1都!」になってしまうとか、4つとも均等でどれも大きくなく「0都!」に見えるとかって、ありません? …ぐふっ。(※何かが沈んだ音がする。)

 > その最小というか最大というかなんというか、いちばん何も考えないのが「マップの3つの隅に都市を配置」なんだね。

 そのような感触をすでに得ての本日このフォーラムであります。

・律儀にカクカクと4分割するとつまらない
・『平均すれば』マップに均等に駅が配置されるとよい
・4分割くらいの雑さで考えるときは「−1」して、3つの駅を配置すればいいんじゃないか

 げふ。

・じぶんでいろいろ書かなくても「k平均法(k-means)」でなんでもできるじゃないか

 画像の減色エンジンだってk-meansだというじゃないですか。(※伝聞)

・分割という言葉にとらわれる必要はなく、じゃあどんな形状なのかと考える必要もない、そのための点群(というデータ)ではなかったのですか

 …ギクッ。

・『「路線」は「平地」だけに引く』という、最もプリミティヴなかたちでの鉄道といふものを(以下略)

 …『ヴ』!!

・「平地」の点群をそのままk-meansしさえすれば(げふ)
・そのとき指定するクラスター数が、ここまでの文脈でいう「マップをn分割したマス目ごとに駅を配置」みたいな気分を表現するのである

 げふ!!

・あくまで本件ゲームでは線路を「22.5度」でしか引けない
・今回のアルゴリズムでは「線」までは引かず、路線網のノードを成す「ターミナル駅」「分岐駅」の位置だけを提案するところまで

 ありがとうございました。卒研での言い訳のようだ。(違)

[3652]
 > 板(マップ)に釘(駅)を打ってミシンのボビンみたいのを固定してから糸をかけて、はずみ車みたいなのでからからからと回すんだよね。…ええーっ。駅を共用していても、種別や路線ごと、あまつさえラッシュ時の増発や貨物列車ごとにそれぞれ、色の違う糸を同時にかけて、それ全体を、これまたそれぞれ異なる速度で同時に回すんだよね。…もっとええーっ。(あくまでイメージです。「頭の中であやとり」みたいなのを無理やり言語化すればこうなるよ、の意。「OuDia」を使いこなす人も、「OuDia」の画面ではなく「頭の中」はそういうことになってませんこと? あらあら、まあまあ!)終端の駅で折り返しというのも、行路もしくは「箱ダイヤ」([3640])のつながったのという意味で『輪っかの途中!』だととらえていれば、ことさらに『環状線がー(↑)』みたいなことを言う必要はないんですよ。うん。

 https://raisedonvideogames.files.wordpress.com/2012/01/78-01.gif
 https://epoch.jp/ty/yakyuban/history/lineup/195902.jpg

 釘だけ打とうカツカレー。(違)

 https://kotobank.jp/word/%E5%B9%B4%E8%B2%A2%E3%81%AE%E7%B4%8D%E3%82%81%E6%99%82-595870

 > 物事が最後に落ちつくべき時。見切りをつけるころ合い。納めどき。

 https://kotobank.jp/word/%E6%AD%A4%E5%87%A6%E3%81%A7%E9%80%A2%E3%81%A3%E3%81%9F%E3%81%8C%E7%99%BE%E5%B9%B4%E7%9B%AE-2037644

 > 長年さがしていた敵(かたき)にめぐりあったときなどにいうことば。

 http://www.haruhi.tv/fanclub/img/thesneaker0610_poster.html
 http://www.haruhi.tv/fanclub/img/thesneaker0610_poster2.jpg

※本文とは無関係です。

 https://dictionary.goo.ne.jp/word/%E9%A8%93%E6%8B%85%E3%81%8E/

 > ちょっとした物事に対して、よい前兆だとか悪い前兆であるとかを気にすること。験を担ぐこと。「験担ぎで豚カツを食べる」

・きょうは県庁前でカツカレー。
 https://tabelog.com/imgview/original?id=r7141662969214

 これで食べ納めかと思うと(違)…どこの県庁前だよっ!?(※表現は演出です。運転免許証の更新のたびにカツカレーを食べて何かの“験担ぎ”にしてきたひとが免許証を返納でもしたみたいな感慨にふけってください。)

 https://tabelog.com/hyogo/A2801/A280102/R3731/rstLst/RC1201/

 > 県庁前駅(兵庫県)のカレーライスのお店
 > 69件

 やったね。69件もあるよ。(※ソコジャナイ。)

・(再掲)


デモンストレーション【コース】
 無理難題ふっかけ【激辛】
←チュートリアル
 【甘口】
オーソドックス【中辛】ステップアップ→
【トッピング】
【盛り合わせ】
    /
アレンジ 
自由形【おかわり】
自動生成【テイクアウト】


[3799]
 > こういう見取り図を描いてもいい気がしてくる。

 …「アレンジ」ねぇ。(※意味深に!)


 [3957]の手順などをおさらいしておいてください。マップも同じものを使おうと思います。

・…今回のデータはこれだ!(ばーん
 https://neorail.jp/forum/uploads/oike1400_xyz.tsv

 本当にこの数字がびしーっと並んだこのTSVファイル1つだけで、あーんなことやこーんなことが…できちゃうんです!(※音声を変えています。)

■「R with Excel」

「PAL8-CNV 〜ぱるはちこんぶ〜」より
「XYZ」のほうのTSVを読み込む
myoike3d0=read.table("clipboard",h=0)
平地のみhei3d <- rbind(subset(myoike3d0,V3 == 0),subset(myoike3d0,V3 == -3))
plot(hei3d)


 https://neorail.jp/forum/uploads/r_oike1400_hei3d.png

https://neorail.jp/forum/uploads/r_oike1400_hei3d.png


 うーん。標高「-3m」(ということにした『平地の輪郭』)の点は含めなくていいかな。えー…(てんてんてん)。

■「R with Excel」

平地のみhei3d <- subset(myoike3d0,V3 == 0)
hei2d <- hei3d[ ,c(1, 2)]
plot(hei2d)
k-meansを実行するmykmoike3 <- kmeans(hei2d, 3, nstart=50)
library(mclust)
clPairs(hei2d, cl=mykmoike3$cluster)
# プロットされた図を右クリックしてコピーや保存をします


 https://neorail.jp/forum/uploads/r_oike1400_hei2d.png

https://neorail.jp/forum/uploads/r_oike1400_hei2d.png


 うーん。高さのデータは要らないので2次元に落としました。…軽いぞ!(※恐縮です。)

 https://neorail.jp/forum/uploads/r_oike1400_hei2d_km3.png

https://neorail.jp/forum/uploads/r_oike1400_hei2d_km3.png


 どんどんいくよー。(棒読み)

■「R with Excel」

k-meansを実行するmykmoike5 <- kmeans(hei2d, 5, nstart=50)
mykmoike9 <- kmeans(hei2d, 9, nstart=50)
mykmoike17 <- kmeans(hei2d, 17, nstart=50)


 https://neorail.jp/forum/uploads/r_oike1400_hei2d_km5.png

https://neorail.jp/forum/uploads/r_oike1400_hei2d_km5.png

 https://neorail.jp/forum/uploads/r_oike1400_hei2d_km9.png

https://neorail.jp/forum/uploads/r_oike1400_hei2d_km9.png

 https://neorail.jp/forum/uploads/r_oike1400_hei2d_km17.png

https://neorail.jp/forum/uploads/r_oike1400_hei2d_km17.png


 ぐふっ。

 https://neorail.jp/forum/uploads/map_oike1400_hei2d_km9.png

https://neorail.jp/forum/uploads/map_oike1400_hei2d_km9.png

 https://neorail.jp/forum/uploads/map_oike1400_hei2d_km17.png

https://neorail.jp/forum/uploads/map_oike1400_hei2d_km17.png


 わかるよぉ。…すんごいわかるよぉ。(ひっく)

※表現は演出です。


○Minimum Spanning Tree


 「最小全域木」いってみよー。(棒読み)

 https://rdrr.io/rforge/vegan/man/spantree.html

 こういうことなんですよね。うん。

 http://jsnfri.fra.affrc.go.jp/gunshu/4clust.html

 「水産研究・教育機構 日本海区水産研究所」が「veganパッケージ」を使っておられるー(↑)みたいなことをどん欲に参考にするしかない。…われわれはどん欲なので!(ぐぇ)

・「mykmoike17$centers」

xy
159.19268-155.68130
122.94948-76.78165
200.93256-25.70572
238.04279-34.08910
70.15803-226.14159
210.40275-164.68055
25.70654-181.39731
220.02955-79.98972
119.18362-127.79930
22.80306-126.82503
68.91002-152.17956
72.35061-99.84923
14.85687-29.46422
23.02190-231.36754
189.96586-114.34024
26.39694-72.93804
105.40303-184.17140


 こういう「クラスターの重心」が得られてございます。

 「水産研究・教育機構 日本海区水産研究所」が使っておられる「veganパッケージ」を使って「最小全域木」する前に、「最近隣法」「ウォード法」を使った場合の結果も見ておきましょう。

■「R with Excel」

番号つき散布図を描くplot(mykmoike17$centers, type="n")
text(mykmoike17$centers)
rect(0, 0, 256, -256, border = "red")
デンドログラムを描くmyhie <- hclust(dist(mykmoike17$centers),method="single")
plot(myhie)


 https://www1.doshisha.ac.jp/~mjin/R/Chap_28/28.html

 うーん、「最近隣法」をチョイスしてセレクトするじゃろ。(※恐縮です。)

 https://neorail.jp/forum/uploads/r_oike1400_hei2d_km17_centers.png

https://neorail.jp/forum/uploads/r_oike1400_hei2d_km17_centers.png

 https://neorail.jp/forum/uploads/map_oike1400_hei2d_km17_num.png

https://neorail.jp/forum/uploads/map_oike1400_hei2d_km17_num.png


最近隣法ウォード法
https://neorail.jp/forum/uploads/r_oike1400_hei2d_km17_centers_single.png

https://neorail.jp/forum/uploads/r_oike1400_hei2d_km17_centers_single.png
https://neorail.jp/forum/uploads/r_oike1400_hei2d_km17_centers_ward.png

https://neorail.jp/forum/uploads/r_oike1400_hei2d_km17_centers_ward.png


 https://www.rdocumentation.org/packages/vegan/versions/2.4-2/topics/spantree

 …うーん。「2」と「10」と「14」には駅は置かないよということを「km17」と「km9」を見比べただけで言いたいけれど、いまは手動で3つの点をなかったことにしていいですか。えー…(てんてんてん)。

xy
159.19268-155.68130
200.93256-25.70572
238.04279-34.08910
70.15803-226.14159
210.40275-164.68055
25.70654-181.39731
220.02955-79.98972
119.18362-127.79930
68.91002-152.17956
72.35061-99.84923
14.85687-29.46422
189.96586-114.34024
26.39694-72.93804
105.40303-184.17140


■「R with Excel」

どーんcenter14=read.table("clipboard",h=0)


https://neorail.jp/forum/uploads/r_oike1400_hei2d_km17-3_centers_single.png

https://neorail.jp/forum/uploads/r_oike1400_hei2d_km17-3_centers_single.png
https://neorail.jp/forum/uploads/r_oike1400_hei2d_km17-3_centers.png

https://neorail.jp/forum/uploads/r_oike1400_hei2d_km17-3_centers.png
https://neorail.jp/forum/uploads/r_oike1400_hei2d_km17-3_centers_ward.png

https://neorail.jp/forum/uploads/r_oike1400_hei2d_km17-3_centers_ward.png
https://neorail.jp/forum/uploads/r_oike1400_hei2d_km17-3_centers.png

https://neorail.jp/forum/uploads/r_oike1400_hei2d_km17-3_centers.png


 こういうことですね。(※点を削除したので番号は詰まっています。)「1と8」「9と14」から浮かび上がってくるところに「都心」(※このマップでの中心地)がありそうというのをいえるのは「ウォード法」のほうであります。

■「R with Excel」

…しすてむこーる・
…いんすとおーる!
install.packages("vegan")
# これは最初に1回だけ必要な操作です
library("vegan")
mydisthei2d17 <- vegdist(mykmoike17$centers)
tr <- spantree(mydisthei2d17)
plot(tr, cmdscale(mydisthei2d17), type = "t")
plot(tr, type = "t")
depths <- spandepth(tr)
plot(tr, type = "t", label = depths)
plot(as.hclust(tr))


 うーん。「results may be meaningless because data have negative entries in method “bray”」ということですぞ!! …なんてこったい。かくかくしかじか(げふ)ばーん!(以下略)Y座標の値に256を足してやるです!(げふ)

https://neorail.jp/forum/uploads/r_oike1400_hei2d_km17-3_centers_span.png

https://neorail.jp/forum/uploads/r_oike1400_hei2d_km17-3_centers_span.png
https://neorail.jp/forum/uploads/r_oike1400_hei2d_km17-3_centers_span_plot.png

https://neorail.jp/forum/uploads/r_oike1400_hei2d_km17-3_centers_span_plot.png


 えー…(てんてんてん)。思ったようなプロットではないけれど、このマップでの「おおまかな目的地」が「2と3」「5」「4」「6」「11と13」のほうにあって、それ以外の地点が経由地になるんですよ、「1」「8」「14」らへんがターミナルっぽいですよ、それに「9と10」はつなげてあげなさいよ(げふ)ということまではいえているのではありませんか。ありがとうございました。

 https://housefoods.jp/_sys/catimages/recipe/hfrecipe/items/00018280/0.485-310.jpeg
 https://housefoods.jp/recipe/rcp_00018280.html

 > 市販のトンカツをのせて簡単アレンジ♪

 …『市販のトンカツ』!!(※白目)「惣菜」として売られているのは「市販」とは呼ばない。

 https://housefoods.jp/recipe/rcp_00014122.html
 https://housefoods.jp/_sys/catimages/recipe/hfrecipe/items/00014122/0.485-310.jpeg

 > トンカツで元気モリモリ
 > 市販のとんかつは食べやすい大きさに切る。

 レシピの書きかたを工夫する以前に社内ルールで「市販」としか書かせてもらえないみたいな気配が(げふ)しつれいしました。「トンカツで元気モリモリ」と題しておいて、それが『社外品!』(※意訳)でいいんですか。えー…(てんてんてん)。

 https://neorail.jp/forum/uploads/map_oike1400_hei2d_km17-3_num.png

https://neorail.jp/forum/uploads/map_oike1400_hei2d_km17-3_num.png


 番号を詰めたのでもういちど描いておきますね&しつれいしました。ここまで「きょうは県庁前でカツカレー。」の話題をお伝えしました。(違)


 「きょうは府中で酢豚。」([4012])に続きます。


この記事のURL https://neorail.jp/forum/?4011


この記事を参照している記事


[4000]

「発想力がないので誰か駅名作ってください」だったはずなのにどうして『創作駅名』になってしまうのか

2020/3/29

[4012]

きょうは府中で酢豚。

2020/4/1

[4049]

いつかどこかの「新橋立」で(インサイト編)

2020/5/7

[4050]

いつかどこかの「新橋立」で(ボロノイ編)

2020/5/7

[4070]

北大路書房「教材設計マニュアル」(2002年4月)にかけたひもを解きはなつ(熊)

2020/5/7


関連する記事


[3661]

「弥彦色」と「長野色」 / 「ブルー・トレーン」 / 「京都高速鉄道株式会社」 / 「出逢えたらラッキー Peach×ラピート ハッピーライナー」 / ほか tht - 2018/7/21


[3657]

Re:[3656] 「富士山の使い方」 / ほか tht - 2018/6/30


[3653]

【北見北上】「もんじゃストリート」は続くよ(網走編)【網走アポロ石油あり】 tht - 2018/6/10


[3869]

まだ見ぬ「ドリームかまち」を探して(ボロノイ編) tht - 2019/12/30


[3770]

【A9・Exp.】「マップコンストラクション」とは tht - 2019/9/13


[3884]

【A9・Exp.】ニューゲームを自動分類するには(評価編) tht - 2020/1/11


[3685]

【DE10】「A列車 色がたりない」【レッドトレインなし】 tht - 2019/1/1


[3654]

【浦安停車の】「A列車 架線 電力」もりもりもり【黄色い線路あり】 tht - 2018/6/16






neorail.jp/は、個人が運営する非営利のウェブサイトです。広告ではありません。 All Rights Reserved. ©1999-2020, tht.