2017年8月アーカイブ

暗殺者の復讐に続いて、ついに、グレイマン・シリーズの完結編と思われる、「暗殺者の反撃」を読むことにした。すると、他の巻と違って上下二巻もあってちょっとうんざりしたが、読み始めるとぐいぐい引き込まれて、すぐに長さは気にならなくなった。

さて、「暗殺者の反撃」ではジェントリーがついに、米国本土に帰ってきた。暗殺者の復讐で、ジェントリーがモサドの重要なミッションを助ける仕事をして、そのお礼にモサドのあるエージェントが米国に船で帰国する手はずを整えてくれたのである。

こうしてなんとか、ワシントンDCに上陸したエージェントは、文字通り着の身着のままで、無一文だった。そこで、ある麻薬密売人の溜まり場に目をつけて、そこを襲うことにした。すると当然に何人か攻撃してきたが、何人かを殺してお金と武器を奪うとともに、自分が米国に戻ってきたことを知らせるため、わざと指紋をこれでもかと残した。

ジェントリーは、第一級のリスク・アセッサーでもあるので、当然にCIAの膝元に帰ってくることが極めて危険であると分かっていた。しかし、ジェントリーにとって、どうして「見つけ次第射殺」という指示を受けたのか、その本当の理由をCIAの関係者から聞き出すことは、ある意味命よりも重大なことだった。そして、文字通り命を懸けてCIAと対決せざるをえないと覚悟していた。

ジェントリーの帰国を知ったCIAのカーマイケルは、直ちにヴァイオレータたるジェントリーを殺害する、JSOC特殊任務部隊からなるチームを立ち上げた。それだけでは不十分とみたカーマイケルは、サウジアラビアの米国における諜報部の責任者で、米国駐在のムルキン・アル-カザス、通称カズにもヴァイオレータ狩りを依頼した。しかし、これはCIAが国内で外国のテロリストを操ることになって、もし発覚したら大問題になる。わかっていても、偏執的になっているカーマイケルは、思いつくあらゆる手段をとらざるをえなかった。

カーマイケルが焦る理由もたしかにある。というのは、CIAは、ヨーロッパであれ、中東であれ、アフリカであれ、外部の組織を非合法に駆使することができた。しかし、米国内だと、法治国家としてCIAは大きな制約を受ける。なのでカーマイケルは、物理的に近いところにいるので手持ちのアセットを駆使してより有利にグレイマン狩りができるとは限らないのだった。

なので、カーマイケルはさらに、CIAをクビになっていまやフリーランスのジェントリーの元上官、ザック・ハイタワーにも、屋上屋のようにジェントリー殺しを依頼した。

するとジェントリーは孤立無援なのかというとそうでもない。カーマイケル直属の部下でジェントリーの元上司で今は、マシュー・ハンリーがいる。ハンリーは、ジェントリーが暗殺者の鎮魂でメキシコにいて、麻薬カルテルの組織に囚われて絶体絶命だったとき、ジェントリーの命を救った。ハンリーの暴挙?がなければ、ジェントリーといえども、確実に死んでいた。なので、ジェントリーは今回、カーマイケルが張り巡らしたあらゆる捜査網をかいくぐって、密かにハンリーにコンタクトした。

さらにまた、重要な役割を果たす人物がいる。それは、ワシントン・ポストの大物記者、キャサリン・キングである(関係ないが、私は、キャサリンというとどうしても、ジェフリー・ディーヴァーのキャサリン・ダンス・シリーズを想起する)。

キャサリンは、カーマイケル指揮下のCIAの動きに疑念をもって、そのことを記事にしようとしたが、カーマイケルの指示で差し止められてしまった。それでも、許される範囲でCIAを疑問視する記事を書いていると、それがジェントリーの目に留まり、ジェントリーは密かにキャサリンにコンタクトして、ある重大な依頼をした。

こうして、キャサリンのもつ人脈とジャーナリストのスキルを駆使した活躍で、ある真相がわかってくると、ジェントリーは最早生きていくことが無意味と感じるほどの絶望を感じたが、ハンリーと、ジェントリー側に付いたザックの絶大なる支援と激励で、ジェントリーは死中に活のような、常識ではありえない作戦を敢行し、カーマイケルの陣地に迫った。

ここからの展開と推移はストーリーのコアなので開示できないが、ううん、そんな理由でジェントリーはカーマイケルから長年命を狙われてきたのか、とうなってしまった。

それにしても、暗殺者グレイマンでは、よくできた、テンポのよい戦闘ものかと思っていたら、暗殺者の正義ではアフリカの絶望的な独裁制が描かれ、暗殺者の鎮魂では国家警察と麻薬カルテルの癒着が言及される。

さらに、暗殺者の復讐では、ターゲットを追い詰めるためのUAVや監視カメラなどの最新の機器や、モサドとCIAの関係の話になった。

それらすべてのストーリーの総集編として本作の暗殺者の反撃がある。ここまで読んで、その壮大且つディテールと蘊蓄も極めたグレイマン・シリーズは、希代の名作であると断言したい。

夏バテ

user-pic
0

最近どうも元気が出ない、夏バテかなあと思ってしまった。それにしてもここ数年、多少暑くても夏バテしたことはないはず、もう歳かなあと思い、ただ念のため自分のブログを夏バテというキーワードで検索してみたのだが、すると2014年の夏バテという記事と、2016年の夏バテという記事をみつけた。なんだ3年前から夏バテしていたのか、となぜかホッとした。それにしても2015年は夏バテしなかったのか、そんなはずはない、単に記録しなかったのだろうと思ったりした。

今年の夏バテの特徴は、よく分からないが、フラクタルや常微分方程式などに入れ込んで、ついいろいろ考えすぎて、仕事だけでなくそれらにエネルギーを費やしているせいもある。しかしそれらは私の老後(今も老後である)のライフワークの一部なのだから、ある程度疲れるのは仕方ない、ただ持続可能なペース配分はどうしても必要で、それが分かっていないというのが問題だった。

今年の夏はフラクタルや常微分方程式だけでなく、テレビで野球中継も観るようになった。特に広島カープを応援する。ただ、野球というのはよく言われるように筋書きのドラマで、優勝候補の広島カープといえども、がっかりしたり、憤慨したりする場面が少なくない。それも疲労の原因になる。それにしても、横浜スタジアムでの広島カープ対DeNAの三連戦は、なんとDeNAが逆転サヨナラを三試合続けるという信じられない展開になり、そこで一気にストレスが限界を超え、疲労度が閾値を超えた。こういうのは一度閾値を超えると元に戻るまでにかなり時間がかかるというヒステリシスがある。

そこにきて、公民館での行事が入り、知り合いと飲みに行ったりして、さらに疲労が累加していった。こういうときどうやって回復ざせるかというと、ミステリー小説を読んだり、酒量を下げたり、睡眠時間を増やしたり、なにもしないでぼーっとしたり、なかなか決定版はないのであった。まあでも、カバヤ食品 塩分チャージタブレッツは案外夏バテに効くかも。仕事をしながら食べていたら少しだけ元気になった。

3体問題

user-pic
0

さて、2体問題に続き、いよいよ懸案の3体問題の記述に着手することにした。私が若い頃、ルンゲクッタ法で2体問題までは記述できていたのに、3体問題で挫折したのは、3体問題だと、記述が面倒になるからなのだった。それは難しいというよりも、たんに面倒というだけなのだが、当時使用していたコンピュータ言語はBASICで、関数を定義して呼び出すということさえできない。それで細かい記入ミスをしてしまい、私の散漫な注意力では書き間違いをみつけきれなかったようである。

2つの質点の間の引力を記述する関数は、fx(x1,y1,x2,y2)とfy(x1,y1,x2,y2)として定義したので、それをそのまま使えばよい。また、面倒な変数の置き換えは、Perlを使うことにした。

そこで例えば、下記のような内容のテキストファイルをRK.txtとして用意し、これに下記ソースコード1のPerlプログラムをかけることで、うまく変換でき、その結果のRKX.txtを利用することで、ソースコード2のC++のプログラムを得た。これは難なくコンパイルできた。ソースコード2をちらっとでも見ていただくと、練達のプログラマは除き、これを手書きだけで正しく書くことが若干煩わしいことは分かっていただけるだろう。こうして3体問題がなんとか記述できたのだが、適当に位置と速度を与えても、理解困難な不規則な軌道をとって、あっという間に発散してしまう。そこで、とりあえず原点を中心とした円に三角形を形成するように同じ質量の質点を配置し、円に対する接線の方向の初期速度を与えることで、下記のような安定解を得た。

これは、当然に昔から知られていて、ラグランジュの正三角形解と呼ばれているそうである。これは安定解といっても、実は針の先端で踊る天使のように?不安定で、一方の質点の質量を1%増やしただけでも、下記のように発散してしまう。

既知の3体問題の解はいろいろ知られているようであるが、ソースコードのせいで長くなったので、それは別稿とする。

RK.txt

 a1 = u1;
 b1 = v1;
 c1 = -m2*fx(x1,y1,x2,y2) - m3*fx(x1,y1,x3,y3);
 d1 = -m2*fy(x1,y1,x2,y2) - m3*fy(x1,y1,x3,y3);
 e1 = u2;
 f1 = v2;
 g1 = -m1*fx(x2,y2,x1,y1) - m3*fx(x2,y2,x3,y3);
 h1 = -m1*fy(x2,y2,x1,y1) - m3*fy(x2,y2,x3,y3);
 p1 = u3;
 q1 = v3;
 r1 = -m1*fx(x3,y3,x1,y1) - m2*fx(x3,y3,x2,y2);
 s1 = -m1*fy(x3,y3,x1,y1) - m2*fy(x3,y3,x2,y2);

ソースコード1

open FI, "<RK.txt" or die "zzz";
open FO, ">RKX.txt";

$S1{x1} = "x1+H*a1/2.0";
$S1{y1} = "y1+H*b1/2.0";
$S1{u1} = "u1+H*c1/2.0";
$S1{v1} = "v1+H*d1/2.0";
$S1{x2} = "x2+H*e1/2.0";
$S1{y2} = "y2+H*f1/2.0";
$S1{u2} = "u2+H*f1/2.0";
$S1{v2} = "v2+H*h1/2.0";
$S1{x3} = "x3+H*p1/2.0";
$S1{y3} = "y3+H*q1/2.0";
$S1{u3} = "u3+H*r1/2.0";
$S1{v3} = "v3+H*s1/2.0";

$S2{x1} = "x1+H*a2/2.0";
$S2{y1} = "y1+H*b2/2.0";
$S2{u1} = "u1+H*c2/2.0";
$S2{v1} = "v1+H*d2/2.0";
$S2{x2} = "x2+H*e2/2.0";
$S2{y2} = "y2+H*f2/2.0";
$S2{u2} = "u2+H*f2/2.0";
$S2{v2} = "v2+H*h2/2.0";
$S2{x3} = "x3+H*p2/2.0";
$S2{y3} = "y3+H*q2/2.0";
$S2{u3} = "u3+H*r2/2.0";
$S2{v3} = "v3+H*s2/2.0";

$S3{x1} = "x1+H*a3";
$S3{y1} = "y1+H*b3";
$S3{u1} = "u1+H*c3";
$S3{v1} = "v1+H*d3";
$S3{x2} = "x2+H*e3";
$S3{y2} = "y2+H*f3";
$S3{u2} = "u2+H*f3";
$S3{v2} = "v2+H*h3";
$S3{x3} = "x3+H*p3";
$S3{y3} = "y3+H*q3";
$S3{u3} = "u3+H*r3";
$S3{v3} = "v3+H*s3";

while (<FI>)     {

 printf FO "%s",$_;
}

seek FI,0,0;
$N = 2;
while (<FI>)    {
 chomp;
   foreach $x (sort keys %S1)  {
     $y = $S1{$x};
     $_ =~ s/$x/$y/g;
   }
 printf FO "%s%d%s\n",substr($_,0,2),$N,substr($_,3,120);
}

seek FI,0,0;
$N++;
while (<FI>)    {
 chomp;
   foreach $x (sort keys %S2)  {
     $y = $S2{$x};
     $_ =~ s/$x/$y/g;
   }
 printf FO "%s%d%s\n",substr($_,0,2),$N,substr($_,3,120);

}
seek FI,0,0;
$N++;
while (<FI>)    {
 chomp;
   foreach $x (sort keys %S3)  {
     $y = $S3{$x};
     $_ =~ s/$x/$y/g;
   }
 printf FO "%s%d%s\n",substr($_,0,2),$N,substr($_,3,120);

}

ソースコード2

//---------------------------------------------------------------------------

#include <vcl.h>
#include <math.h>
#pragma hdrstop

