TIM Labs
コピーの基礎的なことから書くので、話が無駄に長くなるのを最初に断っておく。 最後に、a[...] のような記述について書くので、そこだけ読みたい場合は最後から読もう。
まず、Pythonでの浅いコピーを示す。
>>> a = [[1,2,3],[4,5,6]]
>>> b = a
>>> a[0][0],a[1][1] = 100,200
>>> a
[[100, 2, 3], [4, 200, 6]]
>>> b
[[100, 2, 3], [4, 200, 6]]
aの要素だけを変更しようとしても、 b = a の代入により浅いコピーが行われているので、bの対応する要素も変わってしまう。

これを避けるためには、b=aの代わりに、copyのdeepcopy()を使う。
>>> import copy
>>> a = [[1,2,3],[4,5,6]]
>>> b = copy.deepcopy(a)
>>> a[0][0],a[1][1] = 100,200
>>> a
[[100, 2, 3], [4, 200, 6]]
>>> b
[[1, 2, 3], [4, 5, 6]]
さて、Pythonで色々計算しようとすると、Pythonではやってられなくて、NumPyを使うのが普通だ。 そもそも、Pythonには配列がなく、Deep Learningで必須の行列計算に困る。
では、numpyの配列で同じことをやってみよう。
>>> a = np.array([[1,2,3],[4,5,6]])
>>> b = np.array([[2,4,6],[3,6,9]])
>>> b = a
>>> a[0][0],a[1][1] = 100,200
>>> a
array([[100,   2,   3],
       [  4, 200,   6]])
>>> b
array([[100,   2,   3],
       [  4, 200,   6]])
単に代入ではコピーにならないようだ。
次に、numpyで用意されているcopy()を使ってみよう。


深いコピーができたようだが、念の為、サイズが歪なarrayでやってみよう。
>>> a = np.array([[1,2,3],[4,5]])
>>> b = np.array([[2,4,6],[3,6]])
>>> b = np.copy(a)
>>> a[0][0],a[1][1] = 100,200
>>> a
array([list([100, 2, 3]), list([4, 200])], dtype=object)
>>> b
array([list([100, 2, 3]), list([4, 200])], dtype=object)
歪んだarrayでやったら、元のaがリストの配列になってしまい、失敗したようだ。
numpyには、copy()はあるようだが、deepcopy()が存在しない。 それで、ここはやむなく、copy.deepcopy()でやるとどうなるか試してみよう。
>>> a = np.array([[1,2,3],[4,5,6]])
>>> b = np.array([[2,4,6],[3,6,9]])
>>> b = copy.deepcopy(a)
>>> a[0][0],a[1][1] = 100,200
>>> a
array([[100,   2,   3],
       [  4, 200,   6]])
>>> b
array([[1, 2, 3],
       [4, 5, 6]])
>>> a = np.array([[1,2,3],[4,5]])
>>> b = np.array([[2,4,6],[3,6]])
>>> b = copy.deepcopy(a)
>>> a[0][0],a[1][1] = 100,200
>>> a
array([list([100, 2, 3]), list([4, 200])], dtype=object)
>>> b
array([list([1, 2, 3]), list([4, 5])], dtype=object)
これで深いコピーができたわけだが、元の配列aは2次元配列ではなくて、リストの配列になっているので深いコピーができなかったようだ。
さて、配列の深いコピーをするのに、copy.deepcopy()を使えば問題ない。 しかし、普通のnumpyの配列なら、numpyのcopy()で深いコピーができる。


ごちゃごちゃ書いてきたが、最後に ...(3点)の使い方について書いておく。
>>> a = np.array([[1,2,3],[4,5,6]])
>>> a
array([[1, 2, 3],
       [4, 5, 6]])
>>> a[...]
array([[1, 2, 3],
       [4, 5, 6]])
配列aを表示するのに、単にaと書けば済むのだが、a[...]と書くこともできる。
ならば、a[...]に代入するとどうなるだろうか?
>>> a = np.array([[1,2,3],[4,5,6]])
>>> b = np.array([[2,4,6],[3,6,9]])
>>> b[...]=a
>>> a[0][0],a[1][1] = 100,200
>>> a
array([[100,   2,   3],
       [  4, 200,   6]])
