はじめてのオペレーションズ・リサーチ

2020年4月25日読了

OR(オペレーションズ・リサーチ)については学生時代に生協に積んであった宮川公男先生の「OR入門」が印象にある。教養課程の講義だったが当時はまったく関心がなく言葉だけが記憶にある程度。
本書はもともと講談社のブルーバックスで刊行されたものを筑摩書房が再版したもので、書店で偶然眼に入ったので購入。

ORとはハードウェアの運用の見直しのための調査検討して実際の対応を試験して問題解決に活かす考え方。問題解決はハードの性能向上に依って可能なこともあるが、現実にそれを待っていても時間や資金が許さなければ、運用に依って解決を図るしかない。運用で解決するには問題の捉え方を変える(つまりハードに帰責出来ない)ことになるが、それはオペレーションを変えるためにあえて戦略的に物事を考えること通じるものがある。大元は、なんの目的もなく開発された英国の電波レーダーをどのように用いたらよいか考えるプロジェクトから始まった。

本書で紹介されている問題は、航空機による特攻に対して戦艦側がどのような退避行動をとればよいかとか、戦場で食器を洗う兵隊の行列をいかに短くして休憩時間を稼ぐかといった、実践的(実戦的)問題が多い。そして全体を通して使われる事例が、戦闘場面で敵の(能力が異なる)戦車が二台現認されている状況で味方はどう攻撃すればよいか、という例を懇切丁寧にORの思考プロセスや方法を追いかけながら、一冊の本に仕上げている。通常、この手の本にありがちな、数式だらけとか概念定義ばかりとか、たくさんの手法で圧倒するようなところは一切ない。ゆえに、OR理論や技法について正確でもなく網羅的でもないが、わかりやすいしわかった気になる。

しかし著者のメッセージは明確で、ORは実践の中で鍛える能力であり、問題を発見してモデル化するところが実はとても難しい。
さらに、ORによって導き出された結果をそのまま上官に報告することはやってはならず、自分の現場認識を加えた判断を報告することが大切であることを強調している。いわば方法論だけ分かった気になりモデルを作って数字をこねくり回して結果を出して報告する者を、「にわかORワーカー」として戒める。

本書にもあるモデルを作ってモンテカルロ法でシミュレーションする方法は、統計学や機械学習の本には多く紹介されているが、そういった書物にはORとの関連は述べられていないし、逆に本書にも(書かれたのが古いから当たり前だが)機械学習等への言及はない。ただ、モンテカルロ法が1945にフォン・ノイマンによって考案されたというあたりを知ると、ルートはやはり軍事だったのかということがわかる。

軽い気持ちで購入した本だが、監査における統計学や機械学習の援用にもかなり強い示唆を得た。解決モデルを書物に求めるのではなく現場の実践に見出すことが必要であり、逆に現場にいる者には「見えるようになる」ためにも、ORの視点をインプットしておくことは肝要であろう。


Neo4jをインストールする

オープンソースカンファレンス2020春でネットワーク型データベースのNeo4jが紹介されていたので遊んでみたくなった。

インストールマニュアルはこちら。
https://neo4j.com/docs/operations-manual/current/installation/linux/debian/

以下、メモ

JavaのOpenJDKバージョンの確認

:~$ update-java-alternatives --list
java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64
java-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64

デフォルトのOpenJDKを設定

:~$ sudo update-java-alternatives --jre --set java-1.11.0-openjdk-amd64

APTリポジトリの追加

