一人一党党

一人一人の、一人一人による、一人一人のための政治制度を!

Register-machine can shift graph-coloring from JIT to AOT

There are repeated holy wars at byte-code virtual machine interpreters - stack-machine vs register-machine.

One of the benefits of stack-machines is ease of allocating host machine's register at JIT compilation.
There is a decent assumption that the order of stack element matches access frequency.
Top element of stack has huge access frequency, then next element has next amount of frequency.
So, allocating host's registers from the element of stack top toward below elements of stack eliminates decent amount of memory access by accessing registers instead.

By contrast, it is believed that this scheme can't be applied to register-machines.
Since all virtual registers are symmetric, access frequncy of each register also should be symmetric.
This must be true, if byte-code generators also assume all virtual registers are symmetric.
But, if byte-code generators try creating deflection?

For example, a simplified graph-coloring algorithm from one by famous Gregory Chaitin can do that.
A vertex with N edges in the graph means this vertex can get registers within (N+1)th.
So N+1 regsiters are enough for a graph with vertices with max N edges.
Spilling vertices which have max edges from the graph reduce registers for the graph.
Then we'll get a graph with N registers allocated.
After getting the graph with N registers, we can get the graph with N+1 registers by restoring vertices spilled at time when the graph still contains vertices with N edges.
When we restore back vertices, all these vertices can get (N+1)th register without chainging register allocation for other vertices.
This means the register allocation result from this algorithm is incremental.
Leaving 1st register only and rest registers to spill is same result which this algorithm produces with one register at the beginning.
Then the result with 2nd register restored back is also same with the case there are two registers, and so on.

Under these byte-code generators for register-machine, register allocation at JIT becomes simple and powerful.
Only allocate host's register from 1st virtual register to Nth one in case host machine provides N register.
And you'll get the powerful result from graph-coloring schemes.

-- See also --
The design of the Inferno virtual machine
http://www.vitanuova.com/inferno/papers/hotchips.html
The authors of this virtual machine aim the performance with JIT.
But from tiny benchmarks on my environment, neither Inferno's byte-code generator nor JIT seams to treat register allocation yet.

Combining Offline and Online Optimizations: Register Allocation and Method Inlining
http://pdfs.semanticscholar.org/9a4a/d55afd9159f037aa163cbf4a5a770a49999c.pdf
What I wrote above is called "cumulative register assignment" on this thesis that such researchers visited before.

C言語を学ぶ時に人工知能から入門することがなぜ合理的なのか

個人的な事情により、コンピュータの基礎知識を得る方法を探していたところ、
プログラミングを学ぶ時に人工知能から入門することがなぜ合理的なのか - WirelessWire News(ワイヤレスワイヤーニュース):
https://wirelesswire.jp/2017/08/60921/
を見つけて、なるほどと思った。

仮にそうであれば、これ以上の合理的な入門方法も存在しないと言える。
十分な量の計算資源がある場合、コンピュータの機能は、人工知能のそれの下位互換でしかないからだ。
人工知能でできないことは、コンピュータにもできない。
しかし、コンピュータでできることは全て、人工知能でもできる。

そんなコンピュータより多機能なものへ、コンピュータ自身より先に入門すべきだなんて、常識外れだ。
常識的には、機能が沢山ある分だけ、学ぶことも増える。
多機能なスマートフォンよりも単機能なガラパゴスケイタイを高齢者が好むのは、学ばねばならないことが少なくて済むからだ。
電話をかけることしかできないのだから、フィッシングサイトやExcelウイルスに注意する必要が無い。
しかし上記ウェブページの筆者はこう喝破する。
「しかしキーボードを使ったプログラミングの入門としては、人工知能のプログラミングはかなり簡単な部類です。」

そういえば、そもそも人工知能の難しさとは何だっただろう?
人工知能の最先端を行くIBMGoogleなどを見れば分かる。
Deep Blue、ワトソン、AlphaGO、…。
どれもこれも強力なスーパーコンピュータの上で動くシステムだ。
人工知能の難しさは、要求される資源の量が膨大なことだ。
人工知能をマトモに走らせるには、強力なハードウェアが必要なのだ。
例外は精々、将棋ソフトの思考アルゴリズムを塗り替えたBonanzaくらいだろう。
Bonanza - Wikipedia
https://ja.wikipedia.org/wiki/Bonanza