>>> b
array([[1, 2, 3],
       [4, 5, 6]])
同じサイズの配列の場合、これで配列の深いコピーができている。 copy.deepcopy()やnumpy.copy()を使わなくてもできるのだが、事前に同じサイズの配列が存在していないといけない。

最後に、...が何者か示しておく。
>>> ...
Ellipsis
>>> type(...)

...はオブジェクトなので、引数として渡すなどもできる。
日本でも、大学の講義がビデオで公開されるようになったとはいうものの、通常行われている講義がそのまま公開されるのではなく、かなり短い特別な講義だけが公開される感じで、とても世界と比較てきるようなオープン性は見られない。

まあ、そんなことを言っても仕方がない、ここは日本だ。
それよりも、世界の大学でどんな講義が公開されているのか、探して勉強したほうが良い。

MITOPENCOURSEWAREでは、MITの実際の講義がそのままビデオでじゃんじゃん公開されている。
現在、2400コースあり、3億人が見たそうだ。
この数字は、MITだけでの数字である。

実際の正規のコース授業がそのまま公開されているようで、形態もいろいろあるようだが、VIDEOが一番気楽でよい。
VIDEOだけではなく、資料、問題、なども用意されていて、とても親切である。

日本の大学だと、あれこれ登録しないと見せてくれないケチな根性のところが多いが、ここは何の登録をしなくても、見せてくれる。
ちゃんと授業を受けて、試験も受けて、サーティフィケイトを貰いたいとかの場合は、登録などが必要みたいだ。

さて、最近、MITでパズルの授業を行っているというのを伝え聞いた。
それで、さっそく調べて見つけたのが、Programming for the Puzzled というコースだ。

レベルは学部生向けで、パズルでアルゴリズムを考えることで、プログラミング能力の基礎を鍛えようという意図らしい。
実際、この授業だけではなく、パズルやゲームを授業に使っている例は簡単に見つかる。

先生は、Srini Devadas教授で、インド人である。
あのIITマドラス校出身で、バークレーで学位を取得し、MITのFull Professorになっている。
ということで、ちょっと英語にインド訛りがあるが、そんなに気にしなくて良い感じだ。
そもそも、MITとかでコンピュータ関係を勉強しようとしたら、インド英語は必須科目だろう。
この講義には、トランスクリプション(発言内容を全部文字にしたもの)が用意されているので、聞き取りにくければ、テキストとして読むこともできる。

講義は全部で11本のビデオになっている。
毎回、色々なパズルを取り上げて、アルゴリズムについて細かく解説し、Pythonのプログラムを示しながら講義は進む。
Pythonのプログラムや、課題の解答プログラムも用意されていて、懇切丁寧だ。

講義の中に、SUDOKUがあるというので、この講義を知ったわけである。
SUDOKUの回は、再帰呼出しが話の中心であった。
最後の方で、再帰呼出しをしないで解くやりかた(普通にルールや手筋に基づく方法)の説明が簡単にされていた。
SUDOKUの問題を作ることには触れていなかった。
まあ、そこまでやると、さすがにMITでも、学部生向けの入門コースとしては無理があるのだろう。

第3回は、Puzzle 3: You Can Read Minds というタイトルで、トランプ手品が題材であった。
手品を1つ身につけたい場合には、ちょっと聴講するとよいだろう。

その他にも、アルゴリズムを考えないといけない、アルゴリズムによって大差がでてしまう例などが取り上げられている。

といっても、どれも基本的なものばかりだ。
パズルに関する高度な内容ではないので、プログラマなら出来て当然と思われるものばかりである。

去年の夏に、A1プリンタを入手し、幅60cm、長さ2mほどの大きさの印刷を良くしていた。
A1プリンタなのだが、ロングといって、ロール紙を使うことで、A1の標準よりも遥かに長い印刷ができるものだ。
このあたりは、以下の記事を参考にされたし。

通常はポスター程度の印刷なのだが、時々長い長い印刷物を印刷しなくてはならなくなることがあり、今年もそういう時期がやってきた。

それで、ちょっとプリンタの試運転ということで印刷してみた。

