u++の備忘録

『新人君! RPGの世界でJavaを学ぼう』をやった

はじめに

本記事は、下記記事の続編。
upura.hatenablog.com

Githubのrepository

f:id:upura:20171231202156p:plain
github.com

所感

  • ざっとJavaオブジェクト指向を復習できる良本だったと思う
  • サンプルコードに不備がある箇所が数点あったが、逆に本質を理解しているか確認できて良かった
  • 無事に年内に宿題を終えられたのは褒めてあげたい

【冬休みの宿題】『新人君! RPGの世界でJavaを学ぼう』をやる

※この記事は宿題を宣言することで自らのやる気を奮い立たせるためのもの。

26日に納会があった。今回の年末年始は、冬休みの宿題として『新人君! RPGの世界でJavaを学ぼう』に取り組むことにした。
http://www.ric.co.jp/book/contents/book_936.html

来年以降も自分自身がJavaのコードを書くことは無さそうだが、プロジェクトとして関わることはありそうなので、まとまった時間が取れる時に入門書を通読したい。写経しながら、ザッとJavaオブジェクト指向について学び直す予定。

学習用のRepository

github.com

遺伝的アルゴリズムでゴールを決めてみた

遺伝的アルゴリズム」を用いて、サッカーでゴールを決めるのを目的とした学習モデルを設計した。2年前の大学の授業で作った資料が発掘されたので、ブログにまとめる。


モデル化

f:id:upura:20171228102051p:plain

赤色のチームが攻撃し、青色のチームのゴールを狙う。1回のシミュレーションは、赤色のチームがセンターラインから攻撃を開始し、青色のチームにボールを奪われるか、ゴールを決めるまで実施する。

2チーム分22人のエージェントを作成し、一定の規則に従い移動するよう制御。具体的には以下の通り。

  • 赤色のチーム……ゴール方向に向かって、一定速度で進む
  • 青色のチーム……赤色のチームのボールを保持しているエージェントに向かって、一定速度で進む

赤色のチームは、一定の時間(フェーズ)ごとに、ボールを保持したままドリブルするか、味方にパスを出すかを決める。ゴールへ一定の距離まで近づいたエージェントがボールを保持している場合、シュートを打つ。シュートは必ず決まる。

青色のチームのエージェントが、ボールを保持している赤色のチームのエージェントに一定の距離(ごく近く)まで近づいた場合、ボールを奪う。

遺伝的アルゴリズム

f:id:upura:20171228103226p:plain

赤色のチームに、上記のような遺伝子情報を持たせる。右上の表は、例えば「1フェーズ目で2番のエージェントにボールを保持させる(この時点で2番のエージェントがボールを保持していればドリブルし、そうでなければ他のエージェントからパスを貰う)」ということを意味する。

評価値

f:id:upura:20171228103604p:plain

とある遺伝子情報に対し、その指示に従ってシミュレーションを実行する。ここで「赤色のチームの一番先頭のエージェントが、どれだけ青色のチームのゴールに近づけたか」を評価値とする。

f:id:upura:20171228104246p:plain

複数個の遺伝子情報の中から、評価値の高いものを選択し、交叉(組み換え)を行うことで次世代の遺伝子情報群を生成する。「シミュレーションと評価→選択と交叉」の繰り返しで徐々に性能の高い遺伝子情報が生み出され、最終的にはゴールを決められる遺伝子情報が誕生するという仕組み。

実験結果

第1世代

即座にボールを奪われてしまう。

第3世代

第1世代より成長していると分かる。

f:id:upura:20171228104852p:plain

世代ごとの評価値の推移は上記の通り。世代を重ねるごとに評価値が上がっていると分かる。

第8世代

遂にゴールを決められる遺伝子情報が誕生。オフサイドとか言わない。

考察

以下の2条件を試してみた。

  1. 青色のチームのフォーメーションを変更
  2. 青色のチームの動き方を変更
    • 自分よりもボールの方が自陣ゴールに近い場合は、通常より速く移動

f:id:upura:20171228105128p:plain
f:id:upura:20171228105421p:plain

詳細は割愛するが、ゴールを決められる遺伝子情報が誕生するまでの時間は、1の場合はそれほど変わらず、2の場合は長く(13世代ほど)なった。(少なくとも今回の場合)システム設計自体を整えるより、問題が生じた場合の対策を用意しておく方が効果的だと示唆された。

参考

2年前の資料作成時、下記の動画を参考にした。当時は投稿者について知らなかったが、「平成将棋合戦ぽんぽこ」の製作者さんだった。
www.nicovideo.jp

