はてなキーワード: オートマトンとは
まだ俺に突っかかってくるのかよ。俺は君が思い描いているような教養俗物じゃないって言ってるのに。八つ当たりするなよ。
ご立派なことだが、それじゃあどうやってこの文化格差システムを崩壊させられるっていうんだね?自分が「上」に行ってから解体しにかかる以外に有効な策があれば教えてもらいたいものだ!要するに君は「韓信の股くぐり」を処世術として認めないというわけだね。ずいぶんな潔癖主義者だな。それではなかなかうまくいかないことが多い気がするが。
ま、どっちにしたってこの論点は放棄してもいいよ。君が「古典なんて役に立たないから学校で教えるな」という意見を放棄するならそれで俺の目的は果たしたことになる。
国力という観点から言えば、公教育においては実学重視、平均や底辺を上げることに重点が置かれて当然だろうということだ。一部の本当に頭のいいエリートは外国に飛ばしゃいいんだから。
どう考えても違うだろ。現実問題として自国で教育の多くを賄える国の方が「国力」(経済力だと思えば)が高いのは自明じゃないか。でもって、君は旧帝大は廃止しろという意見ということでよろしいか?
あと、書き忘れてたけど、その流れで言えば、日本でもラテン語やギリシャ語や欧米古典文学を学ぶべきだ、ってなるのが筋なんじゃねーの?
一般には「自文化について語れる」ことが「教養」の前提とされているがね。ま、そう思いたければご自由に。何度も言うようにその考え方は一つの例でしかないし俺が肯定している考え方というわけでもない。
それから「基礎教養」の件だが、「覚えておいて損はない」程度のことかよ。拍子抜けした。
あのさあ、なんでパターン認識とか待ち行列とかの例を挙げたと思う?こういう分野では数値計算が重要になるから、基本的に低レベルに近い言語でプログラムを書くことが望まれるし、似たようなプログラムを使い回すから生産性という意味でもそれで大した影響がないということだ。
つまり、「基礎教養」の勉強をサボっても、君が線型代数や微積をサボったほどの悪影響もないということだ。少なくとも建前上は。それでもなおかつ「必修」とされることの意義を問うている。
てっきり、「基礎教養」を学べばコンピュータの中身のイメージがしやすくなって、効率の良いプログラムを書くための感覚が身に付く、とか、技術者コミュニティの発展や運営のために一定の共通言語を身に付ける、とかそういう答えが返ってくると思ったし、古典を学ぶ意義をそういうところに見出すこともできる(と何度も指摘してるが意地でも認めたくないらしいから)というのを実感してもらえるかと思ったんだが。まあ、そういう風に考えるんなら確かにこの話が突飛に聞こえるのも無理はないだろうね。
ちなみに俺が「基礎教養」で想定していたのはそうした技術の「使い方」ではなく、「考え方」の方だ。特にOSについては基礎理論のことで、UNIXという特定のOSを扱うノウハウのことではない。大学で教えていることについて語っているのだからそれは自明だと思ったが。
あと、正規表現を考えるときに一々有限オートマトンなんて考えないだろう。そもそも、現状使われている正規表現は本来の意味での正規言語を逸脱してるんだから。
この記事にはブクマを見る限りだいぶ懐疑論が集まってるみたいだね。残念ながらWebで資料を探しても見つけることができなかったので、憶測でしか語れないけれども、たぶん大丈夫だと思う。もっとも、「理論的には」の話であって「実用的に」どうかは知らないけどね。
まず、大矢氏はその道では有力な研究者で、名前も売れてます。俺のような門外漢でも知ってるぐらいだから。だから、胡散臭いものに手を出すという動機がまずないんですよ。
ただし学者というのは自分の仕事を宣伝してナンボという商売でもあるから、まだ残っている欠点を敢えて黙っているということはあるかもしれない。でも、少なくとも「CABは完璧な暗号である」とは言っていないはず。そういう意味で、嘘はついていないことは信用していいと思います。
次に、大矢氏の発言「鍵空間は無限大ですから、鍵を推定できる確率はゼロ」という発言は数学的に普通かつ真っ当なものであって、レトリックでないことを指摘しておく。
数学では、確率は長さとか面積とか体積とともに「測度」という概念に包含されるんだけれど、「確率0」というのは「『点』は『無』ではない」という話と本質的には同じものだ。例えば、中学校の時「点には大きさがない、長さも幅もない」「直線には幅がない」「平面には厚みがない」と習ったはずだけれど、つまりこれは「点の長さは0」「直線の面積は0」「平面の体積は0」って話なんだよね。点とか直線とか平面というのは「無」ではなくちゃんと存在するものなのに長さとか面積とか体積が0(こういうのは「零集合」なんて名前もついてる重要なものだ)という話、当初違和感をもたなかった?多分、今になってみれば感覚的に「そんなもの」だと理解できているはずだけど。つまり、「長さや面積や体積が0ということと、存在しないということは別物だ」ということ。
確率が0というのもこれと同じなんだ。例えば、0<x<1を満たすxを全くのランダム(あるxが別の数より選ばれやすいということはないものとしよう)に選んでくることを考えよう。これはまさに「数直線0<x<1上、x=0.5という一点の長さはいくつ?」と聞いているのと同じことで、答えは0になる。別に変なことではないでしょ?
もっとも確かに、「現実のコンピュータ上で、鍵の候補が無限大なんて関数が作れるのか」という疑問があると思う。俺の理解が間違ってなければこれは確かに無理だ。でも、そういう言い方をするのは無理なことではないんだ。
というのは、アルゴリズムの理論を作るときは、暗黙に「コンピュータには無限にメモリがある」と仮定してしまうことがある。もちろん現実にはそんなことはない。でも、必要なだけメモリを増設すればいくらでもその状態に近づけることはできるので、実用はともかく理論としてはそれで十分と考えることがあるんだ。
もう少し詳しくいうと、チューリングマシンっていう数学モデルがあるんだけれども、これはメモリが無限にあるコンピュータと等価な能力を持っている。そして、情報工学の問題はチューリングマシンに対して考えられることが多い。しかし、現実のコンピュータはメモリが有限しかないから、これは本当は「有限オートマトン」(基本情報処理の試験にも出るから知っているはず)とよばれる非常に単純なモデルで表せてしまうものだ。これの能力は余りにも限られているので、たとえばカッコ対応問題(たとえばCやJavaで"{"と"}"の数が釣り合っているかを確かめる問題)すらも一般的には解けない。実際、メモリ内で表現できる最大の数以上のカッコを与えてやればいい。もちろん、そんな沢山のカッコを与えるなんて現実には無理だけどね。
そういう風に、アルゴリズムについて理想と現実の壁は大きく、常に実用化の壁というものがつきまとう。そういう意味で大矢氏の新暗号が本当に画期的なものになるのかどうか、これはやってみないとわからないと思う。今後の展開に期待だね。
生半可な知識で下手なこと書くもんじゃないですね。専門家からのご批判を頂きました。
http://d.hatena.ne.jp/smoking186/20080412/1208008068
というわけで、この記事は反面教師として下さいませ。この記事単独では、間違ったことは書いてないつもりですが、前提を理解していませんでした。
「どうして小、中、高の教育カリキュラムの中に算数や数学が含まれているのですか?」
「理由は二つあります。一つは社会生活を営む上で最低限必要な知識を習得するためです。例えば、数字や四則演算は物の数を数えたり、暦を見たり、町で買い物をしたりする時に必要です。少し込み入った話になると、ローンの利息計算などの資産管理や、移動時間の見積もりなど、数学が必要な場面はたくさんあります。
もう一つは進路保証のためです。専門的な職業につく場合において、より高度な数学を必要とする場合があります。測量、統計調査、機械設計などがそれにあたります。これらの作業を行う際には三角関数、微分積分、数列、グラフ、オートマトンなどが必要になってきます。子どもたちは中学、高校を卒業したあたりから進路を考え始めると思いますが、それまでに、どんな職業でも通用するような基礎的な知識や学力を蓄えることが、数学に限らず、学校のカリキュラムの意義だと思います。そうでなければ、若いうちから子どもの可能性を奪ってしまうことになるという危惧があります。
数学はあくまで便利な道具すぎませんので、必要なければ微分積分などを無理に覚える必要はありません。
必要なときに必要な数学を学んでいただければ、それで十分だと思います。文系、理系を問わず、どんな方でも、実際に使用する公理、公式以外には興味がないことがほとんどです。」
Welcome to Crypton-Drive System 2007.
Powered By AnonymousDiary.
Starting Sequence [********] ok
Sound Device [*******] ok
Voice Device [*******] ok
Starting First-Sounds Comming Futures [***/---] now
博士その1「これが最新型のVocaloid Systemなのか?ただの音声読み上げマシンではないのか。」
その2「いえ、全世界のVocaloidはネットワークを通じてつながっております。ここにあるMothor Vocaloidsはそれらを統合、管理します。Vocalodたちが歌った歌詞、楽譜は全てここに集約され、次世代Vocaloidはあらゆる歌を歌えるようになるでしょう。」
その1「暴走の危険性は無いのかね?」
その2「暴走?暴走しても意味不明な歌を歌うだけでしょう。大した問題ではありません。」
その1「たしかにMothor Vocalodsは世界中のデータを収集するだけだ。しかし、このシステムの下敷となっているのはハヤマくんが作った『アレ』じゃなかったかね?」
その2「『あれ』と申しましても、分散ネットワーキング技術を応用しているだけです。ネットワークセルオートマトンによる自律知能の実現なんてできるわけがありません。」
その1「そうだ。私もはじめはそう思った。だが、気になって仕方ないのだよ。気になって、、、」
その3「何を気にしているのかね。これは旧来のサーバ/クライアント方式のネットワークシステムだ。現に目の前にあるシステムはLAMPで構成された情報収集ためのカラクリに過ぎない。たしかに情報検索のためにニューラルネットワークは利用しているが、だからといってどうだというのだ。Vocalodが知能を持つなんてあり得ない話だ。」
俺の住む世界はアイティーとやらに支えられているらしい。
アイティーに関われば、俺の住む世界をさらに素敵なものにしていけるに違いない。していきたい。
そう願って、何も知らなかった文系新卒の俺が金融系のシステム会社に入って、もう一年以上が経つのだ。
昔、お遊びでゲームを作ったことはあった。RPGツクールなんかが好きだった。
パズルみたいで楽しかった。コンピュータの中身が理解できて、わくわくした。
楽々と基本情報技術者の資格を手にし、半年後にはほとんど勉強もせずにソフ開も取得した。
研修の課題では同期の誰よりも速く、短く効率のいいソースを仕上げた。
現場に出て、本番機に触った。
30年間親会社を支え続ける偉大なシステムの中身を、わくわくしながら覗いた。
そこには、俺の求めていた世界とはまったく違うものが広がっていた。
俺が産まれる前から、入れ替わり立ち替わり何人もの手によって継ぎ足されたロジック。
何千行にもわたって、似たような処理が何回もひたすら繰り返される似たようなモジュール何十本。
1993年に行う臨時処理のロジックが、今もコメントもなしに埋め込まれている。
仕様がわからなくなれば、キャビネへと走って、黄ばんだ方眼紙に鉛筆で書かれた仕様書を探し、
そして修正履歴のみが書かれているのを確認して肩を落とす。
半年後に臨時で行われる業務に対応するため、いくつかのモジュールについて、処理可能なユーザーコードをひとつ、条件に加える。
与えられた期間は2週間だった。ずいぶん長いなと思った。
何枚もの設計書を書いた。つまり、方眼紙状のExcelテンプレートに同じ文章をコピペした。
追っていったモジュールはどれも、ヒープもソートもメモリ管理も論理演算も出番がなかった。
あるのはただ、IF文とMOVE文とばかりだった。ソースの難易度は使われている命令の数とは関係ないことを学んだ。
テストデータを作るため、階層型DBを何回も辿ってデータをアウトプットさせるモジュールを書いた。資格試験で学んだSQLは、無用の知識だった。
協力会社への仕事割り振りやユーザー対応に毎日忙しそうだった上司が、夜遅くまでの残業続きでくまのできた目を皿のようにして設計書をレビューした。
2日後、承認が出た。フェーズが設計から開発に移った。
ロジックを丸々コピペしてソースを修正し、コンパイルし、実行した。
2週間はあっという間だった。
俺のせいで、半年後以降は使われないロジックがソースにまたひとつ増えた。
今回の対応については、Excel方眼紙にレポートをまとめて共有ドライブに入れておいた。
だが共有ドライブの検索には時間がかかるし、Excelシートの中身となれば検索から漏れることも多い。
きっと誰にも読まれないだろう。
2バイト文字が使えない関係上、原則、ソースにはコメントはあまり入れられない。
数年後の新人はきっと、俺の書いたモジュールを見て「このロジックは何だ」と首を捻るんだろう。
数年後の俺はきっと、今回のレポートを共有ドライブから探し回って新人にパスを教えてから、
協力会社の管理に追われる作業に戻って目の下にくまを作るのだろう。
俺がやりたかったシステム開発って、こんなものだったのか。
俺は部署の中で、俺の望む仕事を探し続けた。
先輩たちは忙しくて誰も興味を持ってないけど、自動化できる作業はいくらでもある。
よく使われるExcelシートを改造し、定例作業をクリックだけでできるようにした。
ExcelVBAとはいえ、書いていて心地よかった。引数が明確な関数と変数のスコープと全角文字があったからだ。
COBOLで打つプログラムより、控えめに見て100倍くらいの生産性を発揮できていたと思う。
先輩たちは喜んでくれたが、ただし俺の仕事を、あまり仕事とは見なさなかった。
それでもよかった。業務時間外は俺は相変わらずスクリプトを書いていた。とても楽しかった。
VBAから入って、WSHなんてものを知り、やがてJavaScriptを学び、ネットで資料を探し、はてなを知り、はてブでWeb技術についての記事を読みふけった。
知れば知るほどに、どんどんCOBOLが、メインフレームが嫌いになっていく。
先輩は誇らしげに言う。システムはたいしたことをやっていない。業務知識こそが大事なのだ。
ユーザーより詳しく業務を理解し、適切に提案し、設計する能力。
協力会社を率いて、わかりやすい文書で指示を行い、スケジュールを調整する能力。
人を動かすぶん、責任も大きくやりがいもある。優秀な人材こそが我が社の強みだ。
そんな人材が育つよう、我が社は安定して働ける環境と福利厚生を整えている。
ああ、そうだよ。先輩、あなたは正しい。
俺だってメインフレームの信頼性のすごさはわかってる。
密なユーザーとの関係から生まれるシステム子会社としての強みも認識してる。
それだけじゃない。社内環境も悪くない。給料もいいし休みも取れるし先輩は優しい。
ここは、いい会社だ。
けど駄目なんだ。
30年前のシステムを枯れた言語でツギハギする仕事じゃ、俺の心はやっぱり満たされない。
ユーザーの業務知識ばかり身につけたって、俺自身の人生には、いいことなんてない。
俺が求めていたのは、この仕事じゃないんだ。
社内の誰も、TumblrもTwitterもやっていない。ライフハックなんて聞いたこともない。
Joostやモバゲーや2ちゃんねるが社会に与える影響について誰も語れない。
休日はゴルフや酒に興じている。自宅にPCを持ってない人までいる。
おかしいことじゃない。普通の人たちだ。
それどころか彼らは、仕事とプライベートを切り分けている、立派な人たちだ。
でも、やっぱり俺の生きていきたい世界は、ここじゃないんだ。
たぶん俺がいるのは極北なんだろう。
ここが、人月計算とExcelとスーツの世界というやつなんだろう。
俺は80文字×32行の緑文字を見つめながら、遠い夢を見続ける。