HPFalseDriverOutput.jpg

非常に大きなExcelの印刷を試したのだが、なぜか2mのうち、半分くらいが罫線が消えて文字だけになってしまった。
設定をいじっても、同様の現象になってしまう。

これは、大きくなって、ラスター化に失敗したということであろうか。
つまり、インクジェットプリンタに出力するのに、ピクセルにしないといけなくて、その変換途中でメモリ不足かなにかのトラブルで、罫線のラスター化を放棄したように思われる。

ということで、諦めてトボトボと帰っている途中で、原因を思い出した。
Windowsマシンから出力しているのだが、プリンタにインストールされていたドライバに問題があったのをプリンタメーカー(HP)のカスタマサポートから教えてもらったのを思い出した。
去年使っていたパソコンは動かなくなって、パソコンを新しくしたので、また同じ現象が起きてしまったのだ。

自動インストールされるものを使ってはいけないのだが、たぶんA1標準サイズまでなら、それでもとりあえずは動くのではないかと思う。
実際、普通のA1程度までは問題なかったのだ。
でも、勝手に入ってしまうというか、デフォルトのドライバがダメというのは要注意だ、というか酷い話だ。
メーカー提供の正式ドライバ以外が勝手にインストールされるような仕組は止めてもらいたい。

それで、自動でインストールされてしまうプリンタドライバを消去し、メーカー提供のドライバを入れてみた。
何も考えずに、標準、何でもやってくれる万能ドライバみたいなのがあったので、それを入れたら、A1サイズを指定しても、勝手にA4サイズまでしか印刷されない。
どうやら、小型プリンタ対応のドライバを入れたらしいので、また削除し、より機種を限定したドライバを入れてみた。

プリンタは、HPの DesignJet T520 というA1のロール紙も対応しているものだ。

ドライバを入れて、プリンタを確認すると使えるプリンタのリストが出てくるのだが、そのときの表示はこんなものが出てきた。

HPDesignJectT520-24inPCL-single.png
これは正しく動くものである。

PCL(Printer Control Language)は、HP(Hewlett-Packard)社が開発したページ記述言語であり、多くのプリンタで標準サポートされている。

さて、プリンタドライバが正しく動かなかったので、A1サイズ幅のゴミがいっぱいできてしまった。どうしよう。
PythonKivy.jpg
実践Pythonライブラリー

Kivyプログラミング

Pythonでつくるマルチタッチアプリ

監修  久保幹雄
著者  原口和也
発行日  2018年6月10日
サイズ   A5, 200頁  
ISBN  978-4-254-12896-3
価格   3200円(本体) 
発行所  朝倉書店


Pythonが流行っていて、人工知能関連のツール・ライブラリなどは選ぶのに困るくらいある。
しかし、GUIとなると、状況はまるで違って、とても少ない。

Pythonには標準のGUIとしてTkinterがついてくるのだが、ちょっと古いというか、かっこう悪いというか、いけていないのであった。

GUIをPythonのコードでガリガリ書いていくと、プログラムが肥大化するし、デザインがプログラムの中に入ってしまって、ごちゃごちゃしてしまう。
WEBページをHTMLだけで作るのではなく、デザイン部分はCSSで書くというのと同じように、分離できないものだろうか。

それに応えたのが、Kivyで、簡単な言語で記述することができる。
マルチプラットフォームであり、マルチタッチなどにも対応している。
詳細について書くと切りがないので、ネット上の情報を挙げておく。


本日は、電気通信大学、通称電通大の「産学官連携DAY」の日であった。
大学のホームページ内に産学官連携DAYのページが用意されているので、詳しくはそちらを参照されたい。


 20180620175948530_0001-600.jpg 20180620175948530_0002-600.jpg

学外に向けての公開であり、分野ごとの研究室ツアーがあったり、講演、セミナーがあったり、コンテストがあったりする。

さて、いきなり電通大の「産学官連携DAY」の紹介をしたが、実は我々は普段は、電気通信大学の次の建物にいる。
去年できたばかりのピカピカのビルで、1階にはコンビニもあり、とても便利である。
所在地は、京王線調布駅(新宿から特急で2駅)の北、徒歩5分から10分に位置し甲州街道に面する。
本社との距離は、徒歩も含めて約1時間である。

