Categorical Data IDE のビルド
和文で書かれたビルド方法について特に見当たらなかったので、書いておけばどなたかに有益だろうと思い書いた。 (ぼくは開発者とかでなくて、 functorial query language に興味をもっているだけのいちプログラマです。)
前提知識:
・git のインストール方法。
・Eclipse で Java プロジェクトを インポートする方法。
git clone https://github.com/CategoricalData/fql.git
Step 2. Eclipse JDT の最新版を下記から入手。
Step 3. Eclipse で Step 1. で取得したフォルダ fql を
Java プロジェクトとしてインポート。
注意: maven でもビルドできるが環境による。 Eclipse によるビルドを推奨しているとのこと。
人はなぜ
ブログを書くのだろうか。
某ゲームについて
某ゲームに対してああだこうだ言ったり思うことはあるけど、某ゲームが人の動きも、よくわからんもやっとしたルールもさらっと越境させていく感じは痛快ではある。
どんな哲学も学問も凝った技術も、予測もできなかったろうし、成し得なかったことが起きているように思う。 (作った側はもちろん考えていたのだろうけど。)
娯楽は娯楽として家の中で細々やるものだと思っていた。それがこれだからね。
この否定も肯定もしたくない感じがなんとも言えない。
カレンダーにおける予定の圧縮表現 2
この記事の応用について書く。
目次
1. ある週に毎週予定があることの表現
2. 日程調整のための表現
1. ある週に毎週予定があることの表現
毎週月曜日に予定があることを 2 部グラフを用いて表現すると、以下のようになる。
2. 日程調整のための表現
A さんと B さんとの間で素朴な日程調整を行うことを考える。まず、A さんと B さんともに今月の予定が決まっていて、既に予定のある日が重複しているかを確認した上で、どの日に予定を入れるかを決める。
A さんと B さんの今月の予定を 2 部グラフで表現したとき、この 2 個の 2 部グラフに共通する辺集合をもつような 2 部グラフで、既に予定のある日が重複していることを表現できる。
この例だと、A さんと B さんの予定が重複している日は、第 3 週の月曜日であることがわかる。
カレンダーにおける予定の圧縮表現
ふと、カレンダーを眺めていると、
「これは表なので、 2 部グラフで表現できるのではないか。」
と思って書いてみた。
カレンダーを観察すると、列が曜日、行が第何週かを表すので、これをなるべく簡潔に表現したい。
2 部グラフの頂点集合の分割の一方を、第何週かを表す数の集合、もう一方を曜日の集合とすると、辺の存在で予定があることを表現できる。ここで、辺に日のラベルをつける。この表現により、第何週の何曜日、何日にどのような予定があるか圧縮して表現できる。
上記の例の場合、予定 A が 第 2 週の 7 日にあり、予定 B が第 5 週の 25 日にあることがわかる。
min-cost connectivity problem のサーベイ
大学院生の頃、グラフ連結度周辺の研究をしていた時期があって、今でもたまに文献を読む。
Nutov というグラフ連結度に関するアルゴリズムが専門の研究者がいて、サーベイを自身のサイトに上げていたのだが、最近アップデートされていた。リンクを貼る。
Node-Connectivity Survivable Network Problems,
http://www.openu.ac.il/home/nutov/SN.pdf
MEMO: 最小スパニング木問題、巡回セールスマン問題、及び最小スタイナー木問題等の共通の一般化として、サバイバルネットワーク問題とよばれるものがあるのだがそのサーベイ。
The k-Connected Subgraph Problem
http://www.openu.ac.il/home/nutov/kCS.pdf
MEMO: 辺重みつきのグラフ G が与えられたとき、k連結であるような G の部分グラフを算出する問題を k 連結部分グラフ問題とよび、そのサーベイ。辺重みのつけ方で問題を分類している。
Wiring Diagram について
Wiring Diagram は多入力と多出力ポートをもつ箱とその入れ子で表現できる図式で、hierarchical なシステムをモデリングする際に、大変重宝している。
その気になれば XML の入れ子も、プログラミングにおける関数の呼び出しの流れも、シームレスにこれで表現できるし、最近は、データフローを書く際には個人的に全部これでメモしている。
operad とよばれる数学的対象にもとづいているらしい。ここは深堀できていないが、圏の一般化であることはなんとなくわかった。
参考:
[Spivak 2016] Operads as a potential foundation for
systems of systems (slide),http://categoricaldata.net/operadics/OperadicSoS.pdf
MEMO: 導入的な資料。
[Yau 2015] Operads of Wiring Diagrams, http://arxiv.org/pdf/1512.01602v2.pdf
MEMO: 近年の Wiring Diagram に関するサーベイ。Wiring Diagram は有向グラフや無向グラフのようなものがあり、データフローを表現する場合は有向が適している。無向の場合は、入出力の区別の特にないポートをもつような箱を hierarchical に表現する。(SQL 文そのものを無向の Wiring Diagram で書けるらしい。)