Rで棒グラフと折れ線グラフを重ねた図を作成 〜出生数・出生率を例に〜

下記のツイートを見て、出生数・出生率の推移を調べてみようと思った。

可視化した結果は下記の通り。

f:id:upura:20171226114323p:plain

データは下記サイトからダウンロードした(出典:厚生労働省「人口動態統計」)。
内閣府ウェブサイトの常時暗号化による「https:」への切り替え - 内閣府

Rスクリプト

label <- t(df['year'])
num <- t(df['birth_num'])
rate <- t(df['birth_rate'])

par(mar=c(4, 5, 2, 5))
barx <- barplot(num, names.arg=label, xlab = "", ylab = "Number of live births", col=c('white'))

par(new=T)
plot(barx, as.matrix(rate), type="o", axes = F, xlab = "", ylab = "")
axis(side = 4)
mtext("Birthrate", side = 4, line = 3)
box()

abline(v=51)

東大を退学して10月に新卒入社した

はじめに

  • 退学 Advent Calendar 2017の6日目の記事
  • 本Advent Calendarの2日目の記事で触れられていた、「中退してすぐにプログラマとして就職できて良かった話」みたいな記事

masuda114.hatenablog.com

2017年の所属の変遷

辞めた理由

  • 学部を出て就職するつもりで4年次に内定を持っていたが、4年次から本格化した研究が上手くいかない自分が悔しく「このまま研究の奥深さ(自分に向いているorいない/自分が好きor嫌い)を知らずに就職したら後悔する」と思い、2016年7月に全内定を辞退して大学院進学を決意
  • 真面目に取り組んだ甲斐あり、卒業時には優秀卒論賞を受賞しMITでの短期プログラムにも参加、修士課程1年では国内会議(査読なし)発表・国際会議(査読あり)を経験
  • 前々から30代後半で家業を継ぐ可能性があり、(研究活動の最初の一歩をひと通り体験できたこの段階で)早めに次は一度企業で働いてみたいと思った

就活

  • 2017年3月ごろから就職の可能性を意識し出し、企業の選定を開始
  • 2017年5月中旬に新卒枠(新卒とは言っていない)で3社エントリー
  • 2017年6月頭に第一希望の内定を獲得
  • しばらく判断を保留していたが、2017年8月に大学院退学と入社を決意

現状の評価

  • 学生時代は朝4時半起きで週6日以上研究室に行くストイックな生活をしていたので、企業勤めになっても生活に特に変化はない(むしろホワイト化した)
  • 企業ならではの行動の遅さなどは若干不満だが、企業だからこそ体感できることもあり、概ね満足
  • 金銭面も独り身の現状では全く文句ない

おわりに

  • 2017年は激動の年だったが、現時点では退学して良かったという所感
  • 「はじめに」でも書いたように生存バイアスなので、一般論として大学・大学院は退学しない方が良いと思う
  • 正直ブログでは書けない/書き切れない話も多いので、(退学を考えている人など)興味ある方は連絡ください

追記

入社7カ月後

upura.hatenablog.com

新パックの「心眼の祭殿」でガン伏せ直接攻撃デッキが強化された件

12月1日に発売開始した「ブレイドオブスピリッツ」で登場した「心眼の祭殿」で、ガン伏せ直接攻撃デッキが強化された気がします。

f:id:upura:20171205081011p:plain

効果的な例

  • 直接攻撃が1000ダメージに
  • 相手から直接攻撃を食らっても最大1000ダメージに
  • ホーリージャベリン」などでの回復量は相手の攻撃力参照のため、大量に黒字に

デッキレシピ例

f:id:upura:20171205081239p:plain

まだカードが不足しているので、イメージだけ。「心眼の祭殿」が引けなかった場合には「リバース・ペイン」主体で戦うことを想定しています。

深夜作業場としてのサイゼリヤ 〜三つのメリットと三つのデメリット〜

はじめに

サイゼリヤ Advent Calendar 2017 の 3日目の記事です。
サイゼリヤの「深夜作業場」としてのメリット・デメリットを、個人的な見解でまとめます。

筆者とサイゼリヤ

筆者は自宅であまり作業しない(できない)性格で、プライベートで集中して作業する際にはカフェやファミレスに向かいます。例えば深夜に一気にこなさなければならない案件がある場合、筆者の近辺だと深夜にやっている店の選択肢が少なく、サイゼリヤに向かうことが多いです。

ちなみに、この記事もサイゼリヤで執筆しています。