DSCN0473-600.jpg

今年、電通大は創設100年を迎える。
そのための記念事業の1つとして、100周年記念キャンパスを整備し、産学連携を推進すべくベンチャーを中心とした研究系企業が集積するビルを計画して作ったのが写真のビルであり、この中に弊社の人工知能部門が入居している。

電通大は創設以来純粋電波系の大学であり、なかなか特殊な経緯をだどってきた大学であるが、インターネット、IT、IoT、AIなどに特化した、時代にピッタリの大学になっている。電通大に世の中が合ってきたというのが正しいだろう。
また、オタク系大学としても有名であり、地下アイドル仮面女子との連携などもあるユニークな大学である。
コンピュータ将棋やコンピュータ囲碁のメッカでもあった。今でも、コンピュータゲーム系、e-スポーツなども盛んに研究されている。
光科学では非常に有名であるが、電通大はそもそも電磁波関係に強いので、当然のことである。

今日は、研究室や、入居企業なども一緒に、あれこれ行う日であった。

電通大では、学生がものづくりに精を出せるように、工房(工作室)が用意されていたり、小中高生向けのプログラミング教室(教えるのは電通大生)があったりする。

また、企業が支援するコンテストもあり、賞金が出る。

20180620175948530_0003-600.jpg

電通大ではロボットはあちこちにあり、案内するロボットや、説明するロボットもいる。

DSCN3175-600.JPG DSCN3176-600.JPG

小学生向けには、ダンボールで作るロボットがあり、小学生にプログラミングをダンボールロボットが教えている。
以前は、講師が教えていたのだが、ロボットがしゃべる方が小学生がちゃんと聞くので、ダンボールロボットが教壇に陣取り、講師は隅で見守るようになってしまったとのことだ。

秋には学園祭があり、そこでも多数の電波系大学の特徴を見ることができる。
それ以外にも、研究室公開日や、公開講座などが頻繁に開催される開かれた大学であり、無料のものも多い。
イベント屋が行う講習会などは非常に高額なことが多いが、電通大では第一線の研究者から無料か無料に近い金額でセミナー等に参加することができるので、ぜひ利用してみよう。

ということで、今回は、電気通信大学の一面を紹介した。
詳しくは、電気通信大学のホームページを見ていただきたい。
前回、『DNAの98%は謎』で、DNAで遺伝に関係している、つまりタンパク質の生成に関係しているデータは、たった2%程度で、残りの98%は、謎であるという本を紹介した。

AIには、ディープラーニング以外に、進化、遺伝の仕組みを模した方法が存在する。
生物の進化をモデルにした、かなり広範囲なものを進化計算とよび、さまざまな最適化に使われている。
その中でも一番良く知られているのが、遺伝をモデルにした遺伝的アルゴリズムである。
つまり、染色体の交叉や突然変異を利用しているのだが、一般に行われているモデル化は、最適化したいデータを染色体のように長い糸状(配列)に並べ、データの交叉や突然変異を行い、出来たものを淘汰させるのを何世代も繰り返すことで、最適化を進め、満足できるようなデータを求めようとするものである。

つまり、配列の全データが有効データなのである。
ということは、実際のDNAをちゃんとモデル化していないと言えるはずなのだ。

長い長い染色体(配列)の一部に有効なデータを置き、染色体と同様な交叉や突然変異をしていない。

人間ではDNAの98%が謎なのだが、高等な生物ほど謎の部分が大きいということだから、現状の遺伝的アルゴリズムは下等生物を真似ているに過ぎないと考えられる。
DNAの98%の謎の部分の意味、意義、効用は今世紀になってから研究が本格化し、まだまだ研究途上のようだ。
だからこそ、この謎の部分を反映した進化計算ができれば、もっと高度なことができるようになるかも知れない。

さて、下等生物であるはずのウイルスがとても賢い(?)ので、対策が難しいことを知っているだろうか。
あるウイルスに対する薬を作っても、ウイルスの遺伝情報が変化するので、新しい薬を作ってもダメになる。
つまり、ウイルスはとても賢いと言えるのではないだろうか。
ウイルスは、DNAまたはRNAを持っており、遺伝の仕組みが異なるために、薬に対抗する能力が高いと言われている。
そのため、ウイルス進化論なる専門用語もあるようだ。