#include "Main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
double fx(double x1, double y1, double x2, double y2);
double fy(double x1, double y1, double x2, double y2);
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Close1Click(TObject *Sender)
{

 Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Run1Click(TObject *Sender)
{
const double H = 0.000001;  // 刻み
double x1,y1,u1,v1;
double x2,y2,u2,v2;
double x3,y3,u3,v3;
double a1,a2,a3,a4;  // dx1
double b1,b2,b3,b4;  // dy1
double c1,c2,c3,c4;  // du1
double d1,d2,d3,d4;  // dv1
double e1,e2,e3,e4;  // dx2
double f1,f2,f3,f4;  // dy2
double g1,g2,g3,g4;  // du2
double h1,h2,h3,h4;  // dv2
double p1,p2,p3,p4;  // dx3
double q1,q2,q3,q4;  // dy3
double r1,r2,r3,r4;  // du3
double s1,s2,s3,s4;  // dv3
double m1,m2,m3;       // 質量
double px, py;
double pi = 3.14159;
double TH= 2.0*pi/3.0;
int N = 0;           // 繰り返し回数
m1 = 1.0;
m2 = 1.0;
m3 = 1.0;


// 位置と速度の初期値
x1 = 3.0*cos(TH);  y1 = 3.0*sin(TH); u1 = -0.1*sin(TH); v1 = 0.1*cos(TH);
x2 = 3.0*cos(2.0*TH); y2 = 3.0*sin(2.0*TH); u2 = -0.1*sin(2.0*TH); v2 = 0.1*cos(2.0*TH);
x3 = 3.0; y3 = 0.0; u3 = 0.0; v3 = 0.1;

while ( N++ < 100000000 )        {

 a1 = u1;
 b1 = v1;
 c1 = -m2*fx(x1,y1,x2,y2) - m3*fx(x1,y1,x3,y3);
 d1 = -m2*fy(x1,y1,x2,y2) - m3*fy(x1,y1,x3,y3);
 e1 = u2;
 f1 = v2;
 g1 = -m1*fx(x2,y2,x1,y1) - m3*fx(x2,y2,x3,y3);
 h1 = -m1*fy(x2,y2,x1,y1) - m3*fy(x2,y2,x3,y3);
 p1 = u3;
 q1 = v3;
 r1 = -m1*fx(x3,y3,x1,y1) - m2*fx(x3,y3,x2,y2);
 s1 = -m1*fy(x3,y3,x1,y1) - m2*fy(x3,y3,x2,y2);
 a2 = u1+H*c1/2.0;
 b2 = v1+H*d1/2.0;
 c2 = -m2*fx(x1+H*a1/2.0,y1+H*b1/2.0,x2+H*e1/2.0,y2+H*f1/2.0) 
     - m3*fx(x1+H*a1/2.0,y1+H*b1/2.0,x3+H*p1/2.0,y3+H*q1/2.0);
 d2 = -m2*fy(x1+H*a1/2.0,y1+H*b1/2.0,x2+H*e1/2.0,y2+H*f1/2.0) 
      - m3*fy(x1+H*a1/2.0,y1+H*b1/2.0,x3+H*p1/2.0,y3+H*q1/2.0);
 e2 = u2+H*f1/2.0;
 f2 = v2+H*h1/2.0;
 g2 = -m1*fx(x2+H*e1/2.0,y2+H*f1/2.0,x1+H*a1/2.0,y1+H*b1/2.0) 
      - m3*fx(x2+H*e1/2.0,y2+H*f1/2.0,x3+H*p1/2.0,y3+H*q1/2.0);
 h2 = -m1*fy(x2+H*e1/2.0,y2+H*f1/2.0,x1+H*a1/2.0,y1+H*b1/2.0) 
      - m3*fy(x2+H*e1/2.0,y2+H*f1/2.0,x3+H*p1/2.0,y3+H*q1/2.0);
 p2 = u3+H*r1/2.0;
 q2 = v3+H*s1/2.0;
 r2 = -m1*fx(x3+H*p1/2.0,y3+H*q1/2.0,x1+H*a1/2.0,y1+H*b1/2.0) 
      - m2*fx(x3+H*p1/2.0,y3+H*q1/2.0,x2+H*e1/2.0,y2+H*f1/2.0);
 s2 = -m1*fy(x3+H*p1/2.0,y3+H*q1/2.0,x1+H*a1/2.0,y1+H*b1/2.0) 
      - m2*fy(x3+H*p1/2.0,y3+H*q1/2.0,x2+H*e1/2.0,y2+H*f1/2.0);
 a3 = u1+H*c2/2.0;
 b3 = v1+H*d2/2.0;
 c3 = -m2*fx(x1+H*a2/2.0,y1+H*b2/2.0,x2+H*e2/2.0,y2+H*f2/2.0) 
      - m3*fx(x1+H*a2/2.0,y1+H*b2/2.0,x3+H*p2/2.0,y3+H*q2/2.0);
 d3 = -m2*fy(x1+H*a2/2.0,y1+H*b2/2.0,x2+H*e2/2.0,y2+H*f2/2.0) 
      - m3*fy(x1+H*a2/2.0,y1+H*b2/2.0,x3+H*p2/2.0,y3+H*q2/2.0);
 e3 = u2+H*f2/2.0;
 f3 = v2+H*h2/2.0;
 g3 = -m1*fx(x2+H*e2/2.0,y2+H*f2/2.0,x1+H*a2/2.0,y1+H*b2/2.0) 
      - m3*fx(x2+H*e2/2.0,y2+H*f2/2.0,x3+H*p2/2.0,y3+H*q2/2.0);
 h3 = -m1*fy(x2+H*e2/2.0,y2+H*f2/2.0,x1+H*a2/2.0,y1+H*b2/2.0) 
      - m3*fy(x2+H*e2/2.0,y2+H*f2/2.0,x3+H*p2/2.0,y3+H*q2/2.0);
 p3 = u3+H*r2/2.0;
 q3 = v3+H*s2/2.0;
 r3 = -m1*fx(x3+H*p2/2.0,y3+H*q2/2.0,x1+H*a2/2.0,y1+H*b2/2.0) 
      - m2*fx(x3+H*p2/2.0,y3+H*q2/2.0,x2+H*e2/2.0,y2+H*f2/2.0);
 s3 = -m1*fy(x3+H*p2/2.0,y3+H*q2/2.0,x1+H*a2/2.0,y1+H*b2/2.0) 
      - m2*fy(x3+H*p2/2.0,y3+H*q2/2.0,x2+H*e2/2.0,y2+H*f2/2.0);
 a4 = u1+H*c3;
 b4 = v1+H*d3;
 c4 = -m2*fx(x1+H*a3,y1+H*b3,x2+H*e3,y2+H*f3) 
      - m3*fx(x1+H*a3,y1+H*b3,x3+H*p3,y3+H*q3);
 d4 = -m2*fy(x1+H*a3,y1+H*b3,x2+H*e3,y2+H*f3) 
      - m3*fy(x1+H*a3,y1+H*b3,x3+H*p3,y3+H*q3);
 e4 = u2+H*f3;
 f4 = v2+H*h3;
 g4 = -m1*fx(x2+H*e3,y2+H*f3,x1+H*a3,y1+H*b3) 
      - m3*fx(x2+H*e3,y2+H*f3,x3+H*p3,y3+H*q3);
 h4 = -m1*fy(x2+H*e3,y2+H*f3,x1+H*a3,y1+H*b3) 
      - m3*fy(x2+H*e3,y2+H*f3,x3+H*p3,y3+H*q3);
 p4 = u3+H*r3;
 q4 = v3+H*s3;
 r4 = -m1*fx(x3+H*p3,y3+H*q3,x1+H*a3,y1+H*b3) 
      - m2*fx(x3+H*p3,y3+H*q3,x2+H*e3,y2+H*f3);
 s4 = -m1*fy(x3+H*p3,y3+H*q3,x1+H*a3,y1+H*b3) 
      - m2*fy(x3+H*p3,y3+H*q3,x2+H*e3,y2+H*f3);


 x1 += H*(a1 + 2.0*a2 + 2.0*a3 + a4)/6.0;
 y1 += H*(b1 + 2.0*b2 + 2.0*b3 + b4)/6.0;
 u1 += H*(c1 + 2.0*c2 + 2.0*c3 + c4)/6.0;
 v1 += H*(d1 + 2.0*d2 + 2.0*d3 + d4)/6.0;
 x2 += H*(e1 + 2.0*e2 + 2.0*e3 + e4)/6.0;
 y2 += H*(f1 + 2.0*f2 + 2.0*f3 + f4)/6.0;
 u2 += H*(g1 + 2.0*g2 + 2.0*g3 + g4)/6.0;
 v2 += H*(h1 + 2.0*h2 + 2.0*h3 + h4)/6.0;
 x3 += H*(p1 + 2.0*p2 + 2.0*p3 + p4)/6.0;
 y3 += H*(q1 + 2.0*q2 + 2.0*q3 + q4)/6.0;
 u3 += H*(r1 + 2.0*r2 + 2.0*r3 + r4)/6.0;
 v3 += H*(s1 + 2.0*s2 + 2.0*s3 + s4)/6.0;
 px = 290.0 + 70.0*x1;
 py = 290.0 - 70.0*y1;
 Canvas->Pixels[px][py] = clRed;
 px = 290.0 + 70.0*x2;
 py = 290.0 - 70.0*y2;
 Canvas->Pixels[px][py] = clBlue;
 px = 290.0 + 70.0*x3;
 py = 290.0 - 70.0*y3;
 Canvas->Pixels[px][py] = clPurple;
}
}
//---------------------------------------------------------------------------
double fx(double x1, double y1, double x2, double y2) {
 double r,R;
 r = (x1 - x2)*(x1 - x2) + (y1 - y2)*(y1 - y2);
 R = r * sqrt(r);
 return (x1 - x2)/R;
}

double fy(double x1, double y1, double x2, double y2) {
 double r,R;
 r = (x1 - x2)*(x1 - x2) + (y1 - y2)*(y1 - y2);
 R = r * sqrt(r);
 return (y1 - y2)/R;
}

前にも書いたが、いまいち盛り上がりに欠ける王位戦とはいえ、羽生の頑張りをみたいので、観戦してみた。すると流石に菅井七段は変則三間飛車は見送ったようだが、またしてもなんともすごい序盤になった。すなわち、初手から▲5六歩,△3四歩,▲5八飛,△4四歩,▲7六歩,△3二銀,▲6八銀,△4三銀,▲9六歩,△3三角,▲5七銀,△2二飛,▲9五歩,△2四歩と進んだのだが。

【図1】 15手目▲2八飛まで
持ち駒:△羽生王位=なし



持ち駒:▲菅井七段=なし
なんと、菅井七段は▲2八飛と、中飛車を居飛車に戻した。これには検討のプロもびっくりである。ここから△2五歩,▲4八銀右,△6二玉,▲3六歩,△7二玉,▲3八金,△5二金左,▲3七桂,△8二玉,▲2九飛,△5四銀,▲6八金,△6四歩,▲5八玉,△7二銀,▲4六歩と進んだ。ここでは優劣云々の段階ではない。

【図2】 32手目△4五歩まで
持ち駒:△羽生王位=なし



持ち駒:▲菅井七段=なし
△4五歩は当然の捌きであろう。ところが、▲3三角成,△同桂,▲8八角,△2三飛,▲4五桂,△同桂,▲同歩,△2一飛,▲3三角成,△4五銀となってみると、なんだか後手をもって自信がないようである。

【図3】 43手目▲4四桂まで
持ち駒:△羽生王位=角桂歩



持ち駒:▲菅井七段=歩
要するに▲4四桂が厳しいのである。ただ、激指は、別に五分じゃないの?といっているのでその大局観はよくわからない。ともかく▲4四桂以下は、▲4四桂,△6五桂,▲3二桂成,△5七桂成,▲同金,△5一飛,▲4二歩,△4六銀打,▲同金,△同銀,▲5七銀打,△同銀成,▲同銀と進んだ。

【図4】 56手目△6二金上まで
持ち駒:△羽生王位=角金銀歩



持ち駒:▲菅井七段=銀桂
ここで羽生王位が指した△6二金上があまり感触がよくなくて、正解は△3一金らしい。▲3一同成桂なら△同飛▲2二馬△5一飛▲3二馬に△5四角で先手も大変。ともかく、△6二金上以下は、▲4一歩成,△7一飛,▲4二成桂,△同金,▲同と,△6五桂,▲6六銀打,△5七桂成,▲同銀,△7八銀と進んだ。

【図5】 67手目▲8六桂まで
持ち駒:△羽生王位=角金銀歩2



持ち駒:▲菅井七段=金桂
ここで菅井七段の▲8六桂が絶妙手だった。7四の継ぎ桂をみせて、本命は端攻めだった。すなわち、▲8六桂,△6三銀に、△6三銀,▲9四歩,△同歩,▲同香,△9三歩,▲同香成,△同玉,▲7七馬,△6九銀,▲同飛,△同銀,▲同玉,△4九飛,▲5九金,△4二飛成と進み、

【図6】 83手目▲9四桂まで
持ち駒:△羽生王位=角金香歩2



持ち駒:▲菅井七段=銀2桂歩2
▲9四桂がまたまた好手だった。これは▲8五桂以下の簡単な詰めろ。そこで羽生は△8二金と受けるが、▲8五桂,△9二玉,▲9三歩,△同桂,▲同桂成,△同金,▲8二銀,△9四金,▲7一銀成,△9三角,▲9五歩,△7一角,▲9四歩と進んだ。

【図7】 98手目△8一玉まで
持ち駒:△羽生王位=銀桂2香歩3



持ち駒:▲菅井七段=飛金銀桂
羽生はなんとか△8一玉と逃げるが、△8一玉,▲9三桂,△7二玉,▲8一金,△6一金,▲9一金,△6五桂,▲9二飛,△8二香と進んで、羽生の玉が絶対絶命になった。

【図8】 107手目▲8一桂成まで
持ち駒:△羽生王位=銀桂歩3



持ち駒:▲菅井七段=銀香
▲8一桂成でいよいよ受けがない。要するに後手は▲9三歩成がきたらどうしようもないので、それより速い手が必要なのだが、先手にはどうやっても詰めろがかからない。結局、△7七桂成,▲同桂,△8八銀,▲4八香と進んで、羽生王位の投了となった。

終わってみると、56手目△6二金上が羽生王位の敗着なのかもしれないが、それ以外にもどうしても菅井七段の方に意欲的な手が多かった。この流れだと、羽生王位の防衛は相当難しそうなのだが、どうなのだろうか。

漱石の猫

user-pic
0

猫力関連で、夏目漱石というと、なんといっても吾輩は猫であるが有名であるが、読売新聞の「編集手帳」の欄によると、漱石が飼っていた猫は本当に名前がなくて、「猫」と呼ばれていたという。

一方、漱石は犬も飼っていて、そちらはギリシャ神話にちなんだ「ヘクトー」という立派な名前があったそうで、すると犬に比べて猫が冷遇されているようであるが、そうでもなくて、猫が亡くなったとき、漱石は相当に悲嘆に暮れたようである。それで門下生四人に葉書を出し、「逝去」「埋葬」「ご会葬には不申候」という語句が並んでいた。ユーモアと哀悼がにじむ。

せめて亡くなった猫には戒名でもつけるかと思ったら、漱石は白木の墓標に「猫の墓」と書いただけだという。文学博士を辞退した漱石にとって、名前なんてどうでもいいのだろうか。おそらくであるが、名前をつけなかったことは、独特のポジティブな意味があるのだろう。要するに、英語でいえば、"THE CAT"だったりして。

私がアマゾンの本を散策していとき、近藤龍一著、「12歳の少年が書いた量子力学の教科書」ベレ出版という本をみつけて、若い天才が好きな私はついどんな本だろうと思ってしまった。しかも内容が私好みの物理のテーマである。

それからしばらくして、たまたまある知り合いから、「12歳の少年が書いた量子力学の教科書」という本が出たので、この本を読んで、ブログでこの本の書評を書いてくれないか、と依頼を受けた。そういう書評のご指名というのは滅多にないことで名誉なことと、自宅から歩いて30分程度の新刊書店に注文しにいった。店員にそれを告げると、その本なら置いてますよ、というので、へぇこんな本が一般書店に並んでいるんだ、とちょっと驚いた。

そして、購入すると、休みの日にノートをとりながら、この本を読んでみた。実はアマゾンのコメントでちょっと厳しいものもあったので、さあどうかなとちょっ懸念した面もあった。ところが読んでみると、うーん、と感心する内容だった。

さて、書評に入る前に著者のプロフィールについて簡単に触れておく。近藤龍一さんは2001年生まれで、すると今16歳でまだ高校生である。しかし、この本を書き始めたのは2014年2月で、まさにまだ12歳のときだった。それは中学受験の2日後だった。ちなみに近藤さんは、八王子学園・八王子中学・高校に通っている。

なにしろ子供の頃から知識欲の塊で、いろいろな専門書を読んで独習していたという。ドワンゴの川上氏もそういう子供だったらしいが、近藤さんは9歳のとき量子力学をものにしてやろうと思った、というからさらに上をいっている。そしてその勉強が嵩じて、自分でも本を書いてみたくなったらしい。そもそも教え好きでもあるらしい。

そこで、書評というか内容の紹介に入る。するとまず、第0章で、量子力学とは何かという短い章でいきなり、量子力学の不可解性がきちんと説明されていて、ここだけ読んでなんとなく全体の梗概のようになっている。近藤さんがなかなか手慣れていることもわかる。

次の第1章もなかなか特徴的で、なんと「万物の根源」と称して、旧約聖書の引用から始まっている。確かに"theory of everything"を謳うとき、そこから始めるのもありだと思う。さらにうれしいのは、タレスなどのソクラテス以前の哲学者にも言及していることである。そして原子論の始祖をレウキッポス、デモクリトスあたりから始めるのもいい。時代を経て、分子論のドルトンが出てくるのもいい。このような構成にした根拠を近藤さんは、ファインマンが至高の知識として「原子仮設」を挙げたことに言及する。

ここから、空洞輻射、黒体輻射など量子力学前夜の話になる。レイリー・ジーンズ、シュテファン・ボルツマン、ヴィーンの公式、プランクの公式など、朝永振一郎の「量子力学」にあるような説明の流れを採用するが、それはまあほとんど定跡であろう。ただ近藤さんはきちんと数式を掲げ、それを使って説明することを怠らない。それによって説明が上滑りになることを防いでいる。ただ、数式を追って読むと疲れるが、そもそもが疲れないで量子力学を理解する方法なんてない。

さらになるほど、と思ったのは、プランク定数についてさまざまな側面から丁寧に説明されていることである。プランク長さ、プランク時間、プランク質量、プランク電荷、プランク温度など、私は他の本であまりみかけたことがない。まあ単に私が不勉強なだけかもしれないが。

そこから第2章の「前期量子論」に入って光の二重性に言及するのも定法であるが、ここまでも、数式を駆使しつつ、登場人物の逸話などが織り込まれていて、飽きさせないようになっている。そしてさらに原子モデルの説明に入る。ここではボーア、そしてド・ブロイが引用され、次の、この本の白眉である第3章「数学的定式化」に進む。

「数学的定式化」ではなんと、行列の説明から始まる。それはハイゼンベルクが行列の概念を使って量子力学の方程式を記述したからだが、それにしてもこのような迂遠さを私は好む。そして行列で記述された量子力学の方程式、すなわち行列力学の扱いの困難さに言及したあと、いよいよ真打ちのシュレーディンガー方程式の説明に入る。

シュレーディンガー方程式の説明では偏微分、解析力学にも言及されてくる。すると最早、大学で理系の勉強した人でないとついていくのはかなり困難なのではあるまいか。それは著者の年齢に鑑みると、著者がいかに早熟かということの例証でもあるのだが。

ここでコメントすると、この本は、まあこんなもんだろうと説明をすっとばしている箇所がほとんどない。シュレーディンガー方程式の解釈の困難、ボーア解釈、シュレーディンガーじしんの当惑、演算子と運動量の対応など、丁寧にカバーされている。シュレーディンガー方程式をニュートン方程式に帰着させるエーレンフェストの定理、マックス・ボルンの異端解釈まで言及されている。あと、シュレーディンガーの猫の哲学的?解釈も説明される。まあ猫好きとしては、猫を殺すのはやめてほしいのだが。

そこから、ハイゼンベルクの不確定性原理、ボーアの相補性原理も説明される。なお、ハイゼンベルクの不確定性原理には不確定性原理、破れるみたいな議論もあるのだが、流石にそれをこの本に期待するのはマニアックすぎるというものである。

そこから、現在でもホットな話題である量子力学の解釈の話題に触れ、ついに相対論的量子力学の方程式である、ディラックの方程式に言及される。ここまでくると、専門の物理の学生以外まず勉強しないだろう。物理学科の落ちこぼれ学生だった私も、ディラックの方程式なんてまったく分からないので、今更のように勉強しなくちゃ、とおもう。

ここまで相対論といっても、特殊相対性理論しかでてこなかったので、いよいよ一般相対性理論も登場して、"theory of everything"を謳うなら、量子力学と一般相対性理論とを融合させるべしみたいな議論になってきたが、このあたりどうしても端切れが悪い。しかし、どんな物理学者がそのあたりを歯切れよく説明できるのだろうか。大栗博司博士ならできるだろう、きっと。

この本がここで終わるのかと思ったら、なんと量子コンピュータや量子テレポーテーションの説明もある。この本はいい意味で、あくまでも貪欲なのである。最近の旬の量子アニーリングについては言及がないが、それはたんにこの話題が新しすぎるだけだろう。

それだけではない、この本には補足説明として、パウリの排他率、経路積分法、スピノール、クライン・仁科の公式、第二量子化まで言及される。まさに、入門書から専門書橋渡しする中間書になっていると思われる。

あと、私が懸念するのは、著者の近藤さんの将来である。12歳にしてこれほどの本をまとめ上げるのだから、近藤さんが大秀才であるのは間違いない。私はつい、ギムナジウムのときに一般相対論の論文を書いていたほどの早熟の天才だったパウリを想起するのだが、今後近藤さんが学びつつ、次第にパウリのようなオリジナルな業績を挙げるようになってほしいものである。そのためにはある時点で、いままで習ったことの大部分をアンラーニングする機会も必要かもしれない。

勝敗の流れ

user-pic
0

典型的には野球だったり将棋だったりするが、チャンピオン・クラスの強い人でも勝率が7割ということはあまりない。すると、よほどの強者でも三回に一回は負けるということになる。そういう現実の下でどのように戦うか。プロは当然そういうモデルをもっていると思うが、典型的には次のような戦い方の戦略を思いついた。

まず、あまり勝ち目がなさそうな勝負では、普通に頑張るが、厳しそうならそんなに粘らない。

もちろん接戦なら、必死で頑張る。

問題は楽勝になったときである。こんなときつい、辛く店じまいするみたいな戦い方をしたくなるが、ここで非自明にも、形勢を引き戻すというか、わざと綾をつくるような戦い方がよいようである。それで間違えて逆転負けしても、まあ仕方ないと諦める。

こういう戦い方を私は、典型的には囲碁の井山六冠の戦い方をみていて感じた。要するに優勢になってもリスクを求めて戦うのが綾のようである。

あと、必然的に巡ってくる負け戦をどうするかが、案外一番重要かもしれない。すなわち、負け戦で溜まっている悪いツキを出し尽くすところに一番のノウハウがあるのだと思う。

負け惜しみとしかいえないが、広島カープが意外にも3試合連続でDeNAに逆転負けしたのをみて、ああ、カープはここで悪いツキを吐き出そうとしたと思った。囲碁で言えば捨て石である。その捨て石は決して小さくないが、まだ地合いは余せるとみているのだろう。少なくともカープに必死で勝ちにいく姿勢はみられなかった。

じつは私は全く勝負強さというものが分かっておらず、私ほど勝負の機微を語るのがふさわしくない者もいないかもしれない。まあ仕方ないか。

2体問題

user-pic
0

「惑星の軌道」に続き、2体問題を常微分方程式で記述してみることにした。惑星の軌道のところで論じた軌道の発散あるいは衝突の問題は当然に2体問題にもついて回り、安定した軌道を得るためには初期位置と速度、そして質量を注意深く選ぶ必要がある。

ここでいう安定した軌道とは、2体問題の各々の物体がそれぞれ、一定の楕円軌道上を動き続けるということだと定義する。すると、安定した軌道を達成するためには、2つの物体の質量と速度を掛けた運動量ベクトルの成分が、それぞれゼロであるということが必要条件となる。

それが十分条件でないのは、2つの物体の間の距離に対して初期速度が小さすぎると、2つの物体が衝突してしまうか、引力が小さすぎて互いに無限遠に離れてしまう。なので、安定した軌道を実現するのはかなり難しい。安定した軌道を実現するための典型的なシナリオは次のようなものである。

  1. 2つの物体の質量を等しいとする。
  2. 2つの物体の初期位置の座標をそれぞれ、(-r,0),(r,0)とする。また、2つの物体の初期速度をそれぞれ(0,-v),(0,v)とする。そしてrとvの値を注意深く選ぶと、2つの物体は下記のように互いに交わる楕円軌道をとる。

このとき1つの物体の軌道を青、もう一つの物体の軌道を赤で表示すると、以下のとおりである。

それでは、これと同じ条件で、一方の物体の質量を1%だけ他方より重くしてみる。すると、運動量ベクトルの合成成分のバランスが崩れて、2つの楕円軌道は、下記のように少しずつ移動する。

別の条件として、質量を同じにして、一方の物体の初期速度に少しだけ追加の速度を与える。すると、下記のように追加の速度の分だけ楕円軌道は移動し始める。

このように2つの軌道が移動しても、各々おの軌道が所定の距離内にとどまるとき、これを準安定と呼ぶことにする。このように考察すると2体問題の安定性の議論は、そんなに自明ではない。例えば、互いに質量の異なる2体問題で準安定でなく安定な条件は存在するか、という命題が与えられる。これはおそらく成立しない。

とりあえず、2体問題の常微分方程式をルンゲクッタ法で解くためのブログラミングのソースコードを以下に示す。

//---------------------------------------------------------------------------

#include <vcl.h>
#include <math.h>
#pragma hdrstop

#include "Main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
double fx(double x1, double y1, double x2, double y2);
double fy(double x1, double y1, double x2, double y2);
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Close1Click(TObject *Sender)
{

 Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Run1Click(TObject *Sender)
{
const double H = 0.00001;  // 刻み
double x1,y1,u1,v1;     // x1,y1は座標値で、u1,v1はその速度のxとy成分
double x2,y2,u2,v2;     // x2,y2は座標値で、u2,v2はその速度のxとy成分
double a1,a2,a3,a4;  // dx1
double b1,b2,b3,b4;  // dy1
double c1,c2,c3,c4;  // du1
double d1,d2,d3,d4;  // dv1
double e1,e2,e3,e4;  // dx2
double f1,f2,f3,f4;  // dy2
double g1,g2,g3,g4;  // du2
double h1,h2,h3,h4;  // dv2
double m1, m2;       // 質量
double px, py;
int N = 0;           // 繰り返し回数
m1 = 1.1;
m2 = 1.0;

// 位置と速度の初期値
x1 = 3.2;  y1 = 0.0; u1 = 0.01; v1 = 0.2;
x2 = -3.0;  y2 = 0.0; u2 = 0.0; v2 = -0.21;

while ( N++ < 100000000 )        {
 a1 = u1;
 b1 = v1;
 c1 = -m1*fx(x1,y1,x2,y2);
 d1 = -m1*fy(x1,y1,x2,y2);
 e1 = u2;
 f1 = v2;
 g1 = -m2*fx(x2,y2,x1,y1);
 h1 = -m2*fy(x2,y2,x1,y1);
 a2 = u1 + H*c1/2.0;
 b2 = v1 + H*d1/2.0;
 c2 = -m1*fx(x1+H*a1/2.0,y1+H*b1/2.0,x2+H*e1/2.0,y2+H*f1/2.0);
 d2 = -m1*fy(x1+H*a1/2.0,y1+H*b1/2.0,x2+H*e1/2.0,y2+H*f1/2.0);
 e2 = u2 + H*g1/2.0;
 f2 = v2 + H*h1/2.0;
 g2 = -m2*fx(x2+H*e1/2.0,y2+H*f1/2.0,x1+H*a1/2.0,y1+H*b1/2.0);
 h2 = -m2*fy(x2+H*e1/2.0,y2+H*f1/2.0,x1+H*a1/2.0,y1+H*b1/2.0);
 a3 = u1 + H*c2/2.0;
 b3 = v1 + H*d2/2.0;
 c3 = -m1*fx(x1+H*a2/2.0,y1+H*b2/2.0,x2+H*e2/2.0,y2+H*f2/2.0);
 d3 = -m1*fy(x1+H*a2/2.0,y1+H*b2/2.0,x2+H*e2/2.0,y2+H*f2/2.0);
 e3 = u2 + H*g2/2.0;
 f3 = v2 + H*h2/2.0;
 g3 = -m2*fx(x2+H*e2/2.0,y2+H*f2/2.0,x1+H*a2/2.0,y1+H*b2/2.0);
 h3 = -m2*fy(x2+H*e2/2.0,y2+H*f2/2.0,x1+H*a2/2.0,y1+H*b2/2.0);
 a4 = u1 + H*c3;
 b4 = v1 + H*d3;
 c4 = -m1*fx(x1+H*a3,y1+H*b3,x2+H*e3,y2+H*f3);
 d4 = -m1*fy(x1+H*a3,y1+H*b3,x2+H*e3,y2+H*f3);
 e4 = u2 + H*g3;
 f4 = v2 + H*h3;
 g4 = -m2*fx(x2+H*e3,y2+H*f3,x1+H*a3,y1+H*b3);
 h4 = -m2*fy(x2+H*e3,y2+H*f3,x1+H*a3,y1+H*b3);
 x1 += H*(a1 + 2.0*a2 + 2.0*a3 + a4)/6.0;
 y1 += H*(b1 + 2.0*b2 + 2.0*b3 + b4)/6.0;
 u1 += H*(c1 + 2.0*c2 + 2.0*c3 + c4)/6.0;
 v1 += H*(d1 + 2.0*d2 + 2.0*d3 + d4)/6.0;
 x2 += H*(e1 + 2.0*e2 + 2.0*e3 + e4)/6.0;
 y2 += H*(f1 + 2.0*f2 + 2.0*f3 + f4)/6.0;
 u2 += H*(g1 + 2.0*g2 + 2.0*g3 + g4)/6.0;
 v2 += H*(h1 + 2.0*h2 + 2.0*h3 + h4)/6.0;
 px = 290.0 + 70.0*x1;
 py = 290.0 - 70.0*y1;
 Canvas->Pixels[px][py] = clRed;
 px = 290.0 + 70.0*x2;
 py = 290.0 - 70.0*y2;
 Canvas->Pixels[px][py] = clBlue;
}
}
//---------------------------------------------------------------------------
double fx(double x1, double y1, double x2, double y2) {
 double r,R;
 r = (x1 - x2)*(x1 - x2) + (y1 - y2)*(y1 - y2);
 R = r * sqrt(r);
 return (x1 - x2)/R;
}

double fy(double x1, double y1, double x2, double y2) {
 double r,R;
 r = (x1 - x2)*(x1 - x2) + (y1 - y2)*(y1 - y2);
 R = r * sqrt(r);
 return (y1 - y2)/R;
}

猫力

user-pic
0

猫を飼っていると、なんだこいつはとそのふてぶてしさにあきれることもあるが、次第にその生き方から学びたいという面も見出したりする。

例えば、先日、あるコンビニに行ったとき、買いたいものをカゴに入れてレジに行くと、あれっ、誰もいない。こんなとき私の猫力が試される。すなわち、普通なら店員を呼びにいくところだが、私はなにもせずじっと店員が気づくのを待つ。結局2分くらいたってやっと店員が来たが、私は全く嫌な顔をせず、もう二度とここに来るか、とも思わない。そういう恬淡さが猫の一つの側面である。これは私はまあいい線をいっていると自負する。

別の猫の側面は、ともかくエピキュリアンなのであって、安楽な生き方に臆さず耽溺する。しかし、この側面はどうも私は必ずしも得意でない。ついストイックに努力してしまう。それは猫力というより犬力というべきかもしれない。私のサラリーマンとしての性質である。

さらに別の猫の側面は、所属する家庭なり組織に特になにも貢献していなくても、自然に居場所をつくるというか可愛がられるという側面であるが、ここに至っては私は決定的に苦手で、いつも意識的に居場所をつくりにいっている。

もちろん他の猫力として、ジャンプしたり、こっそり忍び込んだりする能力もあるが、この側面は私は悲惨なほど苦手である。

ということで私の猫力は将棋でいえばせいぜいアマ8級くらいで初心者もいいところである。それでは私の師匠たる飼い猫の猫力はというと、実はアマ初段程度である。ええっ、なんでそんなに低いのだと飼い猫からクレームがつきそうであるが、それはある意味仕方ない。すなわち生まれてすぐに親から引き離されて、親猫や周囲の猫から猫としてのノウハウを学ぶ暇がなかった。また、飼い始めても、家飼で外に出してもらえていない。なので、近所の猫と切磋琢磨していない。もちろん鼠をみたこともないので、狩猟本能も発揮できていない。なので、なんとも情けないなあとあきれること頻りだったりする。

そんな我が家の飼い猫であるが、馬鹿な子供ほど可愛いというように、冴えない猫ほど可愛いというのもあるので、それはそれで立派な猫力なのだと私は思っている次第である。そもそも、なんの取り柄があるかわからない猫が生存競争に勝てているというのがすごいことなのであった。

SRO Ⅶ

user-pic
0

SRO Ⅵを読んで、もう半年以上経つが、新聞でSRO Ⅶが出ると広告をみたので、慌てて本屋に買いにいった。よく考えたら、SROシリーズを新刊直後に読むのはこれが初めてである。

さて、SRO Ⅶは、育児放棄というか幼児虐待のシーンから始まった。そこは夫婦と子供二人の家庭なのだが、両親が子供に暴力をふるったり、完全にネグレクトしたりで、子供のうち小さかった妹は栄養不足で死んでしまった。兄の方は父親から暴力を振るわれたが、必死で抵抗して、なんとか逃げた。

その男の子の名前は五味川良樹といった。逃げて家から出ても行くあてもないので、公園でぶらぶらしていると、イチという可愛い女の子に声をかけられた。キャンピングカーで集団で暮らしていて、寝るところも食べ物もある。お金も恵んでくれる。

そこには、ダーとマムという比較的若いカップルがいて、あとは全員子供である。しかし、寝るところも食べ物もお金も恵んでくれるといってもそれは、ダーとマムが仕切っている強盗団なのだった。しかし、ダーとマムは決して実行犯にはならず、子供たちにターゲットを襲わせる。相手は子供だと油断する。イチが一種のリーダーで犯行現場を取り仕切っていた。子供とはいえ殺人も平気で犯す。このあたり、三島由紀夫の午後の曳航を彷彿とさせるアンファンテリブルの冷酷ぶりである。

ところが、たまたま偶然でイチが交通事故に遭って、病院に運ばれるという事件があった。すると当然に警察がきていろいろ質問するので、ダーとマムはイチが余計なことをしゃべらないかと懸念し、イチに対して刺客を差し向けた。それに五味川良樹が反発して、ほかの子供たちも良樹の側に付き、革命というかクーデターのようなことになった。その動きが目立つのでついにSROのメンバーが捜査に動き出した。

それとは独立に、石塚美和子という看護師がいた。看護師の仕事だけでなく義理の母が寝たきりで面倒をみなくてはならないのに、リストラになった夫は全く協力してくれない。それでストレスが溜まっているところ、娘が問題を起こし、切れそうになった。

そんな美和子の勤務先は、東京拘置所の医務部である。しかもなんと、看護師としての美和子の担当は例の近藤房子だった。そんな近藤房子は、独特の鑑識眼で美和子をストレスを見抜き、こっそりと犯罪指南した。そこから美和子の人生は暗転していった。

一方、SROのメンバーは今回出番が少ないかと思っていたら、尾形の家庭問題があった。息子が不登校なのである。尾形は反省を込めて家庭中心にやってきたが、アンファンテリブルの事件に忙殺されているうちに、尾形の家庭は大変なことになった。

さて、美和子をロボットに仕立て上げた近藤房子は、いわば美和子を踏み台にして、ついに暗躍し始めた。

ということで、この巻は、次なる近藤房子の跳梁のための準備のような位置づけでいまいち地味であったが、まあこういう趣旨もありかと思うことにする。ともかく富樫倫太郎の文章が読みやすくて、ぐいぐい引き込まれるのが魅力である。

私は、外資系に勤務していた時代に書いた特許明細書の出願の審査経過をウオッチしてきたが、最近ようやくほぼ決着したみたいで、結果的に135件の特許明細書の特許明細書を書き、そのうち15件は審査未請求でみなし取り下げになり、残りの120件は117件が特許査定になり、2件は拒絶査定が確定、最後の一件は結構厳しそうな拒絶理由に対して、私の後輩ともいえる担当者がなかなか気合の入った意見書を書いてくれたが、進歩性がないと二度目の拒絶理由が来た。

最後の件が拒絶査定になるにしても、特許査定率は97.5%なので、まあまあなのではないだろうか。いくらなんでも特許査定率なんて100%じゃなくてはいけないなんて、この業界の常識ではないはずである。

私が高々135件の特許明細書しか書いていないではないかといわれるかもしれないが、それはもともと特許事務所でなくて企業なので、特許明細書書きに専念できないのだから仕方ない。思い立った時点で53歳だったし。

すなわち、私が特許明細書書きを頑張ってみようと思い立ったのは、十数年の管理職経験から降りた約10年前のことである。当時、ムーディ勝山の右から来たものを左に受け流すみたいな歌が流行っていたが、私も管理職として、右から左に受け流して他人に指示して仕事をこなすことに飽き飽きして、何かガツンと思い切り実務的なことがしてみたかった。

そして特許実務で何かガツンと思い切り実務的なことというと、それは特許明細書書きだろうと思った。しかも基礎研究所の発明は、特許事務所も敬遠する難解なものだった。私はアイガー北壁に挑戦する登山家のような気持ちになった。

いよいよ私が特許明細書の絶壁に直面すると当面は絶望しそうになったが、そのとき思い起こしたのは、マイケル・ポランニーの「暗黙知の次元」である。それによると細部にこだわることで全体が見えてくる。しかし、細部にこだわるためには、関連技術の全体の俯瞰が必要でそのため、技術書を読むことが必須になる。そうして、こだわるべき細部を見出すと、ジャック・ヒギンズの「鷹は舞い降りた」のように、パラシュートで単身荒野に降り立つ。

私は荒野に降り立って見え来るものをメモして、発明者に投げた。質問は、exhausiveを旨とした。質問し尽くして答えてもらうと、次第に輪郭がみえてくる。そして輪郭がみえてくると、発明の理解を捕捉するためにどんな説明が必要か分かるので、発明者に追加の資料を要求した。このようなやり方で、どんな難解な発明でも、深刻な36条的な拒絶理由は受けていないはずである。

また、難解な発明の場合、細部まで完璧に理解することができないので、どうしてもフッサールのいうかっこ入れが必要になってくる。それを私はプログラミングのAPIに譬えた。すなわち、かっこ入れして、関数を呼び出すように特許明細書に記載を挿入するのだが、それがごく自然に継ぎ目が見えないように記述されなくてはならない。そのために私は自分のプログラミングと、数学と、サイエンス・コミュニケータのスキルを駆使した。

私に言わせれば、いい特許明細書を書くためには、特許実務者の枠を出て、科学者、工学者に近づかなくてはならない。私のみるところ、多くの特許実務者は、特許に軸足を置いて、科学者、工学者に対してアウェイの立場であろうとする。私は科学者、工学者の懐に飛び込んでいって、他愛ないジャーゴンから学んだ。

その結果、私が書いた特許明細書は、発明者からみて、とても技術的にしっくりくる内容となった。それが特許明細書の質をいささかでも上げることになったことは会社の同僚にも理解してもらったと思うのだが、結局誰一人として私のような途は歩まなかった。努力と、それに対する見返りがあまりにも不安定だからだろう。要するにぶっちゃけ、自己満足しかないのである。

ともかく私は、今では仕事として特許明細書を書く生活には戻れないが、せめて技術理解に関しては、身に着けたスキルを特許調査に活かしたいと思っている次第である。

中島義道さんの本は一時好んで読んだこともあるが、なんとなく失望したような気がして、それから敬遠するようになった。

ところが最近、ある知り合いが、「明るく死ぬための哲学」文藝春秋、を読むように勧めてきたので、そういうならと買って読むことにした。

その「古希を迎えて」というところに、自分は若い頃から死について考えてきたが、いよいよ死が近づいてきたので、この本を書くことにした、という。なるほどと思って読んでいたら、なんと以前読んだこともあるような昔話が始まって、ええっ、どういうこと?と思っていると、全体の三分の一くらいが過ぎたところで、「世界は実在しない」という章が始まった。

ただ、数楽者として、「世界は実在しない」というとき、「実在する」ということの定義はなんなのかつい気になった。すなわち、唯心論は昔からある概念であり、そこでは「世界は実在しない」という命題はほとんど公理だったりする。

そこで著者のカント学者としての面目躍如となる。すなわち、カントの超越論的観念論に言及して、そこから「世界は実在しない」という命題が導出されるとなると、志村-谷山予想からフェルマーの定理が示されるように私は傅くよりない。

しかし、「世界は実在しない」という命題が成立しても、そこから直ちに、「私は存在しない」という命題が導出されるわけではない。というのは、かの有名な「我思う、ゆえに我あり。」という有名なデカルトの命題が存在するからである。

ここから私は、中島氏のプロの哲学者としての読み筋を見せられ、私は哲学はせいぜいアマチュア級位者なので、まったくついていけなくなった。

中島氏は、やはりプロの哲学者であった大森荘蔵の立ち現われ一元論を、物理の四次元世界をそのまま肯定しているとしてあっさり棄却する。ええっ、大森荘蔵の説がそんなにナイーブな議論で否定できるのか、と私は怪訝になってきた。

さらに中島氏は、次のような命題を掲げる。

ある有機体が言語を習得すると、現実の体験より、実在的・客観的世界の方が存在論的に優位に立つという転倒が起こり、前者を実在と呼んではならないことを学ぶ。

ここでも私は、「実在」とはどういうことを意図しているのか、と問いたくなった。

上記の議論により、動物は言語を習得しないのだから、動物には「私」の不在性はないというが、コンラート・ローレンツによれば、動物と人間の差は意外に小さい。

また、別の緻密な哲学的議論により「私」と「いま」が脱落する、というのだが、それは一種の時間論なのだろうか。だとすると、時間論の嚆矢であるアウグスティヌスにも言及する必要があるのではないか。

また、かりに否定的文脈であれ、生と死の狭間を論じるなら、臨死体験に言及することも必須であろう。

さらに、このような議論のためには、渡辺慧氏がしているような物理的な議論も避けてとおれないと思うのだが、カントとヘーゲルとハイデガーだけで乗り切れるのだろうか。

さらに最後に、「私が死ぬとき、私はまったく新しい<いま>に直面するのではないか。」と仰っているのだが、これはなにか宗教的命題なのだろうか。もしスピリチュアルな命題なら私は歓迎する。otherwise、私はただ当惑する。

と、私が正しく読めていないだけなのだろうから、時間をおいてまた再読することにする。ただ、このような議論が自分の死生観に影響を与えるような気がしない。それは気質の問題なので、共感する人も少なくないのだろうとおもう。

ただ、私はなんとなく羊頭狗肉の感は免れないのではないかと思ってしまった。議論の線が細すぎるのである。要するに、一本の読み筋が開示されているのだが、どこかに間違いがあったとき、そのリカバリーの読みがないということである。

アマゾンで本や品物を注文して、実際に品物が発送されると、"Amazon.co.jp「△△△...」の発送"というメールがくる。そのメールを開くと、「配送状況は下記ページからご確認ください。」とあって、その下に長いリンクがある。そして、それをクリックすると品物は本日中に到着する、とあって、進捗ももうすぐ着きそうである。

ところが、夜八時を過ぎても荷物がこない。そこで、発送業者はヤマト運輸で、お問い合わせ伝票番号として12桁の数字が示されているので、ヤマト運輸のサイトに行き、その番号で問い合わせてみると、まだ西新小岩センターにあって、配達予定は翌日となっている。

私は、今まで配送状況の長いリンクが示す配達予定日が実は間違えていたという経験がないので、一体どうしたんだろう、殊更に繁忙期だったんだろうか、と怪訝になってしまった。

そこいくと、前にも書いたが、日本郵便は、追跡の粒度が細かくて、配達時期の誤差が小さくてよい。ただこれは、アマゾンの場合、利用は本などの小物に限られているようである。

ちなみに、私が待っていてまだこない品物とは猫の餌であって、まだ備蓄があるので特に神経質になる必要はないのだが、特許の仕事を担当してきたせいか、期限が切られたアクションを適当に流せないのだった。

コンピュータ将棋選手権に対応する、第1回世界電脳囲碁オープンが開催された。日本棋院のホームページから引用する。

囲碁AIによる世界大会「2017 中信証券杯 第1回世界電脳囲碁オープン戦」が8月16日、17日に中国の内モンゴルオルドス伊金霍洛旗大劇院で行われた。
17日に行われた決勝戦で、日本から出場したDeepZenGoが、中華台北のCGIに258手まで白番中押し勝ちし優勝を決めた。
世界各国から12ソフトが出場し、16日にスイス方式の5回戦による予選を行い、17日に上位8ソフトによる決勝トーナメントが行われた。
日本からはDeepZenGo、Rayn、AQの3ソフトが出場し、全3ソフトが予選を通過した。決勝トーナメントでは、1回戦でRayn、AQが敗れたもののDeepZenGoは韓国のDolBaramに勝利、続く準決勝では中国の絶芸に勝利し決勝進出を決めていた。
優勝した「DeepZenGo」は、18日10時頃から世界戦優勝経験者の孔傑九段と対局を行う。

実は前日の予選では中華台北のCGIが全勝で、DeepZenGoは3勝2敗だったので、決勝ではどうなるかと危ぶまれていた。なので、決勝戦ではDeepZenGoが中華台北のCGIに258手まで白番中押し勝ちし優勝を決めた、というのは相当な快挙である。

それにしてもDeepZenGoは、今年3月の囲碁AI大会では、中国の絶芸に敗れているので、コンピュータ囲碁の世界も日進月歩で予断を許さないことが分かる。

さて、囲碁の未来サミットで世界チャンピオンの柯潔に三連勝したことで、人間との対戦を「卒業」したAlphaGoに、他のソフトがどれだけ近づき、あるいは超えられるかが課題であろう。

先日、王位戦第2局に関して、

ところで、羽生王位といえば久々に竜王戦決勝トーナメントに残っていて、7月31日に稲葉八段と準決勝を戦う。これに勝って、松尾八段との決勝三番勝負にも勝ち、渡辺竜王に挑戦して「月に代わってお仕置き」してほしいと願っているのは私だけだろうか。
と書いたが、果たして羽生は、稲葉八段との準決勝に勝ち、松尾八段との決勝三番勝負の第一局にも勝ち、いよいよ渡辺竜王への挑戦にあと一勝と迫った。

そう、羽生は渡辺に怒っているのである。まさか、何に怒っているの?とは聞かないよね。いうまでもなく三浦事件で渡辺一派は、三浦九段を責めるのに、羽生の発言を意図的に捻じ曲げたのである。それでupsetした羽生は、奥さんのツイッターを使って、「疑わしきは罰せず」と急いで発信した。それにも関わらず、三浦九段に対する不当な懲罰が発動してしまった。これでは羽生の面子が丸つぶれではないか。それで羽生が怒っていないわけがない。

そこで羽生は渡辺を懲らしめる機会を虎視眈々と狙っていた。それは要するに、竜王戦に挑戦してタイトルを奪取することである。じっさい、松尾八段との決勝三番勝負の第一局をウェブで観戦したが、羽生は気合が入りまくっていた。

羽生は、松尾八段との決勝三番勝負の第一局の二日前に、王将戦二次予選で三浦九段に負けた。それは決して羽生が手を抜いたわけではない。三浦九段が好調なのである。ここまで6勝2敗。

要するに、羽生は鬼モードでなかったということである。それでは8月17日(木曜日)で羽生はA級順位戦で久保と当たるが、渡辺一派の久保に対してもお仕置きのため、鬼モードを発揮するだろうか。これは多分そうしないと思う。なぜなら、そこでリソースを使うと、総帥の渡辺を倒すためのエネルギーが減ってしまう。まあ鬼モードでなくても、久保とは五分だろう。

ともかく羽生はなんとか竜王に挑戦するが、あるいみ手負いの獅子の渡辺も必死で頑張り、壮絶な戦いになるだろう。聞こえてくるのは、「天に代わりて不義を討つ 忠勇無双の我が兵は」という古き軍歌なのだった。「月に代わってお仕置きよ」では流石に甘すぎる。

消臭剤

user-pic
0

私はダンディーとか、清潔とかそういうイメージにはほど遠いが、同居している家族に加齢臭がきついとか指摘されたりして、それなりに臭いに敏感になったりしている。

それで通勤は上は半袖カッターで下はスラックスというのが、今の暑い時期の服装なのだが、私は特に汗かきではないつもりだが、1つのスラックスを三日も穿くと、汗が染みこんでかなり臭くなってくる。

ところがスラックスというのは、洗濯機で洗えないことはないのだが、皺を防ぐために特殊な洗い方が必要で手間がかかると聞いた。それで、少しくらい臭いなら、消臭剤を吹き付ければいいと思い、昔使ったことがあるファブリーズを探したが、どうも見つからない。

それで家人に聞いてみると、ファブリーズでなくてもとりあえずトイレの消臭剤で間に合うのではないかというので、ええっと思ってトイレに行ってみると、防臭剤以外に、「トイレずっとキレイ」とかいうリンレイというワックスが本業の会社の製品が置いてあった。

これはトイレカバーやトイレマットなどにふりかけると、銀イオンを含むミストでアンモニアの臭いを抑えるのだそうで、確かに汗と尿は成分が似ているので使えるかと試してみた。

すると、確かに臭いは分解されたようだが、ミストの成分と汗の臭いが混ざって、ちょっと複雑な臭いになってしまっている。まあでも、野球でいえば、ロングリリーフは無理だが、ワンポイントの中継ぎくらいなら使えるか。

これは将棋でいうと、こっちが居飛車で相手が四間飛車で、4筋から捌きを狙ってきたときに、▲2四歩、△同歩、▲3五歩、△同歩、▲2六飛と軽く浮いて受けておく感覚か。

それでも早めに▲5七銀と上がって受けておく必要があり、結局手間は変わらないか、といつのまにか話が将棋の手順にすり替わってしまっている。それにしてもこの暑苦しさはなんとかならないのだろうか。

あと付記すると、新手筋を発見した。それは穿いたスラックスをクローゼットの中でなく、外に掛けておく。すると明らかに汗の発酵の程度が下がって、臭くなりにくい。これで数日は余分に稼げることがわかった。

それでも、電車で私の隣に座った人が、なにげに別の席に移動してしまうのはがっかりである。私の体臭のせいなのだろうか。それでも若い女性がそうするなら分かるが、もしかして私よりも臭そうなおっさん(といっても私よりは若い)がそうすると、九回の裏に押し出しのフォアボールを与えたピッチャーの気持ちになってしまうのだった。

私は数楽者なので、数式そのものがミーハー的に好きである。なので、たまたま外資系に勤務していたとき、数理関係の発明を扱っていたので、特許出願用に作成する必要があるときは、なるべく本格的な数式を書こうとした。

ここで本格的な数式というのは、数式の数学的な意味ではない。たかが数楽者にそんな高尚なことが分かるわけがない。数楽者に思いつくのは上にも書いたようなミーハーなことで要するに、数式の外見が本格的ということである。

本格的というのは数学の専門書みたいだということで、するとTeXで作成した数式、ということである。そこで私は、奥村晴彦著、「[改訂第5版] LaTeX2e 美文書作成入門」技術評論社を買って、付いてきたDVDでTeXを当時使っていたWindows 7のパソコンに導入した。

ちょっと記憶を辿って、私が特許出願で作成した数式のうち一番込み入っているのは、以下のものだと思う。

それで、Windows 10パソコンに移行したとき、LaTeX2e 美文書作成入門の最新版を買わなきゃ、と思った。

でも、Windows 10パソコンにプリインストールされてるWORD 2016をいじっているとき、普通に数式が作れることが分かった。それで作成した数式の例は、こちらである。

もちろんこの数式でもよくて、むしろ特許公報をみているとWORDで作成した数式の方が多いような気がする。そもそもTeXで作成した数式は、線が細くで見にくい。

しかしTeXで作成した数式の方がダンディーなのである。しかも私は、GUIでなく、スクリプトを書いて数式を表現したいのである。

だから私はやはりLaTeX2e 美文書作成入門の最新版を買うとしよう。ただ、細々とTeXのスクリプトを書くのも楽勝というわけではないのだが。

償いの報酬

user-pic
0

二年近く前にローレンス・ブロック「八百万の死にざま」田口俊樹訳、ハヤカワ文庫を読み、古きよきニューヨークの風情が描かれた好作だと思ったのだが、それから続編は読まないできた。

ところが急に同じ作者の「償いの報償」田口俊樹訳、二見文庫を読もうと思ったのは、気まぐれというか、「八百万の死にざま」の続きのような位置づけの作品らしくて、主人公のマット・スカダーのその後が知りたいという興味もあったからである。

さて、「八百万の死にざま」で事件に関与したストレスか、断酒に失敗したスカダーは、心を入れ替えて再び断酒を再開し、AA(Alcoholics Anonymous)すなわち断酒サークルに日課のように通う日々だった。

そんなスカダーは、幼馴染で犯罪常習者のジャック・エラリーに声をかけられた。スカダーは、多少の懐かしさは感じつつ、なにしろ札付きのワルだったので、複雑な気持ちもあった。

ところが、ジャックが意外なことをいう。断酒プログラムの一環としてジャックが、過去に犯した罪を償う「埋め合わせ」ステップを実施しているのだという。断酒プログラムのステップにあまり詳しくないスカダーは、へえ、そんなステップがあるのかと思っただけだった。

しかし、それからスカダーは、驚くべき知らせを聞いた。なんとジャックが殺されたのだという。しかも頭だけでなく口にも銃弾を撃ち込まれたのだという。とはいえ、この事件を真に憂慮していたのはジャックの支援者(スポンサー)のグレッグ・スティルマンであった。なぜなら、真面目なスポンサーであるグレッグは、ジャックに対して断酒プログラムを律儀に勧めすぎたことがジャックを追い込んでしまったのだ、と懸念したのだった。

そしてグレッグは、ジャックから立場により入手している五人の埋め合わせ者リストをスカダーに渡し、これらの者の誰かがジャックを殺害した犯人かどうか調べてほしいと依頼した。グレッグの誠実な人柄に好意をもったスカダーは、埋め合わせ者リストの一人一人と会っていった。すると、ジャックの犯罪歴に関与したような者ばかりなのでいかにも曰くつきで怪しかったが、どうも誰もジャックの殺害に関与したとは思えない。

ところが、スカダーは、納得いかず調査を続けるうち、昔のジャックの重大犯罪の共犯者が浮かび上がってきた。そしてここから、関係者が殺され始めた。スカダーにも危機が忍び寄ってきた。

ここからは佳境なのでストーリーを追うのを省略するが、もし「八百万の死にざま」並みのハードボイルドを期待すると、ちょっと肩すかしをくうかもしれない。

じつはこの作品は、ローレンス・ブロックが1982年に「八百万の死にざま」を発表してから25年も経ったあとの、ブロックが72歳のときの作品で、それだけ年数を経て「八百万の死にざま」の続編を書くという円熟を改めて感じる次第である。

そういえばローレンス・ブロックには、殺し屋ケラーシリーズというのもあるらしくて、暗殺者グレイマンとはまた違った、ブロック版のというのもそのうち読んでみたい。

口腔ケア

user-pic
0

以前に歯科に行ったとき、歯科医の先生から、歯間ブラシを真面目に使うと、口内の感度が高まると指摘されたが、そのときは、あまり真面目に聞いていなかったので、適当に聞き流した。

ところが、足痛の因果関係の経験を経て、口内の不潔さが体の他の箇所に本質的な影響があることを知ると、今更のように歯間ブラシを真面目に使い始めた。ところがそうしても、以前に指摘された「口内の感度が高まる」という状態は実感できなかった。

それがなんとなく感じられるようになったのは、デンタル・シリンジを使うようになってからである。すなわち、デンタル・シリンジを使用すると、今まで払拭できなかった歯間の汚れが洗い流されるので、アバウトな言い方だが、口内の清潔度が一桁上がったような気がした。じつは私は電車の中などで他人の口臭が気になったりするが、口内の清潔度を上げたことで私の口臭レベルは少しは下がっているだろうか。このあたりはどうもよく分からない。

ともかく、口内の感度が高まったことで、朝起きた直後の状態で口の中がネバネバしている、と感じられ始めた。それで、ドラッグストアで口内細菌を抑えることを謳っている花王の薬用ピュオーラというマウスウォッシュを買い、朝起きた直後にこのマウスウォッシュでうがいするようにすると、なんとなく一日を通して、口内が清涼であるような気がした。

そんな注意深いケアをしているのに、ある朝起きたら、一か所の歯茎が腫れている。あらっ、と触ってみたら少し痛い。それでデンタル・シリンジで水を噴射したら、沁みる。そこでさらに歯間ブラシを当ててみると、少し食べ物のカスが残っていた。どうもデンタル・シリンジだけでは取り切れない場合があり、歯間ブラシを併用することも必須のようである。

あと、当然だが、疲れると体の免疫力が下がる。歯茎が腫れたのも、暑さでバテて、口内の免疫力が下ったからだと解釈することにした。

ということで口腔ケアで口内の感度が高まるのはいいことなのだろうが、そういえば、と思い出したことがある。それはヨガの先生が以前言っていたことで、ヨガの修行をすると体が健康になり、体の感度が高まるのだという。するとどうなるかというと、酒や辛い物、刺激的な嗜好の食べ物に対する感度が高まって、こられの嗜好品をなるべく避けるようになるという。

すると私は、依然として酒や辛い物に対する嗜好があるので、口内はそれなりに健康なのかもしれないが、体の方は必ずしもそうではないよね、と一人で苦笑した。体全体の健康レベルを上げるのはなかなか難しい。

王位戦第3局が始まった。ここまで羽生王位は二連敗で、しかも内容がよくない。これを負けると防衛は相当困難になるので、踏ん張るはずである。一方の菅井七段、▲7六歩,△3四歩,▲2六歩,△5四歩,▲2五歩,△3二飛という出だしは最初は新鮮だったが、こう連採するとどうも少しだけマンネリ感が漂う。そもそも、球筋に慣れられてしまうのではないか。ともかく、例によって31手目▲6七角まで一気に進める。

【図1】 31手目▲6七角まで
持ち駒:△菅井七段=角



持ち駒:▲羽生王位=なし
▲6七角は△3四歩を狙う手でよく指される。以下、△4四銀,▲3四角,△7四歩,▲4七銀,△8四歩,▲1六歩,△5五銀,▲1五歩,△7三桂,▲1四歩,△同歩,▲1二歩,△8五桂,▲6八銀と進んだが、どうも△8五桂がよくなかったようである。ここはともかくも、▲1二歩に△同香と応じて五分だった。

【図2】 46手目△9五歩まで
持ち駒:△菅井七段=角歩



持ち駒:▲羽生王位=なし
△9五歩も、勢いそう指したいところだが、ここでもいったん△1二香と手を戻しておきたかった。△9五歩以下は▲9五同歩,△1二香,▲8六歩,△9八歩,▲同香,△9七歩,▲同桂,△同桂成,▲同香,△7五歩,▲5六歩,△6四銀,▲7七銀,△7六歩,▲同銀,△7五歩,▲6七銀と進み、ここでは先手有利である。

【図3】 64手目△2二飛まで
持ち駒:△菅井七段=角歩



持ち駒:▲羽生王位=桂歩4
△2二飛は当然の受けであり、▲3五桂,△5二金,▲9四歩,△8三銀,▲7七歩,△5三金,▲2四歩,△同歩,▲2三歩,△2一飛,▲2四飛,△4四金,▲1六角,△2五歩,▲2二歩成,△同金と進むのも順当なところ。この手順でじっと▲7七歩が嫌味を消す好手である。

【図4】 81手目▲4五桂まで
持ち駒:△菅井七段=角桂歩



持ち駒:▲羽生王位=歩3
▲4五桂は、放置すると▲3三桂不成があるので、菅井七段は△3二歩と受けた。以下、▲6五歩,△同銀,▲5三桂成となっては、この成桂が攻めに利いてきそうである。それでも菅井七段はいったん△9五歩とし、▲6六歩,△9四香,▲6五歩,△9六歩,▲同香,△同香,▲9七歩,△同香成,▲同玉,△9六歩,▲8八玉,△9七角,▲8九玉となり、いよいよ先手の優勢がはっきりした。

【図5】 100手目△8六角成まで
持ち駒:△菅井七段=桂香歩2



持ち駒:▲羽生王位=銀香歩2
それでも菅井七段は△8六角成と粘るが、羽生王位は▲8八香と馬を攻めていき、△9五馬,▲8六銀,△同馬,▲同香,△9七歩成,▲7九玉と早逃げする。そこで菅井七段が△9三玉と入玉含みで指すと▲9五歩,△7四桂。菅井七段は相手の香に狙いをつけた。

【図6】 111手目▲2二飛成まで
持ち駒:△菅井七段=銀香歩2



持ち駒:▲羽生王位=角金歩
しかしここで羽生王位の▲2二飛成が鋭い。すなわち、金を手に入れるとともに、相手の飛車を受けに使えなくする。△2二同飛,▲7三金となると、いよいよ後手玉に詰めろがかかった。以下、△8二銀,▲8三金,△同銀,▲7一角,△8二香となると次第に後手は受けに窮してきた。

【図7】 119手目▲7三銀まで
持ち駒:△菅井七段=飛金歩2



持ち駒:▲羽生王位=歩
▲7三銀でほぼ受けなしである。以下、△8一金,▲8二角成,△同金,▲9四香,△同銀,▲8四銀成,△9二玉,▲9四歩,△8六桂,▲9三銀,△9一玉,▲8二銀成,△同玉,▲9三歩成,△7一玉,▲8二と,△同玉,▲7三金となって、以下即詰みである。

以上みたように、二連敗を押し戻すような羽生王位の快勝だった。敗着はおそらく44手目の△8五桂で、△1二香と手を戻して▲2四歩、△4四角、▲2三歩成、△8五桂となって難解だった。

さて、菅井七段は次も5筋を突いた変則三間飛車か。いくらなんでもそれはないか。

ポナンザ

user-pic
0

私のパソコン・メールのアカウントには、今まで過去に買った商品の関係で毎日多数の広告メールが入る。これらのほとんどはジャンクメールだと認識しているが、唯一歓迎なのは、アマゾンからくる本の案内だったりする。

そんな中で、これは即買ってよむべしと判断した本に、ポナンザの開発者、山本一成さんが書いた「人工知能はどのようにして「名人」を超えたのか?」ダイヤモンド社がある。

著書の意味は異なるが、私の中では王メイエン九段の囲碁AI新時代と双対だったりする。なので注文して届くと、早速読み始めた。以下、私の粗い要約を記してみる。

山本さんは10年前、東大工学部の学生だったときに、コンピュータ・ソフトの作成に思い至った。10年前というと既にボナンザが、まだプロ棋士は超えられないものの、普通のアマ強豪では簡単には勝てない強さに達していた。そんなとき山本さんは、スクラッチからコンピュータ・ソフトを作成することに思い至った。それは、コンピュータそのものにあまり慣れていないので、コンピュータのスキルをつけるため、という意図もあった。

別の視点では、既存の多くのコンピュータ・ソフトの作者と違って、山本さんが真のアマ強豪の棋力があったということがある。すなわち、山本さんは東大将棋部にも所属し、学生の関東大会では上位に食い込む強豪で、少なくともアマ五段はあった。なのでそんな将棋のスキルをコンピュータ・ソフトに注入すれば、強いソフトになると素朴に考えた。ソフトの名前も、ボナンザに敬意を表して、ポナンザと名付けた。しかし、ポナンザの初期バージョンは、山本さん自身に8枚落ちでも勝てないほどの弱さだった。

さて、コンピュータ・ソフトの機能を大きく分けると、手の探索と、手の評価がある。その手の評価のところで、山本さんは自身のアマ強豪としてのノウハウをソフトに傾注しようとしたが、それがとてつもなく困難であることに想到した。すなわち、人間としてある手を選んだとして、どうしてその手を選んだか、少なくともプログラミングできるほど、明確に思考過程を記述できない。無理なのである。そこで、ボナンザがそうしたように、多数のプロの棋譜を読ませて機械学習させることにした。ちなみに初期のボナンザの評価関数のパラメータ数は一万個程度だったが、ポナンザのそれは一億を超えるという。

機械学習を採用して、ポナンザの棋力は急速に伸びた。機械学習を採用した初期の段階で、パラメータを調整することで、プロの棋譜の手に対する正解率は45%まで達した。

こうして強くなっていくポナンザは、前の年のバージョンに対して少なくとも七割の勝率を達成することを目標にした。そしていよいよポナンザにとって画期的な日が訪れた。それは、2013年3月30日、将棋電王戦の第2局でポナンザが佐藤慎一四段を破ったことである。コンピュータ・ソフトがついに、現役のプロ棋士に勝った。私のブログでは、コンピュータ、一勝に書いた。

ここらあたりで山本さんは、プログラマからの卒業を意識するようになった。それはポナンザの改良から手を引くという意味ではない。最早プログラムそのものが自らの改良の主なプロセスを担い、人間はそれをサポートする、みたいな位置づけである。また、機械学習のための棋譜も、プロの棋譜だけでなく、ポナンザ同士が戦った棋譜も使う。強化学習と呼ばれる、AIの手法も駆使する。

ただ、AIの手法も駆使したからといって、ポナンザが単調増加で強くなるわけではない。むしろ強くなればなるほど、棋力の向上は大変である。現在では、前の版と3000局指して、52%以上の勝率になることを目指している。こういう棋力の向上策は、いまのところ暗中模索である。

コンピュータのハードウェアが進化してマルチコアになったのだが、将棋ソフトではいまいち、並列化の恩恵が得られなかった。すなわち、ゲームの性質のためか並列効率が悪かった。そこで最近注目されたのが、温故知新の怠惰な並列化(lazy parallelization)という技法。それがなぜか将棋ソフトとの相性がよかった。

さて、アルファ碁で注目されたディープ・ラーニングであるが、今まで将棋ソフトには有効でないと考えられており、ポナンザも採用してこなかった。

すなわち、囲碁は突き詰めると画像だとみなすことができるようで、すると画像の処理が得意なディープ・ラーニングが威力を発揮するようである。一方、これは私が言っているだけかもしれないが、将棋は数論的というか代数的のような気がする。

ところがついにポナンザもディープ・ラーニングを採用した。コンピュータ将棋選手権にエントリしているPonanza Chainerがそうである。ウェブで検索してみると、Ponanza Chainerは、ディープ・ラーニングを採用したことで、一手も読まないで55%の確率で手を予測可能なのだという。なお、ディープ・ラーニングの部分は、PFN社の協力を頂いたという。PFN社というと、私が仕事を通じて一方的に知っている比戸将平さんがいる会社だなあ、と思い出した。

ただ、そんな満を持したPonanza Chainerも、伽藍とバザールの文脈でいうバザール系のelmoに敗れて、優勝を逃した。それはディープ・ラーニングの手法がうまくいかなかったというわけではなく、実力的にはPonanza Chainerの方がかなり上回っているのだが、勝負の綾でたまたまelmoが勝ったということらしい。そういえば今年の電王戦で佐藤名人を破ったのもPonanza Chainerなのだろうか。

さて、開発者の山本さんであるが、現在は愛知学院大学の准教授だったり、東大先端研の客員研究員だったり、DeepZenGoの開発にも関与されているようで、その活躍は刮目に値する。

それにしても、将棋ソフトや囲碁ソフトは、どこまで行ってしまうのだろうとつい考えてしまうのだった。

パソコンを使っていると、例えばメモリ・リークにより使えるメモリの領域が減ってきて、リブートしなくてはならない、という状況がよくある。

Windows 10に乗り換えてからは、流石にあまりメモリ・リークが起きなくなって、リブートの必要性は下がったが、それでも、昔からの習慣により、つい週に一度くらいはリブートしてしまう。

ところが、Windows 10になって、よくわからないことが起きた。すなわち、リブートする前は、C++ Builder XE4できちんとコンパイル&リンクできていたし、タスクバーにもきちんとピン止めされたアイコンが表示されていたのに、リブートするとC++ Builder XE4でコンパイル&リンクすると、LME288というエラー・コードのリンク・エラーが起きた。

仕方ないなあと、いったんパソコンをシャットダウンして完全に終わり、それからパソコンを起動するという、いわゆるコールド・スタートさせると、やはりLME288のエラーになる。

まったくもう、と普通にリブートしたら、今度はLME288のエラーは起きなくなったが、今度はタスクバーからピン止めされたアイコンが消えてしまった。

このように、再起動させるたびに異なる挙動をするパソコンは今まで経験したことがないので、流石Windows 10と感心した(なわけないだろ(怒))。

それで毎月一度のWindows Updateでこのエラーが修正されているかと毎回期待するのだが、なかなか修正されない。まあタスクバーからピン止めされたアイコンが消える、というのは明らかなバグだが、LME288のエラーというのは、マイクロソフトにしてみれば、そんなもん、エンバカデロさんのバグでっしゃろ、しらんがな、というところだろう。

ただ、こういうのを格好つけてステートフル・ブートというのは、私が思いついた言い方だが、明らかに妥当ではない。強いていうなら、モンテカルロ・ブートか。

クレヨンしんちゃんのピーマンではないが、偏食というか野菜が嫌いな子供は多い。そういう子供は大人になってもやはり野菜が嫌いなままだと思うのだが、どうだろうか。

私はというと、子供の頃から鶏肉以外に苦手な食べ物は一切なく、特に野菜は大好きである。そして田舎の実家にいた頃は、なにしろ庭で野菜が栽培されているので、野菜を食べたいという希望が裏切られることはまずなかった。強いて難点をいうと、自宅の屎尿が庭の野菜の肥料になっていたことで、いまいち汚いなとは思っていたが、なんとなく雰囲気に押し切られて、普通に野菜を食べていた。

そういう生い立ちだと、都会に出てきて食堂に行ってもほとんど野菜が出てこないのが気になってしまう。独身時代もつい自炊したのは、もっと野菜をという希望を叶えたかったからだったりした。

なので、結婚した後も、勝手に野菜サラダを作ることはよくある。私が勝手に料理をつくると家内は台所が乱れるので嫌がるが、なぜか野菜サラダだけはあまりクレームを受けない。私の野菜好きが公認されているからかもしれない。

ところが、先日作った私の野菜サラダにイエローカードが出た。家内が指摘するのは、何よこのキュウリは、というところである。要するに、古すぎて萎びたキュウリを私が使ってしまったようである。

じつはそのことに私も気づいていた。なので少しでもリカバーしようと、しばらくキュウリを水に漬けておいたのだが、その程度ではとてもカバーしきれなかった。どうも漬物にする一手だったようである。

そうやってやや困っていると、急に頭の中を、きゅうりの船、というフレーズがよぎった。記憶が曖昧なのでウェブで確認すると、「星の界」という歌らしい。そこで、その歌詞を引用すると、以下のとおりである。

雲なきみ空に 横とう光
ああ洋々たる 銀河の流れ
仰ぎて眺むる 万里のあなた
いざ棹させよや
窮理の船に

そういえば、さらに思い出したのだが、私が物理学を志した頃は、こういう歌詞を聴いて、真理を極めるのだと、勝手に感動していたのだった。しかし、還暦を過ぎてしまった今の私はいささか違う。いま私がこの歌詞をみて思い起こすのは先日の萎びたキュウリと、夏目漱石の「道楽と職業」という随筆である。「私の個人主義」という講談社学術文庫に収められている。

私の「道楽と職業」を読んだ理解が正しければ、窮理の船と恰好つけても、それは具体的に誰かのためになるわけではないので、所詮道楽なのである。よほど特権的な幸運に恵まれなければ、窮理の船を生活の糧にすることはできない。すると、窮理の船も、私が作った萎びたキュウリのサラダと何も違わない、ということになる。

そういうわけで、私は今更のように、カオスだのフラクタルだのいろいろ試してみているのだが、どうみてもあれは所詮よい子のお勉強にすぎず、窮理の船にはならない。

実は私は、とても甘い考えで、老後のよい子のお勉強がまかり間違って窮理の船にならないかと祈るのだが、そんなことはなりっこないと教えてくれたのが、萎びたキュウリなのだった。

惑星の軌道

user-pic
0

もう30年以上前、20台後半でまだ独身の頃、シャープのMZという8ビット・パソコンを買い、BASICでプログラムを書いて、夜な夜な楽しく遊んでいたのだが、そのとき書いていたプログラムの中に、惑星の軌道計算があった。

惑星の軌道計算といっても、なんのことはない、ニュートンの法則の逆二乗則で力学の運動方程式を記述し、それを例によってルンゲ・クッタで数値計算するという素朴なものである。

それでも、惑星2つが引き合うという連星の二体問題を数値計算してプロットした結果を知り合いに見せたら、辛口で滅多に他人を褒めないその知り合いも、あまりこういうのは見たことがないので面白いと褒めてくれたので、うれしくなったのを覚えている。

それで気を良くして、ポアンカレによれば積分が存在しない、すなわち解析的に解けないといわれている三体問題をプロットしようとしたら、プログラムにバグがあるようでどうもうまくいかない。それでその後諦めていたのだが、最近、常微分方程式の数値解法に再び馴染んできたのをきっかけに、また再チャレンジしてみたくなった。

といっても、いきなり三体問題は荷が重いので、一体問題⇒二体問題⇒三体問題と進めていくことにした。一体問題というのはあまり聞きなれないが、私が意図したのは、中心に太陽があって、その周りを単一の惑星が周回する、というものである。しかしウェブで調べてみると、一体問題とは、宇宙にたった一つの星がある場合のことらしくて、するとニュートン力学のパラダイムでは、静止しているか等速直線運動するだけなので、数値計算もなにもあったものではない。

で、当初予定していたこのブログのタイトルを、一体問題から惑星の軌道という曖昧な言い方に変えて、中心に太陽があって、その周りを単一の惑星が周回する、という場合の数値計算をしてみることにした。

さて、それは要するに、太陽の周りに惑星が楕円軌道をとるだけだから楽勝と思っていたら、なかなか綾があった。すなわち、惑星を太陽の引力を受けて運動するようにするには、惑星の太陽からの距離と、太陽に対して相対的な速度を与えるのだが、ヨハン・ベルヌーイは、その場合惑星がとりえる軌道は、楕円、放物線、双曲線のどれかであることを見出した。

要するに、注意深く初期速度と位置を与えないと、軌道は放物線または双曲線となって、無限遠に「いっちゃう」のである。それで最初、適当に初期速度と位置与えて、軌道が発散して何度も困ってしまった。

さらに、自明なのでヨハン・ベルヌーイが指摘しなかったことがある。それはあまりに太陽の近くに初期位置を配置するか、初期速度が小さすぎると、惑星が太陽に引っ張られすぎて激突してしまうのである。これはこれでゲームセットである。

そうやってなんとか楕円軌道を得たのが、下記のプログラムで、(x,y,u,v) = (3.0, 2.0, 0.43. 0.01)の場合である。ここで、太陽を原点としたとき、xは惑星の初期x座標、yは惑星の初期y座標、uは初期速度のx方向成分、uは初期速度のy方向成分である。

その軌道は、以下のとおりだった。なお、下手なマンガみたいだが、太陽を赤い小円で示した。

これだと近日点が近すぎて、もし惑星が地球だと人類が焼け死んで滅びるかもしれない。そこで、妥当な距離の近日点になるように、初期位置と初期速度を、(x,y,u,v) = (3.0, 0.0, -0.1. 0.5)に変更してみた。すると軌道は、以下のとおりとなった。

このプログラムのソースコードを例によって以下に示す。それにしても、惑星や太陽の質量や重力定数やその他物理単位の次元を全く無視して適当に微分方程式を解くってどうよ、とつい自己突っ込みするのだった。

//---------------------------------------------------------------------------

#include <vcl.h>
#include <math.h>
#pragma hdrstop

#include "Main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
double fx(double x, double y);
double fy(double x, double y);
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Close1Click(TObject *Sender)
{

 Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Run1Click(TObject *Sender)
{
const double H = 0.00001;  // 刻み
double x,y,u,v;     // x,yは座標値で、u,vはその速度のxとy成分
double a1,a2,a3,a4;  // dx
double b1,b2,b3,b4;  // dy
double c1,c2,c3,c4;  // du
double d1,d2,d3,d4;  // dv
double px, py;
int N = 0;           // 繰り返し回数

// 位置と速度の初期値
x = 3.0;  y = 0.0; u = -0.1; v = 0.5;

// 原点を描く
Canvas->Brush->Color = clRed;
Canvas->Ellipse(280,280,300,300);

while ( N++ < 10000000 )        {
 a1 = u;
 b1 = v;
 c1 = -fx(x,y);
 d1 = -fy(x,y);
 a2 = u + H*c1/2.0;
 b2 = v + H*d1/2.0;
 c2 = -fx(x+H*a1/2.0,y+H*b1/2.0);
 d2 = -fy(x+H*a1/2.0,y+H*b1/2.0);
 a3 = u + H*c2/2.0;
 b3 = v + H*d2/2.0;
 c3 = -fx(x+H*a2/2.0,y+H*b2/2.0);
 d3 = -fy(x+H*a2/2.0,y+H*b2/2.0);
 a4 = u + H*c3;
 b4 = v + H*d3;
 c4 = -fx(x+H*a3,y+H*b3);
 d4 = -fy(x+H*a3,y+H*b3);
 x += H*(a1 + 2.0*a2 + 2.0*a3 + a4)/6.0;
 y += H*(b1 + 2.0*b2 + 2.0*b3 + b4)/6.0;
 u += H*(c1 + 2.0*c2 + 2.0*c3 + c4)/6.0;
 v += H*(d1 + 2.0*d2 + 2.0*d3 + d4)/6.0;
 px = 290.0 + 70.0*x;
 py = 290.0 - 70.0*y;
 Canvas->Pixels[px][py] = clBlack;
}
}
//---------------------------------------------------------------------------
double fx(double x, double y) {
 double r,R;
 r = x*x + y*y;
 R = r * sqrt(r);
 return x/R;
}

double fy(double x, double y) {
 double r,R;
 r = x*x + y*y;
 R = r * sqrt(r);
 return y/R;
}

新刊書店で面白そうな小説を物色していると、真保裕一「ボーダーライン」集英社文庫というのが目についた。知らない作家で、面白く読める自信がいまいちなかったが、「ナツイチ」という青い帯に惹かれた。なんでも、「ナツイチ」の帯がある本を買うと、オリジナルのブックカバーがもらえるらしい。じつは栞とブックカバーに微かに嗜好をもつ私は、そのキャンペーンにつられてつい、「ボーダーライン」を買った。

ところが、オリジナルのブックカバーは、青い紙で、少し失望した。せめて布かビニールであってほしかったが、そういうのにつられる私がナイーブすぎるのだろう。それでも、しばらくして読み始めると、これは探偵小説なのだった。

最近読んだ探偵小説というと、萩原浩の「ハードボイルド・エッグ」がある。それはそれで、ユーモアと人情タッチでなかなか面白かったが、「ボーダーライン」はつい考え込むほどシリアスな内容だった。

「ボーダーライン」の主人公は、永岡オサム。日本生まれ日本育ちの純粋日本人で、写真学校を卒業してカメラマンを目指したのだが、いろいろあって日本にいるのが嫌になり、いささかの夢を抱いて渡米した。紆余曲折があっていまはロサンゼルスに住み、日本の大手信販会社の支店の社員として調査業をしている。米国では通称、サムと呼ばれる。

サムの上司、トッド関口は、なかなかの切れ者で冷徹なビジネスマンである。そんな関口は、手段を弄してサムに偽装結婚させ、そうしてグリーンカードを取得させると、サムにPI(private investigator)ライセンスを取得させた。米国では、探偵ライセンスを取得すると、警察などからある程度信用してもらえるので有利であるが、ただその合格率は10%程度とかなり難関である。

ともかくサムは資格をもつ専門職探偵として勤務しているのであるが、その主な仕事の内容はというと、日本人観光客が強盗や交通事故、その他のトラブルに遭ったときの事故対応という地味な雑用係だった。当該大手信販会社のカードをもっていればクライアントなので、クライアントのサポートという位置づけである。

そんなサムにあるとき、トッド関口が神妙な顔をして仕事を依頼してきた。面倒そうな仕事であるが、本社の大手クライアントの会社からの依頼なので断れないという。その仕事とは、安田信吾という元警備会社社員を探してほしいということであった。日本人であるが、ある意味サムと同様に米国に流れてきたらしい。しかし、手がかりとなる写真は、いかにも写りの悪い、隠し撮りみたいな写真しかない。

調べていくうちに、安田信吾、通称サニーは、はある犯罪に関与している可能性があると分かった来た。そしてその共犯者らしき、メキシコ系のフリオ・ポサリカという男が事件を起こして拘置所に留置されていると聞き、サムは面会を申し込んだ。

面会すると、フリオがあまりにもでたらめな奴なのでサムはむかついたが、辛抱強く話を聞きだして、サニーが、メキシコとの国境付近のコスタメサという街にいることを聞き出した。そこで、会社から貸与されているチェロキーを駆ってコスタメサにやってきたのだが、アジア人がほとんどいない場所なのでなかなか相手にされなかった。しかしそれは一方、サニーを見つけやすいということでもある。

そこでついにサニーがいるというアパートの付近に車で乗り付け、サニーらしき日本人にも会ったのだが、その日本人はにこっと友好的に笑うと、いきなり銃撃してきた。そしてヒット・アンド・アウェイで去ってしまった。チェロキーは穴だらけになり、サムも少し負傷したが、予め防弾装備がなされていたので、サムは一命をとりとめ、チェロキーはなんとか動いた。

一応地元の警察に届け出ると、事情聴取のため少し留置され、その後開放された。その後、サニーの見えない影に怯えながらロサンゼルスに帰ってみると、なんと同棲しているメリンダが家出して所在がわからなくなっていた。

それだけではない、日本から安田信吾の父親の安田英明がやってきた。なんでも息子を探しにいくのだという。安田信吾の恐ろしさを知るサムにはそれはいかにも無謀に思われた。

安田信吾を追って英明の行方が知れなくなると、今度は日本から安田信吾の妹の真由美がやってきた。そして話を聞くうちに、安田信吾の幼児の頃からの異常性を知り、家族の苦悩や困難が痛いほどに感じられた。

そしてサムは、追加の正式な依頼を以て、チェロキーに代わる防弾装備のベンツに乗って単身、安田英明を探し、安田信吾と対決する旅に出た。もちろん銃を保持してである。

ここからはクライマックスなので、記述しないが、先天性犯罪嗜好者とは何か、親子とは何か、米国の社会の風紀とはどのようかなど、さまざまなテーマが押し寄せてきて考えさせるストーリーだった。

真保裕一には、ほかにも多数の作品があるようなので、そのうち読んでみることにする。

じつは、ストレンジ・アトラクタの微分方程式を数値的に描いてみたいとおもったモチベーションは、「カオスとフラクタル」講談社ブルーバックスでたまたま見かけた煙たなびくみたいな画像に一目ぼれしたからだが、いろいろ工夫してみてもどうしても意図する画像にならないでいろいろ調べているとき、ポアンカレ断面という用語を知った。

そこでポアンカレ断面とは何か調べてみると、どうも微分方程式の解の軌道内に超平面を配置し、その超平面と軌道の交点をプロットする、というものであるらしい。ストレンジ・アトラクタの場合、cos tというtに関する周期項があるので、t = 0, 2π, ... 2nπ,...を超平面として、軌道の交点をプロットしてみることにした。

ところがたまたま、以下のようなダフィンの方程式をウェブ上でみつけた。

ちなみにストレンジ・アトラクタの微分方程式を再掲すると、以下のとおりである。

この2つの微分方程式の最大の違いは、xという項の存在で、これは本質的である。ともかく、なんとなくであるが、ダフィンの方程式に関して、ポアンカレ断面を求めてみることにした。なおこのとき、ウェブ上情報の示唆により、δ=0.20、γ=0.30、ω=1.0ととった。

どうやってポアンカレ断面を求めるか、特に文献もウェブ上の情報もみつからなかったので、独自に考えてみた。

まず、角度θの象限を確認する。

  • 第1象限: cosθ > 0 且つsinθ > 0
  • 第2象限: cosθ < 0 且つsinθ > 0
  • 第3象限: cosθ < 0 且つsinθ < 0
  • 第4象限: cosθ > 0 且つsinθ < 0

そして、第4象限から第1象限に移るとき、あるいは第1象限から第4象限に移るとき、θ = 0の点を通るので、ポアンカレ断面としてプロットすることにした。その一例を示すと、以下のとおりである。

これは、関連の書籍でみるポアンカレ断面とだいたい似ているので、一応正しいとみなすことにした。そこで、ストレンジ・アトラクタの場合も同様にしてポアンカレ断面をプロットしてみると、以下のとおりである。ちなみに、このストレンジ・アトラクタでは、k = 1.0、B = 12.0としてみた。

最後にダフィンの方程式のためのプログラムのソースコードを以下に示す。ストレンジ・アトラクタの場合は、fny()として以下の関数を用い、

double fny(double x, double y, double t)  {
 return -0.1*y - x*x*x + 12.0*cos(t);
}
プロットのところを
 px = 300.0 + 28.0 * x;
 py = 320.0 - 28.0 * y;
とした。

ところで全く関係ないかもしれないが、ヒカシューの「二十世紀の終わりに」という曲を聞いていたら、以下のような歌詞があった。

二十世紀の終わりに恋をするなら
惑星のちからと死の魔術が必要
恋の断面図を透かしてみてごらん
そこは地獄かはたまた暗闇か

もしかしてポアンカレ断面は、恋の断面図なのか、なわけないよね、と意味不明のことをつい呟いてしまった。

//---------------------------------------------------------------------------

#include <vcl.h>
#include <stdlib.h>
#include <math.h>
#pragma hdrstop

#include "Main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
double fny(double x, double y, double t);
double ModT(double t);
int MODE(double th);
const double pi = 3.14156;
double d = 0.0;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Close1Click(TObject *Sender)
{
 Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Draw1Click(TObject *Sender)
{
const double H = 0.001;
int i,j;
double x = 1.074,y = 3.021,t = 0.0;
double a1,a2,a3,a4;
double b1,b2,b3,b4;
double px,py;
double th;
int N = 0;
int n = 0;
int mode0 = 0, mode1 = 0;

 while (n < 100000 )  {
  N++;
  th = ModT(t);
  mode0 = MODE(th);
  a1 = y; 
  b1 = fny(x,y,t);
  a2 = y + H*b1/2.0;
  b2 = fny(x+H*a1/2.0,y+H*b1/2.0,t+H/2.0);
  a3 = y+H*b2/2.0;
  b3 = fny(x+H*a2/2.0,y+H*b2/2.0,t+H/2.0);
  a4 = y+H*b3;
  b4 = fny(x+H*a3,y+H*b3,t+H);
  x += H*(a1+2.0*a2+2.0*a3+a4)/6.0;
  y += H*(b1+2.0*b2+2.0*b3+b4)/6.0;
  t += H;
  if ( N > 1000 && (( mode1 == 3 && mode0 == 0 ) || ( mode1 == 0 && mode0 == 3 )) )     {
	  px = 400.0 + 140.0 * x;
	  py = 320.0 - 140.0 * y;
     Canvas->Pixels[px][py] = clBlack;
     n++;
  }
  mode1 = mode0;
 }
}

double fny(double x, double y, double t)  {
 return -0.20*y + x - x*x*x + 0.30*cos(t);
}

double ModT(double t)                     {
 double s = floor(t / (2.0 * pi));
 return t - 2.0*s*pi;
}

int MODE(double th)      {
 if ( cos(th + d) >= 0 && sin(th + d) >= 0 ) return 0;
 if ( cos(th + d) < 0 && sin(th + d) >= 0 ) return 1;
 if ( cos(th + d) < 0 && sin(th + d) < 0 ) return 2;
 if ( cos(th + d) >= 0 && sin(th + d) < 0 ) return 3;
 return 3;
}
//---------------------------------------------------------------------------

Googleでたんに、「フラクタルの呪い」とだけ打ち込んで検索すると、私のフラクタルの呪いという記事がかなり上位にリストされる。すると、荒唐無稽な私のこの記事は、それなりに珍しいということになる。もちろん内容の質を保証するものではまったくない。

いかなる意味でもその続きというわけではないのだが、たまたま私がいつも愛読している読売新聞の科学欄に、フラクタルの特集があったので、この記事に基づき私なりにまとめてみる。

まずフラクタルというと、象徴的な人物は、ブノワ・マンデルブロ博士であるが、改めてその経歴をみてみると、1924年生まれ。私の父のことをつい思い出すのだが、うちの父は1929年生まれなので、5歳年上ということになる。こういうのは死んだ親の歳を数えるということになるのだろうか。

戻って、マンデルブロは、子供の頃ポーランドからフランスに移住し、パリ大学で博士号を取得した。なんとなくグロタンディークのことを思い起こす。その後渡米し、IBMの研究員やエール大学の教授などを務めた。フラクタルとはマンデルブロが考えた造語で、ラテン語の、ちぎった、とか壊れたという意味のfractusからきているという。私はつい、fractionやfractureという英単語を思い出すのだが、これもfractusが語源のようである。

さてマンデルブロは1960年に、自己相似性をもつ複雑なかたちをとらえる理論を数学的にまとめた。それがフラクタル理論である。

フラクタル理論は1980年頃から、コンピュータグラフィックスの分野で盛んに応用された。フラクタル理論を使えば、山、川、木、雲などが自然なかたちで描けるからである。レヴィの図形の続きIFSのアトラクタなど、その簡単な例だろう。すなわち、フラクタルを使うと、コンピュータグラフィックスで、少ない情報でリアルな画像を描ける。

他の身近な例として、酒井敏・京大教授は、シェルピンスキのガスケットに似た形を立体的に組み合わせた「フラクタル日よけ」を2006年に開発したという。

また最近最も注目を集めているのが経済理論への応用であるという。例えば高安美佐子・東工大准教授は、企業同士が取引する複雑なネットワークにフラクタル構造が潜んでいることに着目した。そして日本企業の約百万社の売上高のビッグデータから、各取引での細かい流れを推定する理論を考えだしたという。そしてこの理論を使って、2016年の熊本地震直後、全国企業の売り上げが月に約7000億円減ると推定したという。

そういえば今思い出したのだが、私は以下の本をもっているが、悪い癖で積読である。

  1. 「エコノフィジックス」高安秀樹・高安美佐子著、日本経済新聞社 2001年刊
  2. 「禁断の市場」ベノア・B・マンデルブロ、リチャード・L・ハドソン、高安秀樹監訳、東洋経済新報社、2008年刊

そのうち読まなきゃ、とブログには書いておこう。

グレイマン・シリーズ3の「暗殺者の鎮魂」を読んでしばらくして、次の「暗殺者の復讐」を読むことにした。

「暗殺者の復讐」では、ジェントリーが、「暗殺者の鎮魂」のとき、マンハンターという刺客を差し向けてきたことに対する報復として、ロシアのシドレンコの居住地を襲った。シドレンコの側も、ジェントリーの来襲は当然に予想していて、多数のならず者を周囲に配置していたが、いかんせん警備のプロではなく、街の愚連隊に毛が生えた程度なので、ジェントリーの敵ではない。

ただ、ジェントリーも、シドレンコを殺傷した後の脱出路をきちんと確保していなかった面があり、行き止まりになって焦った。そして強行突破でなんとか逃げ出したものの、シドレンコよりはるかに手強い新たな追手がいた。それは、民間警備会社、タウンゼント・ガバメント・サービスの派遣するチームである。

タウンゼント・ガバメント・サービスは、CIAのカーマイケルから、グレイマン、すなわちジェントリー殺しを高い賞金で依頼されたのである。そこでタウンゼントはまずUAV、すなわち無線操縦の無人飛行機でグレイマンを追跡した。シドレンコを襲った場面も、UAVによって撮影されていた。

タウンゼント・ガバメント・サービスの社長のリー・バビットは、UAVだけでは限界があるので、ジェントリーと似た経歴の、ラッセル・ウイトロック、通称デッドアイという独行工作員を雇った。すなわち、デッドアイは、グレイマンの「生態」に詳しいので、UAVでスウェーデンのある都市で、大まかな居所が確定されると、その中でグレイマンが潜んでいそうなアパートの当たりをつけた。あとは、タウンゼントの部隊がそこを襲う手はずである。

ところが何を思ったか、ウイトロックが突然裏切ってタウンゼントの部隊を殺戮し、むしろグレイマンを救助した。グレイマンはウイトロックの意図がわからず当惑したが、ともかく命を助けられたことはありがたく思った。実はウイトロックは筋金入りのサイコパスで、ある深い意図があってグレイマンを助けたのだが、その意図はあとで明らかになる。

一方、ヨーロッパではモサドのチームが活動していた。そのチームはいわばイスラエルの大統領直属で、中東の反イスラエルの組織がイスラエルの大統領の暗殺を企てるのを事前に察知し、もし本当に暗殺の実行犯なら、強襲チーム、メツァダを派遣して駆除する。それを判断するのが、モサド情報収集部の目標決定官、ルース・エティンガーである。ルースはみるからに魅力的な女性だが、仕事には厳しい。

さて、ウイトロックが筋金入りのサイコパスである、というのは、イスラエルの要人を殺害して、イランの諜報部から莫大な賞金をせしめようという意図があり、そのことにジェントリーを利用しようという黒い意図があったからである。そのために、タウンゼントの部隊によって襲われたときジェントリーを助けたのだった。ただ、このことで、殺そうと追及する相手に全く不足していないジェントリーは、モサドからも追われることになり、一層窮地に陥った。そもそも、なんとしてもジェントリーを殺害したいCIAは、モサドに協力を要請した。

しかし、CIAとモサドは当然に一枚岩ではなく、特にルースは、ジェントリーのプロファイルの解析から、ジェントリーがなんの大儀もなくイスラエルの要人を狙うわけがないと思った。

このようないろいろな個人とグループのからみで事態が進展していくのであるが、それにしても感じたのは、まるで将棋や囲碁のAIと、棋士の関係が次第に露わになってきたことである。すなわち、ジェントリーが得意とするのは、ひそかに敵を攻撃することだけでなく、姿をくらましたり、危険を察知して逃げる独特の勘なのだが、無人飛行機、監視カメラ、顔認識や歩き方などの行動分析、のハイテクの発達で、ジェントリーは、培ったスキルと勘が陳腐化(obsolete)していく傾向を感じてしまったのだった。これもシンギュラリティか。

野球中継

user-pic
0

最近広島カープが好調なので、テレビで試合の中継を観たいと思いつつ、全く放送がないので、やはり広島じゃないと観れないのかと諦めかかったが、ふと、そういえばケーブル・テレビでは、12球団どのチームでも観れるのでなかったかと思い、Googleで、「J-COM 広島カープ 中継」と入れてみるとヒットして、453というチャンネルで広島カープの試合の中継があると分かった。

そこで実際に広島カープの試合が行われているときケーブル・テレビで453と入れると、確かに中継しているのでうれしくなった。

ただ、チャンネルは453とは限らず、毎日変わる可能性もあるので、その都度ウェブで調べる必要がある。

そこで改めて考えてみると、そういえば地上放送で全く野球中継がない。少し前は巨人戦は必ずあったような気がするが、いつからそうなったのだろう。まったく記憶がない。

でも、考えてみると、野球中継というのは何時に試合が終わるか全くわからず、すると折角予定されている番組を変更しなくてはならないので、スポンサーにとって迷惑かもしれない。すると野球中継の代わりにバラエティ番組を放送した方がいいのかもしれず、しかも都会ではほとんどの家庭でケーブル・テレビやスカパーなどが観れるので、野球中継はそちらに任せた方がなにかといいのかもしれない。

あと、以前よりもプロ野球人気が下がっているのかと思ったら、テレビをみると、巨人戦以外でも球場は結構人で埋まっている。以前は私の記憶が正しければ、巨人戦以外は球場は閑古鳥が鳴いていたはずである。

ともかくケーブル・テレビで、進行中のどのプロ野球でも観れるというのは野球ファンとしてはありがたいことであるが、毎日プロ野球をかじりついて観るのも時間の無駄ではないか、などとつい考えてしまうのだった。

ところで、こういうのは文明の進歩なのだろうか。違うような気がするが、わからない。

芝野七段

user-pic
0

私は芝野虎丸のファンでずっと応援してきたが、日本棋院のホームページをみて、ええっと驚いた。以下、引用する。

第26期竜星戦(主催:日本棋院、囲碁・将棋チャンネル)の決勝戦が7月31日(月)に「竜星スタジオ」(日本棋院東京本院内)で行われ、芝野虎丸三段(日本棋院東京本院所属)が、余正麒七段(関西棋院所属)に黒番中押し勝ちをおさめ、すべての棋戦を通じて初優勝を果たした(タイトル獲得は8月1日付)。
芝野は17歳8ヵ月の優勝で、竜星戦の最年少優勝記録(第25期、一力遼七段の19歳1ヵ月)を更新。また、入段から2年11ヵ月(平成26年9月1日入段)で全員参加棋戦のタイトル獲得となり、井山裕太六冠が持つ最短記録(3年6ヵ月、第12期阿含・桐山杯)も更新した。
この優勝で芝野は七段に昇段(8月1日付)を決め、七段昇段の最短記録(坂井秀至八段=関西棋院、3年4ヵ月)をも更新した。

井山六冠の年齢記録を破っていきなり七段はすごいと思ったが、考えてみると、竜星戦はまだ本戦トーナメントが始まっていない段階で芝野の優勝を開示してしまったのだから、半端ないフライングである。

フライングといえば、藤井四段がNHK杯で千田六段に勝って連勝記録を伸ばしたことを放送前に報道してしまったこともかなり驚いたが、今回は昇段がかかっているので、突然、芝野七段と呼んだときの違和感を少しでも和らげる意図だろうか。

こういう飛びつけ七段みたいな制度は、順位戦が存在する将棋界にはなじまないのかもしれないが、しかし、基本的に今では囲碁界の方が将棋界より昇段が易しいとはいえないようである。

例えば、私がいつもブログを愛読ざせて頂いている囲碁の白石六段であるが、棋聖戦Cリーグに入るほどの実力者だが、自分の実績ではいまから昇段するのは実に大変だとおっしゃられていた。

昔はある程度年功があれば囲碁界は多くの人が九段になれたはずなのにえらい違いである。

まあともかく、芝野七段であれ、藤井四段であれ、若い人が出てきて頑張るのは業界を活性化するのに実に効果があってよいというものである。

山の音

user-pic
0

少し前のことであるが、ゴールデンウイーク中に町田のブックオフに行った。全品二割引というセールだったからである。二割引というのがいいのは、もしかしたら読まないかもしれないけどとりあえず買っておこうという閾値が下がるからである。すると、相対的に読む可能性が低い純文学の名作を買うことにもあまりためらいがなくなる。

そうやって以前買った本に、森鴎外の「阿部一族・舞姫」新潮文庫がある。軽い気持ちで買ったこの小冊子のような本は、私の生涯でも上位にくる印象の深い本となった。きっと何度も読み返すことだろう。

今回、似たような乗りで買った本に、川端康成の「山の音」と、谷崎潤一郎の「陰翳礼讃」がある。どちらも新潮文庫である。それで、一種の気まぐれで、一連のミステリー、工学書、数学書の読書列に、そっと川端康成の「山の音」を忍び込ませた。

「山の音」は、第二次大戦が終わって間もない時代の、二世代同居家庭の話である。主人公は、その一家の主の尾形信吾。62歳で会社の社長である。鎌倉の自然豊かな地に住み、横須賀線で都内に通っている。もう歳で物忘れが激しくなったみたいな記述があるが、それと同い年の私としては苦笑するよりない。信吾の妻は保子で、信吾より一歳年上である。

長男の修一が同居している。普通のことであるが、あまり父と仲がいいとはいえない。ただ、父の会社に勤めていて、会社では上司・部下の関係なので、家庭でも指示されたら渋々父のいうことをきく。

修一の妻は菊子。まだ子供はない。じつは信吾は結婚する前に、今の妻の姉に憧れていた。その人は近所でも有名なくらい美人だった。ところが美人薄命の典型でその姉は亡くなってしまい、仕方なくというわけではないだろうが、信吾は妹の保子と結婚した。信吾は菊子に、その亡くなった姉の面影をみてしまい、平静でいられなくなることがある。

舅が息子の嫁に密かに想いを寄せるということはよくあることであるが、菊子は菊子で、ファザコンかというくらい信吾を慕っている。そして、信吾と菊子の間の限りなくプラトニックな関係は、この家で誰もが周知である。

さらにこの家庭で誰もが知っているのは、修一の浮気である。会社で、信吾の秘書のようなことをしている谷崎英子という女性がいる。じつは英子は修一の浮気相手の一人なのだが、さらに修一には絹子という別の本命の浮気相手がいる。戦争未亡人だという。

当時のことで、修一は出征し、いつ死んでもおかしくないような激戦をかいくぐってなんとか修一は帰還してきた。戦争PTSDなのかもしれないが、修一の心のどこかに空虚が巣くっており、その隙間を埋めることが戦争未亡人との浮気につながるのかもしれない。

こんなことがあって菊子が面白いわけがない。それでときどき反抗のように実家に帰るのだが、数日したらまた戻ってくる。信吾に会いたいのである。

これでだけでも家内は大変であるが、なんと信吾の長女の房子が、子供二人を連れて出戻ってきた。なんでも、房子の夫の相原は、犯罪に加担しているかもしれない困った人で、いろいろな意味で房子は同居していられないのだという。

信吾はそれは分かるのだが、今後のことを考えたら大変で、孫がきて可愛いみたいな気持ちになかなかなれない。

菊子は菊子で、当然ながら房子とうまくいかないのだが、それをみて信吾はつい菊子を庇う。それをみて、ああ実の娘より息子の嫁の方をかわいがるのかと房子は面白くない。

それだけではない、英子に紹介させて、修一の浮気相手の絹子に無理やり会いにいったり、それで気分を壊したのかどうか知らないが、英子が会社を辞めてしまい、信吾はいろいろ悩む。

しかしそれは序の口で、修一の浮気に反発して菊子が勝手に堕胎してしまったり、絹子が妊娠していて修一の子供かどうかわからないが産むと言い張ったり、房子の夫が知らない女と自殺未遂になったりと、信吾や保子の心労は募るばかりである。

それで信吾は菊子に離婚または、修一と二人で家を出て別の家に住むように提案したりするのだが、菊子に、離婚してもお父様のそばにいて面倒をみてさしあげたいですわと言われて、当惑しつつもうれしかったりする。

そうやって人々の感情は揺れるのであるが、鎌倉の自然豊かな地にあって、とてつもない事件は起きず、淡々と進むストーリーはもの哀しくも美しい。

本の裏表紙には、戦後文学の最高峰に位する作品である、とあるが文学初心者の私にはそのことはまだ実感できない。私には雪国の方が格調が高いような気がするのだが、「山の音」の家族内の葛藤や心理の揺れには、実人生に鑑み深く共感できるのもたしかである。

このアーカイブについて

このページには、2017年8月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2017年7月です。

次のアーカイブは2017年9月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。