高性能なワークステーションで参加する者も多い中、Bonanzaは一般向けのノートパソコン (VAIO SZ-90S)、筐体を冷却するのは小型USB扇風機と、低スペックの環境での優勝であった。

この例外こそ、人工知能が強力なハードウェアを欲する理由を説明してくれる。
上記Wikipediaページより「
Bonanza登場以前のコンピュータ将棋では、その局面で可能なすべての指し手を評価する(全幅探索)のではなく、自然な指し手を重視して探索(選択探索)していた。
全幅探索では全ての指し手を評価すると選択肢が膨大になり、現実的ではないと考えられていたからである。
しかしBonanzaはその常識を覆し、全幅探索を採用することで、これまでの他のソフトが見落としていた(あるいは開発者が軽視していた)指し手に高い評価を与えることが可能となった。

人工知能アルゴリズムの基本は、「総当たり探索」なのだ。
人工知能は、究極の理想としては、プログラマから何も教わらなくても問題を解けなければならない。
ノーフリーランチ定理でいうところの「汎用最適化戦略」だ。
ノーフリーランチ定理
https://ja.wikipedia.org/wiki/%E3%83%8E%E3%83%BC%E3%83%95%E3%83%AA%E3%83%BC%E3%83%A9%E3%83%B3%E3%83%81%E5%AE%9A%E7%90%86
「あらゆる問題で性能の良い汎用最適化戦略は理論上不可能であり、ある戦略が他の戦略より性能がよいのは、現に解こうとしている特定の問題に対して特殊化(専門化)されている場合のみである」
この定理によって証明されてしまった膨大な資源要求を何とかしようというのが、人工知能の難しさだ。

逆にノーフリーランチ定理を破ろうとしなければ、ネタ元の筆者が述べたとおり、プログラミングは極めて簡単になる。
究極の人工知能が相手なら、プログラマ人工知能に何も教える必要がないからだ。
勿論、究極の人工知能は未だ製造されておらず、現存するのは人工知能の下位互換でしかないコンピュータだ。
しかし、下位互換なりに恩恵は伝わる…総当たり探索のアルゴリズムは極めて単純だ。
単純なアルゴリズムは複雑なものより効率がいいから、競争相手も人工知能ならバカにできない。
上記Bonanzaのページより「
開発当時の保木は将棋に対する造詣は深くなく、チェスと同じようなものであると考えていた。
そのためコンピュータチェスで一般的な全幅探索を採用したが、保木によると「選択的探索は選択を行う処理が複雑になるため、全幅探索よりも負荷がかかる」としている。


すなわち、計算資源の要求量だけが、人工知能から入門する場合の壁なのだ。
C言語の場合、この点は問題になりづらい。
計算資源の要求を節約する究極の方法はアセンブラしかないが、「高級アセンブラ」の異名を持つだけあって、C言語アセンブラ並みに計算資源を効率よく使える言語のひとつだ。
逆に、C言語人工知能以外から入門するのは、コンピュータ初学者にとって困難だろう。
人工知能以外の分野では、総当たり探索より効率的で、しかし複雑なアルゴリズムが普及していているからだ。
入門の段階で、アセンブラに毛が生えた程度の記述力しかないC言語を使って、そんな複雑なアルゴリズムを記述しなければならない。

変化の激しいコンピュータ業界において、プログラミング言語の栄枯盛衰もまた激しい中、C言語は事実上の業界標準として君臨している。
コンピュータを学ぶ上で、C言語は避けられそうもない。
C言語を学ぶなら、まずは人工知能の実装を目指すよう、勧めたい。

武力攻撃事態を災害より甘く見るな

とある新聞の緊急事態条項に関する記事で、
「災害をダシにするな」
という主張が載っていて気になった。