ならば、ウイルス進化論をモデルにしたアルゴリズムは無いかと調べたら、ウイルス進化型遺伝的アルゴリズムというのがあり、論文もかなり存在するようである。
通常の遺伝的アルゴリズムでは進化が停滞してしまうような場合でも、ウイルスの寄生能力をモデル化することで、もっと有効なアルゴリズムにしようというものらしい。
今までの遺伝的アルゴリズムのための染色体以外に、ウイルスを用意し、ウイルスを染色体に感染させることで、進化を促進(?)するらしい。

98%の謎部分をモデルにした遺伝的アルゴリズムはまだないらしいが、ウイルス版は存在する。
といっても、出版されている遺伝的アルゴリズムの本で、ウイルス進化型を説明している本は無いらしいので、ぜひ論文を読もう。
DNA98Mystery.jpg

DNAの98%は謎
生命の鍵を握る「非コードDNA」とは何か
ブルーバックス B-2034

著者  小林武彦
発行日  2017年10月20日
サイズ   新書, 208頁  
ISBN  978-4-06-502034-0
価格   920円(本体) 
発行所  講談社 

前2回に渡って、脳とニューラルネットについて書いた。

前回は脳だったが、今回は遺伝、DNAについて紹介しよう。

1990年に人間のゲノムを全部解読しようというヒトゲノム計画(Human Genome Project)が世界中の協力で始まった。
最初はなかなか解読ペースが上昇しなかったが、ゲノム解読情報を商用化しようとする動きも現れ、その後、解読技術の向上もあり急激に解読ペースが上昇し、2003年に解読作業が終わった。

ゲノムの情報が解読できたことで、治療や新薬の開発に非常に役立つと言われている。
人ゲノムだけでなく、さまざまな生き物のDNAが解読されつつあり、地球上の生命の進化の全体像が徐々に明確になりつつあるようだ。

さて、本書のタイトルによると、DNAの98%は謎とある。
DNAの情報からタンパク質が作られて、その種類は5万種とも10万種とも言われている。
それで、長い長いDNAのどのくらいがタンパク質の生成に関わっているかを調べたら、2%だったと。

遺伝子はDNAの2%の部分に存在し、DNAの残りの98%はタンパク質を作らないことが分かった。
遺伝のことだけ考えれば、2%の部分だけ存在すれば大丈夫なはずだが、そうなっていなかった。
これは、AGTC4種の塩基列の並び情報はほとんどが利用されていないということ。
DNAはゴミだらけであり、無駄だらけであると思われていた。

それが、ゴミと言われているタンパク質の生成に関わらない部分も何か働きがあるのではと研究が進んだ。
それが「ゲノムを支える非コードDNA領域の機能」プロジェクトであり、本書の著者がプロジェクトの代表者で、プロジェクトの成果をわかりやすく説明したのが本書である。

98%は無駄に作られているように見えるが、無駄がほとんどであることで、DNAが放射能から受ける影響を軽減したりすることが分かり、また、高等生物になるほど非コード領域が増えていることが分かった。
どうやら、とても重要な働きをしているらしいのだ。

DNAの非コード領域の働きについての説明は省略するので、本書を読むか、他の書物、ネット情報などを参考に学習されたい。

脳のグリアといい、DNAの非コード領域といい、無用の長物と思われていたものが、とても大切だったことが分かってきたのだ。
よくよく調べると、無駄と思われていたものが非常に大切だった、主要部分だったということはしばしばある。

....ということはAIにも影響するかもという話は次回に書くことにする。


前回、『もうひとつの脳』を紹介した。
脳はニューロンで出来ているという話をよく聞くと思うが、実際の脳のうち、ニューロンの割合は少ない。
重さ、容積で言っても2割に満たない。
より正確に言うと、大脳のニューロンの割合は19%程度らしいが、小脳はニューロンが80%にもなるらしい。
神経細胞はとても大きな細胞なので、細胞数で比較すると、大脳ではニューロンは2%くらいになり、とても数が少ない。

