はてなキーワード: ITERとは
https://anond.hatelabo.jp/20210924183546
の続き。核融合についてこんなに見てくれる人が出るとは思わなかったのでびっくり。おじさん続き(というか、前回の記事でまるっとスルーした部分についての補足)を書いちゃうよ。もうバレてると思うけど、増田は核融合ベンチャーに頑張ってほしいと思ってる(利害関係はない)タイプの業界人だよ。業界の中にも否定的な人は普通にいるよ。
核融合で発電するには、「十分高い温度と密度の高純度なプラズマ」が必要。それが十分な性能になったら、あとは発電設備を付ければ発電できるようになる(それも簡単ではないけど)。
プラズマの性能は温度・密度・閉じ込めの3つを同時に達成しないといけないので、本当は核融合三重積という指標を使う。そうじゃないと「温度は高いけどスカスカで核融合反応をほとんどしないプラズマ」とかがすごいっぽく見えてしまう。でもここでは長くなるので割愛。というのも、幸いにしてすでに核融合反応を起こした装置は2つあって「実際核融合で何Wを何秒出した」と言えるのでそこで判断してもらって大きな問題はないから。
TFTRは装置名。世界初の大型装置での核融合燃料を使った本格的な核融合反応。(ここまでは取り扱いの面倒な三重水素は使われてなかった。)核融合出力1000 kWをプラズマ的には十分長い0.2秒くらい維持した。
現在までの最高出力記録。このとき、2400kWくらいのエネルギーを投入して1600kW出したので、投入エネルギーの0.6倍は出せた計算。ただし、投入エネルギー=投入電力ではないので注意。電力ベースでは(記録はないけど)おそらく0.1を割るだろうと思われる。
ギネス認定の人工での世界最高温度記録である5.2億度を達成した。また、1億度のプラズマを9秒フラットに維持したりもしている。日本は放射線管理のあれこれで核融合燃料を使えなかったため、核融合出力はない。しかし、この5.2億度のプラズマでの温度や密度から、核融合燃料を使っていれば投入エネルギーを超える核融合出力が得られたと推定されている。(JETの0.6を超えて1.2くらい達成したはずという意味)
この3つを見てわかるとおり、核融合の記録は90年代ばかり、2000年代以降は更新されていない。iphone13の時代にwindows meすらない時代の記録が最高記録扱いなのである。研究者がベンチャーなんてやりたくなるほどのフラストレーションを感じている理由もちょっとはわかってもらえるだろう。
そこらへんの火力や原子力の発電所では、電気出力が数十万 kWから百万 kWくらいなので、発電効率を考えて核融合出力で100万kWくらい出せれば核融合発電所第一号としては十分だとすると、JETの記録を600倍は増やさないといけない。600倍とかヤバくね?と思うかもたけど、iterは50万kWの核融合出力を400秒続けられるように設計されている(それは見通せてる)ので、iterの二倍で良いわけである。本当なら今頃はiterの成果を見ながら「iterの2倍程度の出力をもっと長く継続する」「発電設備をつける」にトピックが移ってたはずなんだけど、遅れてるのが現状。元々90年代の成果と知見を元に次の装置を設計して建設するため、10年程度の空白期間が出来てしまうことはしょうがないのだけど、2010頃には動いていたはずのiterが遅れたために空白期間かここまで伸びてしまっている。iterが複数企業どころか複数国(EU+六カ国)が機器を持ち寄るというみずほ銀行勘定システム以上のゲキヤバ案件でなければ今頃...iterが大失敗して、核融合業界全体が死んでた可能性もあるんだけどね。
iterの基本設計が古くて保守的だから。97年にベース設計が決まって、2007に更新されたのがiter。炉形式も実績はあるが思想の古い保守的なトカマク(上述の3つはこれ)。しかも「失敗は許されない!」と90年代に確実だった(枯れた)技術ばかりが使われている。典型的には超伝導線材(コイル)で、iterは日本のLHDで採用された実績のあるニオブとチタンの合金の超電導線材すら「日本しか供給できないので供給力が不安」という理由で不採用にして、性能が低いニオブとスズの合金の線材を採用しているくらいに保守的なのである。
そういうiterなので、研究者が「リスクを犯してでも最先端の技術や炉形式を使えば、もっと安く、もっと良いものができる!」と考えるのは当然の帰結。そんなわけなので、2000年代にようやく工業レベルの供給ができるようになってきた高温超伝導導体はベンチャーの提案ではスタンダードである。
ここからはより私見が強くなるけど、「2030年代に既存の原発や火発なみに発電する核融合発電所ができるか?」なら答えはNo。そもそも、建設に10年程度かかるものなので、2030年代までに動くのは次の世代の炉だけ。でも、ガチ発電所の前に一世代「お試し発電はするけど、ガチ発電所ほどじゃない」やつが要る。二世代作るのはどう頑張っても間に合わないし、次のやつのデータを見ながら規制法律の整備とかもするからそういう意味でも間に合わない。多分、用地設定とかも含めると、すでに提案済みの新型原発(核分裂炉)でも20年たらずで発電開始は無理じゃないかな?
でも、「2030年代にちょっとでも良いから核融合で消費電力を超える発電をする」なら10 %くらいいける確率はあると思う。首相が青森の六ケ所(iterの候補に立候補してた)あたりを特区指定して、原子力規制庁が規制法を爆速で整備して、現存の設計案(ベンチャーの案でも、量研機構が準備してる次世代核融合炉設計案でも良い)の最小限版を速攻で建設開始するシナリオ。当然その時はみずほ勘定システム方式ではなく、日立なり東芝なりの一社に全体を統括してもらう。そこまでお膳立てされれば遅れない。多分遅れないと思う。遅れないんじゃないかな。ま ちょっと覚悟はしておけ。
前記事書いてたときに存在を忘れてた。ロッキード・マーチンのチームはアカデミアとつながっていないので、他の核融合ベンチャーが論文などを出してる一方で情報が一般向けのニュースくらいしかない。でもまぁ、振動磁場で粒子を閉じ込めるというアイデアもちょっと無理がある(そんな早い振動磁場を高強度で作れない)と思うし、車に乗るとかどう考えても無理があることも書いてたのでなぁ(加熱装置も発電装置も電源も車に載るほど軽くない)。核融合ベンチャーは大なり小なり希望的なことを言うものだけど、それと比較しても無理っぽいんじゃないですかね。すでに内部で解散してても驚かないです。
日本で核融合やってる人たちって技術にフォーカスしすぎてて、他の側面からの核融合の意義を説明しなさすぎなんだよね。
JT-60SAのパンフレット見ても「地上に太陽をつくる」としか書いてなくて、興味ない人には、だからなに?ってなる。
ITERの誘致を争ってたのはフランスと日本だけど、共通するのは資源の無い国であること。核融合の実現でエネルギーを他国に依存しなくて良くなることは安全保障上きわめて重要。アイスランドみたいに再生可能エネルギーで電力をカバーできるようになれば良いが、工業国が不安定な自然エネルギーに依存するのは難しいんじゃないかな。高速増殖炉が事実上実現不可能になった以上、核融合の可能性に賭けるのは安全保障の面から見ても間違ってないと思うが。
太平洋戦争の例を出すまでもなく、過去の戦争はエネルギーの取り合いが遠因であった例は少なくないわけで、核融合がエネルギーを巡る争いを一掃できる技術だと考えれば、日本に限らず、人類にとって夢のある技術だと思うし、俺は応援してる。
自民党総裁候補の高市早苗さんが2030年代に実現する(最初は2020年代)と言って話題になった核融合。高市さんのキャラもあってか「そんなもんできるわけねーだろ」的に扱われることもあるが、実は世界の核融合ベンチャー企業では「2030年代に核融合実現」を掲げて100億以上投資を受けている企業が複数あるので、業界としてはさして驚きはないのである。というわけなので、いくつかの核融合ベンチャーと、官製の核融合実験炉であるiterについて簡単にまとめてみる。
冷戦終結の一つのシンボルとして米露が共同で建設を決めていたiterに、単独で実験炉を作るのを予算的に躊躇していた各国が相乗りしたのが現iterの体制である。
建設地決定の遅れや、上記の各国が機器を持ち寄って組み立てるという、みずほ銀行の勘定システムばりにカオスな体制のために建設は当初予定から20年近く遅れ、2025年初稼働(テストみたいなもん)、本格稼働は2035年という状況になっている。実はこの遅れが核融合ベンチャーが乱立する現在を作ったと言っても過言ではない部分があって、というのも、核融合ベンチャーにはiterに予算が取られて食い詰めた研究者が立ち上げた組織が多いのである。
炉形式は保守的なドーナツ型のトカマク。国際協調なのであまり斬新なアイデアは盛り込まれず、磁石も昔ながらの低温超伝導導体を使う。
投入エネルギーの10倍程度の核融合エネルギーを出すことを目指すが、投入"電力"ではないため、正味はマイナス。発電設備も持たない。ここで得た知見を元に発電を行う"原型炉"を設計する、というのが各国政府の公式な計画(ただし予算は決まってない)である。
iterなどの保守的トカマクが、よくあるドーナツ的な形のプラズマを作るのに対して、球状トカマクは球の真ん中に細い貫通穴を通したような形状をしているのが特徴。球状トカマクは磁場を使ってプラズマを閉じ込める(押し込める)のに有利ではあることがわかっているものの、まだ高温・高密度での実績は弱い。
トカマクエナジーは高温超伝導導体で球状トカマクの磁石を作ることを目指している。球状トカマクは保守的トカマクに次いで実績があるので(日本には九州大学にQUESTという中型装置がある)核融合ベンチャーとしては「目新しさ」は弱いものの、逆に堅さがあるともいえるだろう。米国プリンストン大学(NSTXという装置が燃えて止まっている)とも連携しているらしく、そういう意味でもチームが強い。
すでに100億以上の資金を調達しており、堅実に装置を作って稼働させている。すでに1500万度程度のプラズマを実現している(年内にはこの装置で1億度を目指す)ため、単純な段階としては核融合ベンチャーのトップランナーと言って良い。(世界最高温度は1000億単位かかった日本JT-60Uの5.2億度)
2030年までに電力を電力網に送り出すことを目標としている。
MITのチームがベースになって設立した核融合ベンチャー。もともとMITはAlcator C-modというトカマクを持っていたが、CFSはこれをベースにしたARCという核融合炉を提案している。現在はその前段階装置であるSPARCを建設中である。
Alcator C-modは小ぶりながら、世界最強の高磁場(最大8T)を作れるトカマクとして、他では真似できない成果を出していてプラズマ業界では存在感があったものの、2016年に完全にシャットダウンした。それと前後して元々力のあったMITの高温超伝導研究者とAlcator c-modのプラズマ研究者がタッグを組んで提案したのが、ARCである。
2030年代にはSPARC(商用炉でないものの投入電力より大きな出力を出すことを目指している)を稼働させることを目指しているので、ほぼtokamak energyと同じ目標を少し遅めの日程で掲げていると言ってよいだろう。
ARCという名前は、どう見てもアイアンマンのアークリアクターに引っ掛けているのだけど、残念ながらロバートダウニーJrは再エネ関連に投資しているようでアイアンマンとのシナジーはないようだ。
MTF(磁化標的核融合方式)と呼ばれる方式で核融合炉を目指すカナダのベンチャー。この企業はCEOの人のカリスマ的なやつで早期にお金を集めたという印象がある。CFSやtokamak energyがトカマクによる磁場閉じ込めでの長い歴史と実績(90年代に米国はMITの装置ではないが1000 kWを超える核融合出力を実現している)とチームの長い研究歴を背景に、ある種の堅実さをアピールしている一方で、MTFはテーブルトップでの成果も出ていない状態からスタートアップを初めている。液体金属をぐるぐる渦巻かせて中心に空間を作り、そこに吹き込んだプラズマを液体金属で爆縮して断熱圧縮で高温にするというシステムである。野心的であるということはゲームチェンジャーになりえるということであるが、一方で論文などの試算はかなり大雑把なものなので(プラズマや液体金属がうねったりせずにすごくきれいに断熱圧縮される計算)、「そんなきれいに押しつぶされてくれるもんかねぇ?」という印象を持っている人は多いだろうと思われる。
メジャーな核融合ベンチャーの中では多分最古参企業で、おそらく最大の資金投資を受けている企業。FRCという、トカマクなどとは異なる磁場閉じ込め形式を目指す。FRCはプラズマを閉じ込める磁場を、コイルではなくプラズマの動きで作る。5000万度を達成済で、2030年までに発電実証を目標としている点はCFSやtokamak energyと同じ。FRCは高温は作れてもプラズマを安定して維持する能力は低いので、5000万度を作ったからかといって他より先に進んでいるかというとそんなことはないが、装置を作りまくって成果を出しているのは確かである。元々は陽子とボロンの核融合反応を使った発電を目指しており、その反応で出る3つのアルファ粒子に由来して"Tri Alpha Energy"という名前だったのだが、今は他の形式と同じ重水素と三重水素を使った発電を直近の目標とした(陽子ーボロンも捨ててないらしい)ためTAEと名前が変わったらしい。
細かいところはよく知らないが、核融合一辺倒ではなく、応用技術の特許化などで収益をだしているらしく、そこはすごい。
装置名が「ノーマン(現行)」「コペルニクス」とかっこよいのも特徴。
京都大学小西教授が率いる日本初の核融合ベンチャー。小西教授は核融合炉ブランケット(後述)を専門にしている人で、一般向けエネルギー関連書籍を出してたりしている。
ただし、この会社は核融合炉全体を設計するのではなく、ブランケット(核融合で出た中性子を受け止めて熱に変換するところ)の設計を売る会社である。海外などのプラズマ屋さん主導の核融合ベンチャーは、ブランケット設計はあまり注力していないところが多いので、そういうベンチャーに「あんたの炉はこんなブランケットがおすすめですよ」と設計を売るのが仕事。まぁベンチャーの目的なんて投資額と投資家の意思でどうにでもなるといえばそうなので、お金が予想外に集まればプラズマ屋さんも集めて核融合炉全体の設計・製作だってやるのかもしれないが、さしあたり核融合炉自体を作る予定はなさそうである。ほかもそうだが、日本のベンチャーはこの2年でようやく2つ立ち上がっただけなので、今は正直海外と比べると桁違いに規模が小さいし弱い。ここも表に出ている研究者は一人だけである。
Webサイトの小西先生がちょっと疲れているように見えるのが気になる。
2019年創業。"日本初のフルスタック核融合ベンチャー"をうたう企業。光産業創成大(浜松ホトニクスという企業が作った大学院大学)の研究者が設立したらしいが、新しいため詳細は不明。"フルスタック"という言葉はよくわからないが、京都フュージョニアリングがブランケットのみの開発を売っていることと対比して、核融合炉全体を見て実現を目指すという意味だろうと思われる。レーザー核融合は米国NIFの2010年代の大コケにより世界的に元気がないので、生き残りをかけているのだろう。日本のレーザー核融合といえば大阪大学のレーザー研があるが、こことどの程度の連携をするかなども詳細不明である。
ちなみに、"EX-Fusion"で検索すると、ドラゴンボール関連ゲームでの同名の設定のほうが上位に表示される。
Webサイトのみ公開されている未設立の企業。まだ設立すらしていないので何もかも謎だが、噂では日本の核融合科学研究所のチームが作るようだ。核融合科学研究所は1億度を超えるプラズマの実績のあるヘリカル型(トカマクとは違うよじれたコイルが特徴)の装置を保有しているのだが、近々シャットダウンを予定している。その後は新規の大型装置の予算が確保できないために小型設備での基礎研究に舵を切るとされているため、内部の核融合発電所を本気で作りたい一派が起業するらしい。日本で"ヘリカル型"といえばここか京都大学なので、名前からしてどっちかであるのは確かだろう。
この論と経産省の発電コストのPDFを見ていたけれど,太陽光発電は原子力とコスト的にそこまで大きな差はない上に夏の昼が一番電力需要が高いという絡みもあってボコボコ出来るだろうけど,
風力発電はコスト的に原子力の1.5倍以上だしもともと需要が低めの冬と夜が良いとなると,市場の余剰電力の飽和が常態化するとかなり設備負担が重くなってきそうだし,供給を絞ってくるように思える.(というか電力市場で売るという想定を立てた場合風力発電はコスト的に成り立つのか?)
ただ,付けたり消したりが二番目に難しいのが原発である以上(一番難しいのは自然エネルギー発電ですよね,逆ザヤでも売らないといけないわけで)調整目的で動かすのもなかなか難しそう.
やはり風力なくして夜間の電力供給に十分な原発+昼の電力に太陽光+揚水式などの水力で良いのでは?という気がしてくる.まあ原子力発電のリスク評価の面で元増田とは分かり合えなさそうだけど.
科学万能主義的な人間からは,早く原理的に事故が起こらない核融合発電実現しないかなあ,ITER頑張ってくれ~と無責任に言っておきます.
ニュースで、政策論争に核融合炉の話が出てたので、驚き、チェックした
https://news.yahoo.co.jp/articles/5637584c2019bbc137ad557e14970c68132dbb39?page=4
ニュースの印象よりは、核融合発電について勉強してらっしゃる、という印象だった
国際核融合実験炉ITER計画を知ってるのなら、核融合炉の開発に世界各国がどれだけの時間と費用を費やしているか、ご存知のはずだ
だが氏は、量子コンピュータの開発史を持ち出し、同じ速さで炉の開発が急加速される、研究者の予想よりも早く開発される、と論じている
これを政策論として語るのは、とても危険であり、この理由一点だけで、氏を国のトップに置くことに私は恐怖する
まず、技術論について
量子コンピュータはまだ物理実験レベルの技術であり、研究室にいる天才の閃きでブレイクスルーする可能性は充分ある(一部「実用化」されたが、まだまだ実験の域を出ていない)
核融合炉は物理+工学の巨大技術であり、ITERはそれらの複雑なピースを組み合わせて作る科学技術のサグラダファミリアである
この分野で仮に天才が数人現れたとしても、数年以内に核融合の発電所(実用炉)が出来ることはほとんど不可能
ITERは実証炉であり、ここで培われた技術で次の原型炉が造られ、それを元に造られる実用炉でやっと発電が行われる
核融合炉の部品を作る京大ベンチャーのCEOは実現を50年以降と見ているhttps://www.nikkei.com/article/DGXZQOFK054HD0V00C21A3000000/
実際、高校生が自宅で炉を作ったとか、トレーラーの貨物程度の大きさで炉を作る話が数年前に流れてきたが、その後勇ましい話は出てきていない
https://diamond.jp/articles/-/172972
GAFAも核融合炉がエネルギー問題を根本から解決することは知っているので、資金も流入している
たいへん希望的な観測だが、奇跡的ブレイクスルーがいくつも起きて、30年代にでも発電炉が製作されれば嬉しいと心の底から思う
大問題なのは、個人的な技術楽観視は良いとして、それを政策に組み込むことだ
ナンセンスの極みだ
「もうすぐ日本も原爆を持つので、戦争は勝ちます頑張りましょう」
もしくは去年の今頃、国産ワクチンがもうすぐ出来るので、GoToキャンペーンを継続しましょう、と言うようなものか
トップが技術進展に関心を持つことは良いが、政策に組み込むなら、
①不確実性を織り込むの
②自己の見通しではなく、複数の専門家による客観的データに拠る見通しを盛り込む
この2つは絶対に守るべきだ
これは印象だが、氏は、ネットの情報は直接たくさん接していられるようだが、提言を行う専門家が周りに居ないのではないか?
他の分野はともかく、科学技術について、ネット情報を無批判に鵜呑みにしたため、このような核融合技術や量子コンピュータに関する発言になってしまったと文面から感じる
自分とは違う意見を進言する専門家を周りに配し、耳の痛い意見を聞けるのか?
戦争・テロ・大自然災害の発生時には特に、悲観的視点から状況を見るべきで、ネットに踊らされ都合よい楽観論しか見れないトップは、もはや愚昧ではない。悪である。
氏の提言の他の部分は読んでいない。女性総理は大歓迎 いままでの首相を顧みるにつけ、傀儡でも程々にやってくれるんならまあいいじゃん、とも思う
ただこの一点
「専門家に拠らない不確実なネット情報を希望的視点により政策に組み込む」
experiment1 = function(max) {
iter = 0
freq = rep(0, 6)
count = 0
dice1 = rdice(1)
dice2 = rdice(1)
if (dice1 == 6 || dice2 == 6) {
freq[dice1] = freq[dice1] + 1
freq[dice2] = freq[dice2] + 1
if (dice1 == 6 && dice2 == 6) count++
}
}
freq[6] = count
freq / max
}
とでも書けばいいのに。
これが間違い。||は論理和なので(dice1 == 6 || dice2 == 6)のどちらかが真であれば真になる。
あと実行結果はhttp://ideone.com/gIGYPsのstdoutのところを見ろ。
[1] 0.1798 0.1768 0.1912 0.1786 0.1884 0.0852
[1] 0.1712 0.1588 0.1750 0.1546 0.1656 0.1748
6個並んだ数値列が二つあるだろ。これがexperiment1とexperment2のそれぞれの実行結果。
いや、そこは理解してるんだけど。。。
experiment1 = function(max) {
iter = 0
freq = rep(0, 6)
dice1 = rdice(1)
dice2 = rdice(1)
if (dice1 == 6 || dice2 == 6) {
freq[dice1] = freq[dice1] + 1
freq[dice2] = freq[dice2] + 1
freq[6] = freq[6] - 1
}
}
freq / max
}
となってますが、
if (dice1 == 6 || dice2 == 6) {
がありますので、この試行は両方が6だった場合に限りカウントされてく(iterが増える)訳で、
freq[6] = freq[6] - 1
実際の結果がどの様な値になったか示して貰えないでしょうか?
このコードで
freq[6]/max=1
freq[n]/max=1 (for n=1,2,3,4,5)
以外になり得るとは思えないのですが。
自分のコード常識がおかしくて、Rと言う言語が自分の常識外の行動をしている可能性もありますので、結果を見せてもらえれば納得出来るかもしれません。
「レーザー核融合反応の実験に成功、クリーンエネルギー実現か=米国」という表題の記事がひどい。という話。
http://news.searchina.ne.jp/disp.cgi?y=2012&d=0720&f=it_0720_001.shtml
大元の記事だと思われるアメリカのローレンスリバモア国立研究所のプレスリリースが下記。題は「National Ignition Facility makes history with record 500 terawatt shot」
https://www.llnl.gov/news/newsreleases/2012/Jul/NR-12-07-01.html
この元記事の題名を見るだけでも大まかにわかるとおり、LLNLの発表した内容は核融合反応に関するものではなく、レーザーに関わるもの。おおざっぱに言うと「安全保障(要は水爆関連)や基礎研究、核融合発電などの研究に用いる大強度レーザー装置の増強、整備によってついに500TWのピークパワーを持ったレーザー発振に成功した」という内容。ちなみに「地下核実験を不要にする唯一の施設」なんて書かれてたりして、実は核融合エネルギーについては大して書かれていない。
そんなわけでサーチナの記事とその元になったチャイナネットの記事はなぜかこれを「核融合に成功して500TWを出力」という記事に書き換えていているという意味で間違っている。が、間違いはそれだけではない。レーザー核融合は「レーザーを燃料球に当てて爆縮し、核融合反応を起こす」ものであるにもかかわらず「「衝撃点火」方式による人類史上もっとも威力のあるレーザー光線の放射」と表現していて、あたかも核融合反応によってレーザーが放出されたかのように書かれているので因果が真逆になっている。ちなみに「衝撃点火」という言葉は元のプレスリリースには含まれておらず、チャイナネットの記者が勝手に付け加えたもの。衝撃点火は阪大のレーザー研が概念として提案している核融合反応の点火手法の一つで、未だ実験は行われていないしLLNLは中心点火なのでこれまたおかしい。
あとついでにNIFの話
LLNLのNIFは核融合研究のための世界最大のレーザー発振施設な訳だけど、実際は水爆のシミュレーション施設としての機能が強い(というか予算は安全保障メイン)。NIFの実験は間接照射の中心点火といって、「金の円筒内部にレーザーを照射、発生したX線で燃料球を加熱、爆縮して核融合を起こすシステム」だが、これは水爆の「原爆の起爆によって発生したX線などによって燃料球を爆縮、起爆する」に近いプロセスで、こういう実験によって水爆関連の研究を行っていることがNIFを「地下核実験を不要とする施設」だと評価する理由であり、NIFが高速点火(阪大などがより核融合発電向きであるとして提唱する点火手法)を採用しない要因になっていると考えられている。(高速点火には主加熱源よりも短パルスな加熱が必要だが、核弾頭にそんなものは組み込めない)
一方で日本の阪大や光産業創成大学なんかがやっている高速点火は「発電炉」に特化した研究が行われている。たとえば「大出力・高繰り返しの半導体レーザードライバーの開発」「発電炉に必要な1秒に10回程度の核融合反応」「1秒に10個使われる燃料球をリアルタイムに生産するシステムの開発」などである。
阪大も光産業創成大もレーザー出力はNIFに数段、もしくは数桁劣るものの、「核融合発電」研究の最先端は日本であると言って過言ではない。
ちなみに、もう一つの核融合発電コンセプトであるところの磁場閉じ込め核融合は現在フランスに国際協力下でITERと呼ばれる実験炉(発電可能レベルのプラズマの数分の保持やより長時間の保持、商用発電炉で用いるコンポーネントの実証が目的)を建設中であり、未だ実験炉の設計すら始まっていないレーザー核融合に比べると数歩は先を行っているのが現状である。
下のみたいな反対の人の記事とか、それへの反応を見ていて思うこと。
http://d.hatena.ne.jp/tikani_nemuru_M/20100705/1278299235]
http://d.hatena.ne.jp/Dr-Seton/20100309/1268138091]
日本の現在のエネルギー政策はもうすでに新エネルギー源の研究開発にシフトしてる。政策決定をする人たちは原発を永劫に使うつもりなんて毛頭ない。
エネルギー政策関連の予算を見れば。高速増殖炉にはすでに1兆円以上を突っ込んでるし、核融合関連でも(科研費とかも含めれば)それくらい突っ込んでるだろう。核融合炉関連なんかはこれからもっともっと突っ込むだろう。いわゆる自然エネルギー関連にも結構突っ込んでる。
なんでそんなに突っ込むのか?石油の値段で国家レベルの不況が来たり、永劫残るような廃棄物に悩まされるのには皆うんざりだから。
世界的な流れは「シートン俗物記」の人が訴えるような「今あるものを大衆に手放させる」ようなリアリティに欠けるやり方ではなくて、原子力、化石燃料、水力、太陽光などを使って枯渇を先延ばしして、伸ばしている間に新エネルギーの開発をする。という現実的な方針なわけ。短期的に原発回帰する国家だって並列して新エネルギーや省エネ研究を推進している。
それはITER(熱核融合の実験炉)に日本、アメリカ、ロシア、中国、インド、韓国、EU、とそうそうたる各国が名を連ねている事でもわかるはず。(参加国総人口では歴史上最大のプロジェクト)
一部の推進派が原子炉を永続的にを使えるかのように言っているのは知っているけど、みんながそう思ってるわけではない。なのにどうも推進派はみんなそう思っていると認識している人が居るように思えてならない。
それは違うよ。
大学の友人の研究室の研究費が友愛されて試薬が買えないと先日聞いたが、今度はもっと大規模な事業仕分けがされたみたい。
必殺仕分け人「(コンピューター性能で)世界一を目指す理由は何か。2位ではだめなのか」
世界一を目指さないと、競争力付かないと思うんだが。米軍特殊部隊の人も「2番は負け組みの1番だ!」って、TVで言っていたよ!
http://www.jiji.com/jc/c?g=pol&rel=j7&k=2009111300376&j1
スパコン予算削減で騒いでるけど、もっと酷い事になっとる。まずSpring-8も予算半減。大学研究支援、博士・研究者支援、COEプログラムは言わずもかな。東京科学未来館、iPS細胞、衛星、宇宙ステーション補給機、深海探査、ITER熱核融合炉、高速増殖炉…
http://www.iza.ne.jp/news/newsarticle/politics/politicsit/322470/
■質疑応答
・スーパーコンピューター→「日本で作れなくなっても、輸入すればいい」来年度予算は削減か凍結
・Spring8→「民営化できないの?」
・若手研究者への支援を削減する理由
「支援人数を増やしてきた結果、本来民間で活躍できた博士研究員 (ポストドクター)が、そうした機会を逸することになっていないか」
\(^o^)/
http://anond.hatelabo.jp/20081026002746
ステートマシン大好きっ子としては書かずにいられない
もう少しがんばればforも無くせるな
fsmの中身ってDRYなの?的な話もあるだろうが,こんなもの他のプログラムで自動生成すればいいんだよ!(開き直り)
#include <stdio.h> static int process(unsigned char *str, int c) { if (str != NULL) puts(str); else printf("%d\n", c); return ++c % (3 * 5); } static int iter(int c) { return process(NULL, c); } static int fizz(int c) { return process("Fizz", c); } static int buzz(int c) { return process("Buzz", c); } static int fizzbuzz(int c) { return process("FizzBuzz", c); } static int (*fsm[])(int) = { fizzbuzz, iter, iter, fizz, iter, buzz, fizz, iter, iter, fizz, buzz, iter, fizz, iter, iter }; int main(void) { int i, state; for (i = state = 1; i <= 100; i++) { state = (*fsm[state])(i); } return 0; }
Objective Camlを使ってみたよ!
問3はわからなかった!
let rec map f ls = match ls with hd::tl -> f hd (map f tl) | [] -> 0 in let plus x y= x + y in let rec iter f n ls= match ls with hd::tl -> (iter f (f n hd) tl) | _ -> n in let biggest ls= match ls with hd::tl -> iter (fun x y -> if x > y then x else y) hd tl | _ -> assert false in print_int(map plus [1; 4; 5]); print_int(biggest [1; 4; 32; 523; 453; 23;])
発祥: http://ex23.2ch.net/test/read.cgi/morningcoffee/1188654905/
Scheme という Lisp 語族の言語を用いて ℃-ute の相関関係をプログラムし、様々な角度から関係性を分析する手法を紹介していきます(ソースコードは最後に張ります)。
まずは、メンバー間の関係を「リスト」というデータ型で表現します。例えば「栞菜->愛理」という関係は
(kanna . airi)
という形で表すことができます。これに、「大好き」という情報を付加し、ついでにその関係の性質を数値化したものを加えると
((kanna . airi) (desc "大好き") (score . 1))
のようになり、関係図における一つの矢印の情報をデータ化できたことになります(暫定的に、好意は 1、良好・中立は 0、険悪は -1 の3段階で表すことにします)。
メンバー間の全ての関係性をこのデータ単位で定義し、データベース化しておくことで、色んな条件に基づいた検索やスコア計算などが可能となります。
ここで相関関係図における矢印を「リンク」と呼ぶことにして、あるメンバーから他のメンバーへどのようにリンクし、またリンクされているかを調べることができます。
(sort-nodes (number-list (from-links)))
結果:
((kanna . 6) (saki . 5) (maimi . 4) (erika . 3) (mai . 3) (chisato . 3) (airi . 2))
栞菜ちゃんがメンバー全員にリンクを張っていることが分かり、℃-ute ラブっぷりが伺えます。なっきーにも同様の事が言えます。例の「女の子が好き」発言を数値的に裏付ける結果と言えるかもしれません。
ただ、データ不足でリンク件数がまだ少ないのと、リンクの性質(好意/反感など)までは分からない点を考慮する必要があるでしょう。
同様に、リンクの終点の件数を調べてみます。
(sort-nodes (number-list (to-links)))
((chisato . 5) (erika . 5) (kanna . 4) (maimi . 4) (airi . 4) (mai . 3) (saki . 1))
えりかちゃんと千聖ちゃんが高ポイントです。メンバーからの人気や注目度の高さを示すデータですが、千聖ちゃんの場合敵対的なリンクが2件含まれている点に注意してください。
なっきーの被リンク数が極端に少ないですが、単純にデータ不足のためだと思われます。はぶら(ryとか言わないようにお願いします。
リンクに付随するスコアを計算することで、愛情の度合いを測ることができるのではないか、という考えに基づく研究です。
まず、全ての関係性を対象として、スコアがマイナスの関係を抽出してみます。
(filter-nodes (lambda (n) (< (score-relation n) 0)))
結果:
(((kanna . chisato) (desc "愛理に手出すんじゃねぇよ") (score . -1)) ((saki . chisato) (desc "愛理に手出すんじゃねぇよ") (score . -1)))
件数だけを得ると
(length (filter-nodes (lambda (n) (< (score-relation n) 0))))
2
僅か2件です。
良好・中立的な関係は
(length (filter-nodes (lambda (n) (= (score-relation n) 0))))
8
愛に満ちた関係は
(length (filter-nodes (lambda (n) (> (score-relation n) 0))))
16
非常に多いです。舞美ちゃんの「℃-ute同士でラブラブなんですよ」発言(例のラジオ)を数値的に裏付ける結果と言えるんじゃないでしょうか。
次に、メンバーごとのスコアを算出してみます。Lisp 的には以下のようにフィルタリングと畳み込み (fold) で計算することができます。例えば
(foldr (lambda (n acc) (+ (get-score n) acc)) 0 (filter-nodes (cut to? <> 'kanna)))
3
上式を一般化して一挙にメンバー全員に適用してみると
(sort-nodes (map (lambda (x) (cons x (score-loved x))) (all-members)))
結果:
((airi . 4) (kanna . 3) (mai . 2) (erika . 2) (maimi . 2) (saki . 1) (chisato . 0))
愛理ちゃんが好意を寄せられやすい傾向が伺えます。
今度は逆方向のスコアを計算してみると
(sort-nodes (map (lambda (x) (cons x (score-loving x))) (all-members)))
((kanna . 3) (maimi . 3) (chisato . 2) (airi . 2) (saki . 2) (mai . 1) (erika . 1))
まいまいとえりかちゃんが特に堅い・一途だという傾向を読み取ることができます。
今度は組み合わせ(カップリング)の評価です。
2点間相互のリンク・スコアを加算したものを「相性」と考えられるものとします。最大値 (互いに好意を寄せている場合の数値) は現在のスコアリング方式では 2 です。例えば
(score-between 'kanna 'airi)
の値は
2
となります。1 であれば一方通行と考えます。
関係性が未定義の場合もあるので 0 のものを除外して算出すると
(sort-nodes (filter (lambda (n) (not (= (cdr n) 0))) (map (lambda (n) (cons n (apply score-between n))) (all-combinations))))
(((chisato mai) . 2) ((chisato airi) . 2) ((airi kanna) . 2) ((saki kanna) . 2) ((kanna maimi) . 2) ((erika maimi) . 2) ((saki airi) . 1) ((saki erika) . 1) ((kanna mai) . 1) ((maimi airi) . 1) ((saki chisato) . -1) ((kanna chisato) . -1))
となります。若干ピンとこない部分もあるかも知れませんが、計算上は矛盾無くデータの内容を表しています。
(map (lambda (p) (find-relation (cons (caar p) (cadar p)) identity)) (filter (lambda (n) (= (cdr n) 1)) (map (lambda (n) (cons n (apply score-between n))) (all-combinations))))
(((kanna . mai) (desc "喰ってやるよ") (score . 1)) ((saki . airi) (desc "好き") (score . 1)) ((maimi . airi) (desc "良き妹") (score . 1)) ((saki . erika) (desc "彼氏にしたい") (score . 1)))
のようになります。
以上の調査を経て気になった問題点を列挙してみます。
特に最初の点に関して、「百合的」なるものの質的評価がなかなか難しいと感じました。例えば「大好き」も「良き妹」も同じ 1 と評価してしまっているのが妥当かどうか、といったことです。
また、スレにて与えられた情報を評価・分析する方法としては有効だとしても、逆方向のフィードバックの手段がなかなか見つからないというのが三つ目の問題です(技術力不足とも言います)。(注:画像化の方法が分かりました。追記参照)
最後に、プログラムのソースを示します。実行には PLT Scheme が必要です。文字コードは UTF-8 で保存した上で、(load "c-ute.ss") としてください。文字化けする場合はターミナルが UTF-8 を表示できるよう設定する必要があります。がんばってください。
c-ute.ss:
(require (lib "etc.ss") (lib "list.ss") (lib "26.ss" "srfi") (lib "delete.ss" "srfi" "1")) ;;; Utilities (define true? (compose not not)) (define (ignore _) #f) (define fif (case-lambda ((predicate consequent) (fif predicate consequent ignore)) ((predicate consequent alternative) (lambda (x) (if (predicate x) (consequent x) (alternative x)))))) (define (concat! xs) (apply append! xs)) (define (mapconcat f lst sep) (let lp ((str (f (car lst))) (lst (cdr lst))) (if (null? lst) str (lp (string-append str sep (f (car lst))) (cdr lst))))) (define (slice-string str len) (let lp ((res '()) (str str)) (if (<= (string-length str) len) (reverse! (cons str res)) (lp (cons (substring str 0 len) res) (substring str len))))) (define (break-string str len) (mapconcat identity (slice-string str len) "\\n")) ;; NOTE: input and output ports have to be either file-stream or #f ;; (i.e., cannot be a string port) (define (run exe opt in out) (let-values (((p p-i p-o p-e) (subprocess out in #f exe opt))) (subprocess-wait p) (close-input-port p-e))) ;;; Database ;; http://ja.wikipedia.org/wiki/%E2%84%83-ute (define names '((erika . "えりか") (maimi . "舞美") (saki . "早貴") (airi . "愛理") (chisato . "千聖") (mai . "舞") (kanna . "栞菜"))) (define (symbol->name sym) ((fif true? cdr) (assq sym names))) (define nodes '()) (define edges '()) (define (relate from to desc score) (let ((n (cons from to))) (or (find-relation n (lambda (r) (let ((d (assq 'desc r)) (s (assq 'score r))) (set-cdr! d (cons desc (cdr d))) (set-cdr! s (+ score (cdr s)))))) (begin (set! nodes (cons n nodes)) (set! edges (cons (cons n `((desc ,desc) (score . ,score))) edges)))))) (define (find-relation n k) ((fif true? k) (assoc n edges))) (define (related? x y) (find-relation (cons x y) (lambda (_) #t))) (define (from? n x) (eq? (car n) x)) (define (to? n x) (eq? (cdr n) x)) (define flip-relation (case-lambda ((n) (and (related? (cdr n) (car n)) (cons (cdr n) (car n)))) ((n k) ((fif true? k) (flip-relation n))))) (define (get-score n) (cdr (assq 'score n))) (define (get-description n) (cdr (assq 'desc n))) (define (describe-relation n) (find-relation n get-description)) (define (score-relation n) (or (find-relation n get-score) 0)) (define (print-node . ns) (for-each (cute find-relation <> (lambda (r) (display (format "| ~a => ~a (~a)~%" (caar r) (cdar r) (mapconcat (lambda (s) (string-append "\"" s "\"")) (cdr (assq 'desc r)) ", "))))) ns)) (define (iter-nodes k) (let lp ((nodes nodes)) (unless (null? nodes) (k (car nodes)) (lp (cdr nodes))))) (define (filter-nodes p) (let ((ns '())) (iter-nodes (fif p (cut find-relation <> (lambda (n) (set! ns (cons n ns)))))) ns)) (define (from-links) (map car nodes)) (define (to-links) (map cdr nodes)) (define (all-members) (delete-duplicates! (from-links))) (define (all-pairs) nodes) (define (ordered-pairs) (concat! (map (lambda (x) (map car (sort (filter-nodes (cute to? <> (car x))) (lambda (x y) (> (get-score x) (get-score y)))))) (sort-nodes (map (lambda (x) (cons x (score-loved x))) (all-members)))))) (define (all-combinations) (let lp ((cs '()) (ns nodes)) (if (null? ns) cs (let ((n (car ns))) (lp (if (member (list (cdr n) (car n)) cs) cs (cons (list (car n) (cdr n)) cs)) (cdr ns)))))) ;; number-list :: [a] -> [(a . Int)] (define (number-list ls) (let lp ((ns '()) (ls ls)) (if (null? ls) ns (let ((x (car ls))) (lp ((fif not (lambda (_) (cons (cons x 1) ns)) (lambda (n) (set-cdr! n (add1 (cdr n))) ns)) (assq x ns)) (cdr ls)))))) ;; sort-nodes :: [(a . Int)] -> [(a . Int)] (define (sort-nodes ns) (sort ns (lambda (x y) (> (cdr x) (cdr y))))) (define (diff-nodes ms ns) (let lp ((ds '()) (ns ns)) (if (null? ns) (sort-nodes ds) (lp (let* ((n (car ns)) (m (assq (car n) ms))) (cons (cons (car n) (- (cdr m) (cdr n))) ds)) (cdr ns))))) (define (get-total-score x p) (foldr (lambda (n acc) (+ (get-score n) acc)) 0 (filter-nodes (cut p <> x)))) (define (score-loved x) (get-total-score x to?)) (define (score-loving x) (get-total-score x from?)) (define (score-between x y) (+ (score-relation (cons x y)) (score-relation (cons y x)))) (define (-> x) (display (format "~%Links from [~a]~%" x)) (iter-nodes (fif (cut from? <> x) print-node))) (define (<- x) (display (format "~%Links towards [~a]~%" x)) (iter-nodes (fif (cut to? <> x) print-node))) (define (<-> x) (display (format "~%Reciprocal links for [~a]~%" x)) (iter-nodes (fif (cut to? <> x) (lambda (n) (flip-relation n (lambda (m) (print-node m n))))))) (define (<=> x) (display (format "~%Reciprocal matches for [~a]~%" x)) (iter-nodes (fif (cut to? <> x) (lambda (n) (flip-relation n (lambda (m) (if (ormap (lambda (x) (ormap (lambda (y) (equal? x y)) (describe-relation m))) (describe-relation n)) (print-node m n)))))))) (define (<?> x) (let ((to (assq x (number-list (from-links)))) (from (assq x (number-list (to-links))))) (display (string-append (format "~%Link statistics for [~a]~%" x) (format "| ~a => ~a (love ~a)~%" x (cdr to) (score-loving x)) (format "| ~a => ~a (love ~a)~%" (cdr from) x (score-loved x)))))) (define (info x) (for-each (cut <> x) (list <- <-> <=> -> <?>))) ;;; GraphViz (http://www.graphviz.org/) support (define graphviz "C:/Program Files/ATT/Graphviz/bin/dot.exe") (define (nodes->dot ns) (string-append "digraph cute {\n" ;;"\tordering=out;\n" ;;"\trankdir=LR;\n" "\toverlap=true;\n" "\tnode[fontname=\"msgothic.ttc\"];\n" "\tedge[fontname=\"msgothic.ttc\",fontsize=9];\n" (let lp ((str "") (ns ns)) (if (null? ns) str (let* ((n (car ns)) (s (score-relation n))) (lp (string-append str (format "\t\"~a\" -> \"~a\"" (symbol->name (car n)) (symbol->name (cdr n))) (format "[label=\"~a\",color=\"~a\"," (break-string (car (describe-relation n)) 7) (cond ((> s 0) "red") ((= s 0) "green") (else "blue"))) (format "style=\"bold~a\"];\n" (if (and (not (= s 0)) (< s 1) (> s -1)) ",dashed" ""))) (cdr ns))))) "}")) (define (write-dotfile dot file) (and (file-exists? file) (delete-file file)) (with-output-to-file file (lambda () (display dot))) file) (define (dot->png dot png) (call-with-input-file (write-dotfile dot "c-ute.dot") (lambda (in) (and (file-exists? png) (delete-file png)) (call-with-output-file png (lambda (out) (run graphviz "-Tpng" in out))))) 'done) ;;; Setup database ;; Based on: ;; http://ex23.2ch.net/test/read.cgi/morningcoffee/1188654905/116-142 (begin (relate 'maimi 'erika "大好き" 1) (relate 'maimi 'kanna "良き妹" 1) (relate 'maimi 'airi "良き妹" 1) (relate 'maimi 'mai "姉妹" 0) (relate 'erika 'maimi "一番可愛いよ" 1) (relate 'erika 'kanna "仲間" 0) (relate 'erika 'chisato "おソロパジャマ" 0) (relate 'kanna 'erika "仲間" 0) (relate 'kanna 'maimi "好き" 1) (relate 'kanna 'saki "喰ってやるよ" 1) (relate 'kanna 'mai "喰ってやるよ" 1) (relate 'kanna 'airi "大好き" 1) (relate 'kanna 'chisato "愛理に手出すんじゃねぇよ" -1) (relate 'saki 'maimi "荷物整理" 0) (relate 'saki 'erika "彼氏にしたい" 1) (relate 'saki 'kanna "興味がある" 0.5) (relate 'saki 'chisato "愛理に手出すんじゃねぇよ" -1) (relate 'saki 'airi "好き" 1) (relate 'airi 'kanna "受け入れる" 1) (relate 'airi 'chisato "最近親密" 1) (relate 'mai 'erika "保護者" 0) (relate 'mai 'maimi "姉妹" 0) (relate 'mai 'chisato "恋人" 1) (relate 'chisato 'erika "おソロパジャマ" 0) (relate 'chisato 'mai "恋人" 1) (relate 'chisato 'airi "最近親密" 1)) ;; query relations / draw graphs (if (file-exists? graphviz) (dot->png (nodes->dot (ordered-pairs)) "c-ute.png") (for-each info (all-members)))
Graphviz というソフトによって関係図を可視化できる、ということを教えていただきました(既に上プログラムを実行すると自動的に関係図画像を作成するようにしてあります)。ここでは技術的な観点から幾つか注意点を挙げておきます。
まず、Scheme プログラムから Graphviz を動かす方法について。コマンドラインからの起動のように、プログラムへのオプション文字列で入出力ファイルを指定する方法ではどうも上手く行きませんでした。調査の結果、入出力ファイルのポートを Scheme 側で用意しておく必要があるようです。処理系によって異なりますが、PLT Scheme の場合 subprocess という関数を次のように呼び出します。
(subprocess output-port input-port #f "/path/to/dot.exe" "-Tpng")
ここで output-port は png 等画像ファイルへの出力ポート。input-port は dot ファイル(グラフの定義ファイル)の入力ポートです。エラーポートは必要無いでしょう (#f)。
dot という名前の実行ファイルが、関係図のような有向グラフを描画するプログラムです。最後にオプション文字列として出力形式を指定します(png, jpeg, gif, etc.)。
次に dot ファイルを Scheme で書く方法ですが、以下の基本的な有向グラフの書式
digraph g { A -> B; B -> C; C -> A; }
を理解すれば、後は実直に Scheme のデータを当てはめて format 関数等で変換するだけです。
(string-append "digraph g {" (format "~a -> ~a;" (car node) (cdr node)) "}")
問題は、ノードを配置する順番によって出来上がる画像が変わってくる、ということです。
より見た目に分かりやすくするための工夫としては、相互にリンクするノード同士が dot ファイル上でも近接して出力されるようにすると良いでしょう。関連の強いものが画像の上でも近くに表示されるようになります。
また上述(特に例3)のスコアの概念を応用し、スコアの低いものが後に出力されるようにすることで、重力感覚に一致するような関係図を得ることができるでしょう。