著者は永井 幸寿。
弁護士だそうで、そのものズバリの本も出している。
憲法に緊急事態条項は必要か (岩波ブックレット) | 永井 幸寿 |本 | 通販 | Amazon
https://www.amazon.co.jp/%E6%86%B2%E6%B3%95%E3%81%AB%E7%B7%8A%E6%80%A5%E4%BA%8B%E6%85%8B%E6%9D%A1%E9%A0%85%E3%81%AF%E5%BF%85%E8%A6%81%E3%81%8B-%E5%B2%A9%E6%B3%A2%E3%83%96%E3%83%83%E3%82%AF%E3%83%AC%E3%83%83%E3%83%88-%E6%B0%B8%E4%BA%95-%E5%B9%B8%E5%AF%BF/dp/4002709450
【国会ハイライト】「災害をダシに憲法を変えてはいけない」~永井幸寿弁護士が憲法審査会で意見陳述!緊急時の国会議員の任期問題は「参議院緊急集会」と公選法「繰延選挙」で対処可能!(前編) | IWJ Independent Web Journal
https://iwj.co.jp/wj/open/archives/370892
では
「災害は事前の準備なくして対策できない」
「災害のあとに国家に権力を集中しても、泥棒を見て縄をなうようなもので、災害対策にはまったく役に立たない」
と主張しているらしい。
似たような主張は、他の弁護士たちにもあるようで、
災害対策のために重要なこと~平常時に準備していないことはできない~[弁護士が見た復興] |  東北復興新聞
http://www.rise-tohoku.jp/?p=10099
緊急事態条項が災害への対処として無力なのは、その通りなのだろう。
ならば、確かに災害は緊急事態条項の制定にとっては「ダシ」に過ぎない。

では、緊急事態条項制定の「本丸」ではどうなのだろう?
すなわち、武力攻撃事態である。
先の永井氏の主張の「災害」部分を「武力攻撃事態」に置き換えてみよう。
「武力攻撃事態は事前の準備なくして対策できない」
「武力攻撃事態のあとに国家に権力を集中しても、泥棒を見て縄をなうようなもので、武力攻撃事態対策にはまったく役に立たない」
違和感を感じないのは
ドイツ電撃戦に学ぶ OODAループ「超」入門 | 夕撃旅団 |本 | 通販 | Amazon
https://www.amazon.co.jp/%E3%83%89%E3%82%A4%E3%83%84%E9%9B%BB%E6%92%83%E6%88%A6%E3%81%AB%E5%AD%A6%E3%81%B6-OODA%E3%83%AB%E3%83%BC%E3%83%97%E3%80%8C%E8%B6%85%E3%80%8D%E5%85%A5%E9%96%80-%E5%A4%95%E6%92%83%E6%97%85%E5%9B%A3/dp/4909400621
の著者のホームページ
http://majo44.sakura.ne.jp/planes/F22/ooda2/904.html

わかりやすい例が同時多発テロです。
一定の地区で、同時に複数のテロ行為を引き起こし、
警察、消防の対応能力を麻痺させ、国家の治安を危機に追い込む、
といったケースですね。

この場合、総理大臣などを最高責任者として、
全ての情報収集と権限が集中した対策本部を立ち上げる、
といったやり方が最悪の対応となります。
この場合、どれほど優秀な人が総理大臣であろうと、
あっという間に無数の情報が個人に集中して速攻でループはパンクします。
そして、通常、総理大臣はそういった能力で選ばれないため、
その対応能力は絶望的であることが普通なのです。

を読んだ、私だけだろうか?

少なくとも、永井氏自身は違和感を感じたのだろう。
「災害と違って武力攻撃事態ならば、事前の準備が欠けてても、緊急事態条項で対策できるかも知れない」
「権力を集中した国家ならば、泥棒を見てから縄をなっても間に合うかも知れない」
とでも思っているからこそ、本丸である武力攻撃事態ではなく、ダシである災害を用いているのだ。
武力攻撃を仕掛ける敵として、件の旧ドイツ軍どころか、現代的なアルカイダや、軽武装大日本帝国陸軍との戦いや国共内戦を戦い抜いた中国共産党すら、想定外なのか?
Wikipedia第二次世界大戦の犠牲者」によると、先の大戦での日本人の戦没者は約240万人とも310万人とも言われているらしい。
一方、1000年に一度と言われる規模である東日本大震災の犠牲者は約2万人に過ぎない。
「災害と違って武力攻撃事態ならば…」なんて、想定が甘いと私は言わざるを得ない。

当然、緊急事態条項を求める、オツムがお花畑な連中については、述べるまでもない。

トリプトファン供給源として麦飯は重要

ゼラチンタンパク質活用法 | プロテインマニア
http://www.p-mania.com/docs2/080_gelatine.html
「グラフを見れば分かるとおり、約90%という驚異のタンパク質含有率!プロテインも真っ青です。」