:~$ wget -O - https://debian.neo4j.com/neotechnology.gpg.key | sudo apt-key add -
--2020-04-26 12:07:40-- https://debian.neo4j.com/neotechnology.gpg.key
debian.neo4j.com (debian.neo4j.com) をDNSに問いあわせています... 99.86.32.2, 99.86.32.80, 99.86.32.102, ...
debian.neo4j.com (debian.neo4j.com)|99.86.32.2|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 6342 (6.2K) [application/pgp-keys]
`STDOUT' に保存中

- 100%[===================>] 6.19K --.-KB/s 時間 0s

2020-04-26 12:07:41 (218 MB/s) - stdout へ出力完了 [6342/6342]

OK

リポジトリの追加

:~$ echo 'deb https://debian.neo4j.com stable 4.0' | sudo tee -a /etc/apt/sources.list.d/neo4j.list
deb https://debian.neo4j.com stable 4.0

いつものやつ

:~$ sudo apt update

取得:14 https://debian.neo4j.com stable InRelease [22.9 kB]
取得:15 https://debian.neo4j.com stable/4.0 i386 Packages [1,771 B]
取得:16 https://debian.neo4j.com stable/4.0 amd64 Packages [1,771 B]
27.2 kB を 6秒 で取得しました (4,526 B/s)
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
パッケージはすべて最新です。

Neo4jのAPTリスト

:~$ apt list -a neo4j
一覧表示... 完了
neo4j/stable,stable 1:4.0.3 all
neo4j/stable,stable 1:4.0.2 all
neo4j/stable,stable 1:4.0.1 all
neo4j/stable,stable 1:4.0.0 all

最新版を指定してインストール

:~$ sudo apt install neo4j=1:4.0.3
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
gir1.2-keybinder-3.0 libjs-modernizr libjs-underscore libkeybinder-3.0-0
libqt5designer5 libqt5help5 libqt5multimedia5 libqt5multimediawidgets5
libqt5positioning5 libqt5qml5 libqt5quick5 libqt5sensors5 libqt5webchannel5
libqt5webkit5 linux-headers-4.15.0-91 linux-headers-4.15.0-91-generic
linux-image-4.15.0-91-generic linux-modules-4.15.0-91-generic
linux-modules-extra-4.15.0-91-generic python-gst-1.0 python-lxml
python3-pyqt5 python3-pyqt5.qtmultimedia python3-pyqt5.qtopengl
python3-pyqt5.qtsvg python3-pyqt5.qtwebkit python3-qtpy
これを削除するには 'sudo apt autoremove' を利用してください。
以下の追加パッケージがインストールされます:
cypher-shell daemon
以下のパッケージが新たにインストールされます:
cypher-shell daemon neo4j
アップグレード: 0 個、新規インストール: 3 個、削除: 0 個、保留: 0 個。
102 MB のアーカイブを取得する必要があります。
この操作後に追加で 116 MB のディスク容量が消費されます。
続行しますか? [Y/n]
取得:1 http://ftp.jaist.ac.jp/pub/Linux/ubuntu bionic/universe amd64 daemon amd64 0.6.4-1build1 [99.5 kB]
取得:2 https://debian.neo4j.com stable/4.0 amd64 cypher-shell all 4.0.3 [27.1 MB]
取得:3 https://debian.neo4j.com stable/4.0 amd64 neo4j all 1:4.0.3 [74.5 MB]
102 MB を 22秒 で取得しました (4,713 kB/s)
パッケージを事前設定しています ...
以前に未選択のパッケージ daemon を選択しています。
(データベースを読み込んでいます ... 現在 475148 個のファイルとディレクトリがインストールされています。)
.../daemon_0.6.4-1build1_amd64.deb を展開する準備をしています ...
daemon (0.6.4-1build1) を展開しています...
以前に未選択のパッケージ cypher-shell を選択しています。
.../cypher-shell_4.0.3_all.deb を展開する準備をしています ...
cypher-shell (4.0.3) を展開しています...
以前に未選択のパッケージ neo4j を選択しています。
.../neo4j_1%3a4.0.3_all.deb を展開する準備をしています ...
neo4j (1:4.0.3) を展開しています...
cypher-shell (4.0.3) を設定しています ...
daemon (0.6.4-1build1) を設定しています ...
neo4j (1:4.0.3) を設定しています ...
systemd (237-3ubuntu10.39) のトリガを処理しています ...
man-db (2.8.3-2ubuntu0.1) のトリガを処理しています ...
ureadahead (0.100.0-21) のトリガを処理しています ...
ureadahead will be reprofiled on next reboot

リブート

起動に迷ってしまった。

ここを参考に。
http://sheepdogjam.cocolog-nifty.com/blog/2017/09/neo4jubuntu-c86.html
一日一事未満:Neo4jをUbuntuにインストールする

ブラウザで起動するのだが、単にlocalhost:7474ではだめです。
最初に、ターミナルから、

sudo service neo4j restart

次にブラウザを開いてから、localhost:7474
すると、パスワードを聞いてきます。初期パスワードは変更を求められます。
自分の場合、ローカルでしか使わないので、適当に。


生産性 誤解と事実

2020年4月18日読了

学者の書いた本にしては読みやすい。
生産性の定義にも多様性があることから始まり、測定にもいろいろな制約が入ることによる困難さなどから始まる。
単純に生産性という指標を眺めるだけではなく、その変化や割合の比率を見るなど、相対視することを説く。このあたり会計とまったく同じ。

巷間言われる生産性の向上策が必ずしもそうではないこと、また生産性の向上があたかも最重要な政策目標のようになっていることに警鐘を鳴らす。生産性の向上をするには社会構造などの変化の方が大きなファクターとなるが、それ自体、生産性の向上の手段ではなくむしろ目標とすべきことでもある。


関門の近代

関門の近代

著者は宇部市在住の郷土史家で、地元紙にも連載している著述家である。
本書はジュンク堂で別の本を探しているときにたまたま見つけたものだ。

関門(古くは馬間)海峡は山口県下関市と福岡県北九州市に挟まれたところにあるが、源平合戦で入水した安徳天皇をお祀りする歴史を持つ下関と、もともとは塩田くらいしかなく明治以降に急速に発展していく門司とが、海峡を挟んでお互いに競争して成長していく時代の歴史を綴ったものだ。

明治22年の憲法発布から昭和33年の北九州市発足までを扱い、その間の日清戦争・日露戦争・大東亜戦争・朝鮮戦争によって海峡の役割(経済的、軍事的)が大きく変わっていく中で、両市が変化していく様子は、日本全体の成長の縮図とも言える。

これまで全く知らず驚嘆した内容は、「関門県構想」であった。門司を中心とする北部九州と山口県側の下関を中心とする地域を統合して一つの県となし、残りの山口県は広島県に統合しようという構想である。日露戦争直前の国会にも出された話でおそらく日露戦争がなければ議会を通過したかもしれない。


時間はどこから来て、なぜ流れるのか?

とても興味のある話なのだが、ニュートン力学の世界から抜け出せないので、どうしても理屈で理解しようとなると、途端に難しく感じてしまう。重力圏から遠ざかるほど時間は遅く進むとか、時間は流れていないとか、考え方を知りたいのだが読みこなせなかった。