※お断り

以下の内容は、筆者が深夜作業場として利用している一店舗での体験に基づきます。

メリット

手軽な価格でドリンクバー

個人的には、この点が大きいです。サイゼリヤでは、単品280円(税込)、商品とセットなら180円(税込)でドリンクバーが提供されています。冷たいジュースも温かいコーヒーもあり、気分に応じた飲み物を好きなだけ堪能できる点は、深夜作業場として大いに評価できます。

飲み物のラインナップは下記の記事で詳しく紹介されています。
xn--o9j0bk5pa8mzb4f3eyde9hb.com

ちなみに、ファミレスでのドリンクバーの価格を比較した表は下記の通りです。焼肉など主の商品で稼ぐ店だともう少し安い店もありますが、深夜作業場に使えそうなファミレスの中では、サイゼリヤはかなりお手頃な部類に入ると思います。

チェーン セット(円) 単品(円)
サイゼリヤ 190 280
ガスト 214 430
ココス 205 345
ジョナサン 291 430
デニー 268 329

下記記事より一部抜粋。2016年8月時点。
https://ドリンクバークーポンまとめ.com/hikaku-544

適度な雑音

冒頭で書いたように筆者が自宅であまり作業しない(できない)のは、自宅だともの音がなさ過ぎて逆に集中できないのが一因です。サイゼリヤは開かれた空間にテーブルが並んでいるので、否が応でも他人の物音が聞こえます。個人的にはこれくらいの雑音がある方が作業に取り組む気概が出てきます。

たまに隣の話が興味深すぎて作業が疎かになることもありますが……。



営業時間の長さ

営業時間はサイゼリヤの各店舗で異なりますが、筆者の通うサイゼリヤは深夜5時まで営業しています(この記載で店舗がかなり絞られますね)。近隣店舗の中では抜群に夜遅くまで営業しており、どうしてもキリの良いところまで仕上げたい場合が多い深夜作業場としてはもってこいです。

都内の営業時間一覧を見ても少なくない店舗で深夜2時までは営業しています。コンビニの台頭で営業時間の縮小が進む昨今、非常にありがたいです。
http://www.saizeriya.co.jp/restaurant/search_map.php?area1=12

デメリット

ノートパソコン向けWi-Fiがない

(少なくとも筆者の通う)サイゼリヤには、ノートパソコン向けWi-Fiがありません。筆者は性質上インターネット接続が必要な作業をすることが多いので、サイゼリヤを深夜作業場として利用する場合には、スマートフォンテザリング機能を用いることになります。スマートフォン通信制限の問題があるので、大規模データを扱うような作業をするには、サイゼリヤは不適切な場所です。

一方で、ノートパソコン向けWi-Fiがないことは一部メリットでもあります。ノートパソコンがインターネットに接続していると、どうしてもネットサーフィンやSNSをしてしまい、本来やるべき作業に集中できないことがあります。ただしサイゼリヤにはノートパソコン向けWi-Fiがないので、雑念にとらわれることなく、作業に集中できる環境になっています。個人的経験から言えば、書籍・論文などを深く読み込みたい場合などには最適の場所だと思います。

分煙対応が甘い

(少なくとも筆者の通う)サイゼリヤでは、喫煙席と禁煙席を空間で分割するだけの「分煙対応」をしています。物理的な仕切りは存在しないため、喫煙席に近い禁煙席では実質的には副流煙まみれになる場合が多いです。筆者はタバコを吸わないため禁煙席を選択しているのですが、できればもう少し厳格に分煙対応してほしいと思っていました。

そんな中、先日以下のような報道がありました。個人的には本当に喜ばしいことなので、ぜひ推進してほしいです。

www.asahi.com

現金でしか支払いできない

サイゼリヤは、原則として現金払いで一貫しているようで、クレジットカードや交通系ICなどが利用できません。深夜作業場に出向く際は極力荷物を減らしたいのですが、スマホで決済することができないため、財布を持参する必要があります。また深夜だとATMの手数料が発生することも。お手洗いに行く際に持ち運ぶものが増えたり、入店してから手持ちの現金が少ないと気付いたり、この弊害は個人的にはかなり大きいなと思っています。2020年の東京五輪開催に向け、クレジットカードなどへの対応が進むことを期待しています。

おわりに

この記事では、サイゼリヤの「深夜作業場」としてのメリット・デメリットを、個人的な見解でまとめました。「こういう視点でサイゼリヤを見ている人もいるんだなあ」くらいの知見を共有できていたら幸いです。