1kg入りのゼラチンなら、安いところでは2500円くらいで買えますから、タンパク質1gあたりの値段は2.8円くらい。
『肉体改造研究所(筋トレ&ダイエット』の『一番安いタンパク質源は?』で計算した粉末のプロテインのタンパク質コストが質1gあたり4~5円であることを考えると、かなり割安です。

など諸々の事情で、ゼラチンを大量消費する可能性に私は直面した。

タンパク質供給源として、ゼラチンには大きな問題がある。
ゼラチンタンパク質活用法 | プロテインマニア
同上
「ゼラチンの一番大きな短所は、なんと言っても必須アミノ酸の一つであるトリプトファンを全く含んでいないということです。」
これを解消するには、他のアミノ酸が少ない割にトリプトファンを多く含む物を食べればいい。

だが、これが意外と難しい。
調べてみると、大豆や牛乳は単体でのバランスが良い上に、少々トリプトファンの量が少ない。
アミノ酸スコアの合体技 | プロテインマニア
http://www.p-mania.com/docs/110_synergy.html
「魚や肉のようにもともをアミノ酸スコア100のものと他の食品を組み合わせても、単純に平均値が上がるだけで、プラスアルファの効果は得られないと考えられます。」
同上ホームページでは、トリプトファンの供給源として色々上げているが、ゴマや海苔はタンパク質が殆どないし、小麦・白米はトリプトファン以外の必須アミノ酸も多く、トリプトファン不足=他のアミノ酸過剰を解消できない。
ナッツ類は値段が高く、常食にはできない。

逆に言えば、常食可能なものから探す方が手っ取り早い。
ふと「押し麦」の原料である
大麦 - Wikipedia
https://ja.wikipedia.org/wiki/%E3%82%AA%E3%82%AA%E3%83%A0%E3%82%AE
を調べてみると、トリプトファンアミノ酸スコアがメチオニン&システインに次いで高いじゃないか!
メチオニン&システインが一番多いのが気になるが、ゼラチンはメチオニン&システインも少ないので、多少は相殺されるだろう。

先に述べたように、殆どのタンパク源ではトリプトファンが不足気味だった。
現代人の食生活の合算アミノ酸スコアは、トリプトファン不足なはず。
ならば、ゼラチンとの相性だけでなく、現代の食生活に於いても、大麦の麦飯は重要となる。

専守防衛と抑止力 - フセインの大量破壊兵器、日本の巡航ミサイル

防衛相 長距離巡航ミサイル導入を発表 「専守防衛に反せず」 | NHKニュース
http://www3.nhk.or.jp/news/html/20171208/k10011251061000.html
を聞いて、フセイン政権率いるイラクの末路を思い出した。
イラク武装解除問題 - Wikipedia
http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%A9%E3%82%AF%E6%AD%A6%E8%A3%85%E8%A7%A3%E9%99%A4%E5%95%8F%E9%A1%8C

現在、北朝鮮弾道ミサイルの性能は、日本の保有するミサイル防衛システムの能力を越えつつある。
早晩、敵基地攻撃しか北朝鮮弾道ミサイルを防ぐ手段はなくなるだろう。
同様に、湾岸戦争終結当時のイラクもまた、再度のアメリカの侵攻を防ぐ手段は大量破壊兵器以外になかった。
別にイラクでなくても、世界No.2の大国である旧ソ連ですら、順位を付ける事を許されない唯一の超大国アメリカの侵攻を防ぐ方法として、大量破壊兵器である核兵器保有を選択している。
しかも、例え大量破壊兵器を使ったとしても、アメリカへの先制攻撃はイラクにとって自殺行為でしかない。
核兵器保有量だけでなく通常兵器保有量もNo.2であるソ連ですら、「核の冬」による全人類無理心中を恐れ、アメリカへの先制攻撃を避けてきたのだ。
フセイン政権の大量破壊兵器は、アメリカに対して「専守防衛」の要件を満たしていると、私は感じる。

さて、そのフセイン政権がどうなったかは、ご存知の通り。
イラク大量破壊兵器が防衛目的でしか使われないだなんて、敵国アメリカは認めなかった。
アメリカから見ればイラクは敵国であり、敵国の言うことなんて信じられないに決まってる。
そして、大量破壊兵器が使われる前に、フセイン政権を地上から消した。
大量破壊兵器なんて、実は最初から無かったのに。
フセイン政権が戦争を吹っかけられた原因は結局の所、実在する大量破壊兵器ではなく、「大量破壊兵器が実在して、フセインが先制攻撃する恐れ」という「敵国の恐怖」だったのだ。
そして「防衛目的でしか使えないよ」という言葉は、敵国には決して届かない。
日本の巡航ミサイルも同様だろう。
専守防衛目的でしか使わないよ」という言葉は、日本の同盟国には届いても、日本の敵国には決して届かない。
届くのは、巡航ミサイルの射程という、敵国を先制攻撃に追い立てる恐怖だけだ。

専守防衛」とは、侵略しないなら酷い目に遭わずに済む、と敵を安心させる戦略だ。
これは、抑止力に於けるアメとムチの「アメ」にあたる。
侵略したら酷い目に遭うかも、と敵を恐怖させるのが、抑止力の「ムチ」だ。
侵略した場合としない場合のリスクの差こそ、抑止力の要だ。
逆に言えば、「侵略しなくても、安心できない」と敵に思わせるのは、「侵略しても、リスクはない」と思わせるのと同様に、抑止力の低下となる。
リスクの差が縮まってしまうからだ。

フセイン政権はアメリカに安心を与えることができなかったから、地上から消えた。
敵国に対して日本は今、恐怖を与えることのみに執心して、安心を与える事を怠っていないだろうか?
いや、怠っていると私は感じる。

-- ネタ元 --
「抑止」ってなんだ? カテゴリーの記事一覧 - リアリズムと防衛ブログ
http://www.riabou.net/archive/category/%E3%80%8C%E6%8A%91%E6%AD%A2%E3%80%8D%E3%81%A3%E3%81%A6%E3%81%AA%E3%82%93%E3%81%A0%EF%BC%9F

ヨーロッパの予測市場betfairから見た第48回衆院選

昨日、共同通信社衆院選序盤情勢についての世論調査結果が報道されたが、この手の調査で
※個人の感想であり、効果には個人差があります
じゃなかった、
※態度未定の有権者が何割もおり、情勢は流動的です
がついてないものを見た記憶が無い。
一方、予測市場はもっとハッキリした情報を示してくれる。
Japan - General Election - PM After Election:ヨーロッパの予測市場betfair
https://www.betfair.com/exchange/plus/politics/market/1.135039943
によると、次期総理大臣に安倍首相が再任される確率は、13日午前2時現在で93%~97%だ。
今回の選挙の結果、少なくとも政権選択の帰趨は9割方決まっているということだ。
「そんなバカな! まだ投票日まで一週間以上あるのに、政権の帰趨が9割決まってるだと?」
と思う人は、為替などの手間がかかるだろうが、betfair社の予測市場に参加すればいい。
あなたが信じるように安倍首相再任の確率が93%以下なら、この賭けの期待値はプラスになるからだ。

反リベラル勢力の分裂選挙?

報道では「"自民党 vs 希望の党"が対立軸」らしい。
が、
・一旦「希望の党」への合流を決めた民進党議員の一部が、民進党本部に先駆けて希望の党への公認申請を拒否する
・「行き場ないリベラル」報道
リベラル票の動きが埋没しきれず、はみ出ている感じがする。
憲法改正世論調査、特に9条については、9条保持派が4割切った覚えがない。
つまり、リベラル票は4割くらいは残存しているのでは?
下手すると、殆どの小選挙区で反リベラル票6割が、自民と希望に3割ずつ分裂して、やっとこさ一人だけ候補者を立てたリベラル候補の得票4割相手に共倒れ。
さてこの「リベラル候補」、支離滅裂の民進党からどれほど出るか疑問。
希望の党から公認を得られる能力者には「リベラル候補」を名乗る資格はない。
残った人材で全小選挙区の半分を民進は埋められるだろうか?
一方、毎度の様に殆どの小選挙区泡沫候補を立てる共産党が、今回に限り候補を立てれないという事はあるだろうか?
そして共産党は、間違いなくリベラルだ。
民進がリベラル候補を立てれなかった、小選挙区の半数は、代わりに共産党が猛威を振るうだろう。
こうなると小選挙区制のダイナミズムが、民進だけでなく共産党にも働く。
共産100議席越えのリスクが、ちょっとした"風"で可能となる。
阿部総理にとっては悪夢以外の何者でもないだろう。
この悪夢を避けるには、自民vs希望の保守分裂を解消するしかない。
小池氏も似たような立場だが、民進解消まで考えた前原氏を参考にするかも。