ニューラルネットワークは、人間の脳を構成している神経細胞・ニューロンのネットワークを模して作られている

というようなことがよく言われているのだが、小脳はともかく、大脳には全然当てはまらない。
大脳を手本とするなら、より多くある細胞のシミュレーションをしないと、脳を手本にしたとは言えない。

全脳シミュレーションという言葉がある。脳の全神経細胞数と同レベルのニューラルネットワーク(ニューロン、シナプス)を作って、どんな働きをするかを研究しているらしい。
しかし、全脳というと、脳の働き全てをシミュレーションすることに思えるが、大脳についていえば、ごく一部であるニューロンについてだけのシミュレーションを行っているに過ぎない。
より正確には、全脳規模神経回路シミュレーションと言うらしい。あくまでも、神経回路のシミュレーションである。

脳は、ニューロンよりもその間に詰め込まれていると考えられていたグリアの方が割合が多く、どうやらグリアが色々な働きをしていることが21世紀になって次々とわかり出した。
ならば、グリアの働きも含めた脳のシミュレーションが必要ではないだろうか。

といっても、どうすれば良いかは分からないのだが、今のニューラルネットワークによる人工知能は、いろいろ今までにない性能を発揮し、さまざまなことに役立ちそうであるが、グリアが果たしている機能が抜け落ちているはずなので、今後問題も色々出てくると予想される。

第3世代のAIはニューラルネットを中心にまだまだ進みそうだが、第4世代のAIはグリアも含めた本当の意味の全脳シミュレーションに基づいたAIとなるのであろうか。
21世紀半ばにはそういう時代が来るかもしれないと思う。
TheOtherBrain.jpg

もうひとつの脳
ブルーバックス B-2054

著者  R・ダグラス・フィールズ( R. Douglas Fields, Ph.D.)
監訳  小西史朗   
翻訳  小松佳代子
発行日  2018年4月20日
サイズ  新書, 538頁  
ISBN  978-4-06-502054-8
価格  1,500円(本体) 
発行所 講談社 

The Other Brain
The Scientific and Medical Breakthroughs That Will Heal Our Brains and Revolutionize Our Health
By R. Douglas Fields
発売日: 2011/1/11
ISBN-13: 978-0743291422
出版社: Simon & Schuster; 1版 (2011/1/11)

今回は、数学・コンピュータ系とはちょっと違う脳科学系の本を紹介しようと思う。
といっても、専門書ではなく、BLUE BACKSであり、ポピュラーサイエンスの本である。

今非常に(異常に)騒がれている人工知能は、多くの場合ニューラルネット、ディープラーニングの場合が多い。
人工知能は、もっともっと多様なのだが、フィーバーとは得てしてそんなものである。

その技術の根拠(参考)になっているのが、脳であり、ニューロン(神経細胞)である。
ニューロンは大脳皮質だけだと150億、大脳全体で850億、小脳はさらに多くて1000億くらいあるという。
結局、大脳皮質は、ニューロンの総数の約1割に過ぎないようだ。
なので、大脳皮質だけをシミュレーションしても、一部のシミュレーションしかしていないと思うべきだろうか。

シナプスの総数の説明はなかなか見つからないが、ひとつのニューロンが数千のシナプスを持っているようなので、シナプスの総数は数百兆というとんでもない数になる。

さて、ここまでは、古い話だ。古いというのは、20世紀の脳科学といっても良いだろうか。

この本のタイトルの「もうひとつの脳」の研究が21世紀になって急激に研究が進んで、さまざまなことが分かってきた。
脳は、ニューロンだけで出来ている訳ではない。
血管も張り巡らされているが、それ以外にグリア細胞(Glial cell)がある。
このネーミングは、Glueから来ているらしく、神経細胞を支えている詰物、接着剤、固定剤で、たいした働きはしていないと長らく考えられていた。

しかし、脳の神経細胞の割合は、重さで1割、細胞数だとたった2%程度らしい。
つまり、神経細胞は、脳のごく一部でしかないということだ。
残りの大部分はグリア細胞である。
といっても、その他の細胞をまとめてグリアと呼んでいたのだが、何種類かあり、いろいろ働きが違うことが分かってきた。
ここでは、グリアの詳細の説明は省く。

そして、頭が良いとかは、脳の病気の原因とかは、どうやらグリアに由来することが多いらしい。

アインシュタインの脳が保管され、天才の研究に使われ続けてきたのだが、頭が良い理由とまことしやかに言われていたことと、アインシュタインの脳は一致しないことが多かった。
脳は小さめで、神経細胞にはめだった特徴はなかったようだ。
しかし、グリア細胞は圧倒的に違っていた。

AIについて勉強するなら、同時に脳科学や遺伝についても、ある程度知っておくことが望ましいだろう。
そして、この分野は今世紀になって、急激に発達した。
20世紀までの知識が大幅に修正されたというか、革命が起きたくらい違うのである。
それらは、医学、看護学、薬学など医療分野では当然の知識として今では教えられている。
脳、脳科学について古い考えに基づいて話していると、「あ、この人、若い時に得た知識しかなくて、新しいことを何も知らない」と思われてしまうので注意しよう。
大人になると、神経細胞は死ぬだけというのは典型的なミスであり、老人でも神経細胞が生まれることもあり、これを利用した治療方法などが盛んに研究されている。

本書は、グリア細胞に関してかなり網羅的に、今後の影響なども含めていろいろ説明されている。

脳の主役はニューロンであるとい考え方は古いのだ。
主客転倒し、脳の主役はグリア細胞で、もうひとつの脳こそ主役かも。



risansuugakunosusume.jpg

離散数学のすすめ

編著者  伊藤大雄・宇野裕之

発行  2010年5月15

サイズ  A5, 325頁  

ISBN  978-4-7687-0412-7

価格  2,700円(本体) 

発行所 現代数学社 


プログラミングを本格的にやろうと思う場合、理工系の一般常識である線型代数学、微積分学を勉強し、さらに最近は統計学も習得するのが一般的であろうか。
さらにアルゴリズムなどを勉強すると、離散数学という言葉を知るはずである。
離散数学というと、線型代数学や微積分学などのような非常にかっちりした大きな体系とは違い、さまざまなことがごちゃごちゃと出てくる感じである。

離散数学というと、どうしても野崎昭弘先生を思い出してしまうのだが、ここではあえて避けて、この本を紹介する。

本書は、「理系への数学」(現代数学社)にリレー連載されたものを元に、加筆したもののようである。
執筆メンバーは20名を超え、そのうち何名かはパズル系の研究会で顔を合わせる大学の先生方である。

こういう作りなので、22章あるのだが各章は独立しているため好きな所から読めて、かつ1つの章が10から20ページ前後とちょっと時間があれば読み切れる感じになっている。

離散数学は、見かけは簡単そうに見える問題が、実は未解決問題というのがよくある怖い世界である。

離散数学を知っておくことは、非常に高速なプログラムを作ったり、とても面倒と思われることをエレガントに解決するには絶対に勉強しておくべき分野である。
しかし、離散数学の本は、それほど多くはない。
世の中にプログラミングの本が溢れているが、それに比べて、離散数学の本はあまりにも少ない気がする。
これでは、エレガントなアルゴリズムを考えられる人が十分には育たない。

取り上げている話題を少々挙げておこう。

ケーキ分割問題、ハノイの塔、安定結婚問題、、、

ハノイの塔はよく知られていて、n枚の場合は、 2^n - 1 回が最小移動回数で、再帰でそれが最小であることも含めて証明できる。
ここまでは、多くの本に書かれていることで、いまさら説明の必要はあるまい。

よく知られているのは、棒が3本の場合であるが、k本(k≧3)の場合の最小手数と動かし方の説明があった。
また、棒が3本でも、横に3本が並んでいて、隣の棒にしか円盤を移動できないと制限をつけるとどうなるだろうか?
このような一般化ハノイの塔の説明があるのだ。

これは、他の問題でもそうだが、できるだけ一般化したときどうなるかの説明がある。

そのあたりを書き出すと終わらなくなるので、詳しくは本書を参照のこと。

最近のコメント

月別 アーカイブ