タグ

数学とアルゴリズムに関するnanakosoのブックマーク (38)

  • 周期性のない図形「ペンローズ・タイル」が量子コンピュータのエラーを訂正? カナダの研究者らが発表

    このコーナーでは、2014年から先端テクノロジーの研究を論文単位で記事にしているWebメディア「Seamless」(シームレス)を主宰する山下裕毅氏が執筆。新規性の高い科学論文を山下氏がピックアップし、解説する。 Twitter: @shiropen2 カナダの研究所Perimeter Institute for Theoretical Physicsとエジンバラ大学に所属する研究者らが発表した論文「The Penrose Tiling is a Quantum Error-Correcting Code」は、繰り返さないパターンである「ペンローズ・タイリング」が、量子コンピュータの誤り訂正に応用できることを提案した研究報告である。 量子コンピュータは量子力学の原理を利用することで、従来のコンピュータでは解くことが難しい問題を高速に解くことができる。しかし、量子情報は環境ノイズからの影響に

    周期性のない図形「ペンローズ・タイル」が量子コンピュータのエラーを訂正? カナダの研究者らが発表
  • 楕円同士の接触判定と衝突判定

    ググっても出てこなかったので。 2つの楕円が接している(内接 or 外接)かどうか判定する方法についてです。ついでに衝突判定もできます。 衝突判定だけしたい方 以下で説明する方法でも判定自体はできますが、非常に非効率です。悪いことは言いません。GJK法などを使いましょう。凸同士なので簡単にできます。 どうしても接触を判定したい方 心して読み進めてください。 事の発端 まだそんなにバズってないけど宣伝していいらしいので. AI でも普通のプログラマーでもない優秀なプログラマーたる皆さんは,もちろん楕円が接するか判定する方法を知っていますよね? 私は一昨日実装しました.各位の解法に興味があります.よろしくお願いいたします. — 青い楕円形のぜろ (@0_uda) October 4, 2022 もちろん楕円が接するか判定する方法を知っているので、書くことにしました。 楕円の表現方法 楕円とはい

    楕円同士の接触判定と衝突判定
  • なぜ動的計画法はDynamic「Programming」という名前なのか - フリーランチ食べたい

    Coursera「Data Structures and Algorithms」 ここ1ヶ月半CourseraでCSのコースを受講しているのですが、そこで動的計画法についての面白い話があったのでシェア。 www.coursera.org 「Data Structures and Algorithms」という課程の中の「algorithmic-toolbox」コースWeek5のテーマが「動的計画法」です。 動的計画法(Dynamic Programming)とは まず前提として動的計画法とは何か?という話です。 Wikipediaより 動的計画法 - Wikipedia 計算機科学の分野において、アルゴリズムの分類の1つである。対象となる問題を複数の部分問題に分割し、部分問題の計算結果を記録しながら解いていく手法を総称してこう呼ぶ。 細かくアルゴリズムが定義されているわけではなく、下記2条件

    なぜ動的計画法はDynamic「Programming」という名前なのか - フリーランチ食べたい
  • ポケモンの最強タイプを考える【グラフ理論】 - Qiita

    導入 先日、ポケモンの最新作『Pokémon LEGENDS アルセウス』が発売されました。ポケモン愛好家の中で密かに話題を集めたのが、新たに登場したポケモン「ゾロア(ヒスイのすがた)」と「ゾロアーク(ヒスイの姿)」のタイプです。なんと驚くべきことに、両者のタイプは未だ登場したことのなかった「ノーマル・ゴースト」だったのです。 ポケモンを知る人には説明不要ですが、これはノーマルタイプの唯一の弱点であるかくとう技をゴーストタイプで無効化しながら、ゴーストタイプの弱点であるゴースト技をノーマルタイプで無効化するという、非常にバランスのとれた、まさに夢のような複合タイプです。一部では、この「ノーマル・ゴースト」こそ最強の組み合わせなのではないかと噂されました。 しかし、果たして当にそうなのでしょうか? ポケモンのタイプは全部で18種類あり、一匹のポケモンは二つまでタイプを持つことができます。考

    ポケモンの最強タイプを考える【グラフ理論】 - Qiita
  • ライフゲームの世界9 最終回【複雑系】

    自己複製編※訂正 constractor → constructorライフゲーム特集は今回をもって終了いたします紹介出来た魅力はライフゲームのほんの一部です是非みなさんライフゲームの世界へ冒険してみてはいかがでしょうか応援して下さった方,ありがとうございます.興味のある方は複雑系コミュニティ→co1665510前回→sm19509968 その1→sm19347846 まとめ→mylist/34610498追記正確に言うとgeminiは自己複製パターンではなく,"宇宙船"でした.訂正いたします.当の自己複製パターンは2013年12月に発見されています.

    ライフゲームの世界9 最終回【複雑系】
  • 「ぷよぷよは計算困難」―パズル・ゲームと最適化アルゴリズム― – Ono Laboratory

    はじめに 最近,「一般化ぷよぷよのより強い計算困難性」なる研究を発表しました(東北大学の江藤宏先生,九州大学の木谷裕紀先生との共同研究.国内研究会であるゲームプログラミングワークショップで江藤先生による口頭発表.2021年12月30日現在,pdfはここから取れます). これは有名なビデオゲーム「ぷよぷよ」を一人用のパズルと見立てたとき,かつそれを一般化した場合,どの程度難しいものであるのかを(最適化)アルゴリズム論的に分析したものです.今回「最適化技術の応用・実践」に関する記事を集めよう,ということになりましたので,ちょうどよい題材ということで,この研究をより一般向けに解説してみようと思います.一般向けですので証明自体には踏み込まず,既存の定理と得られた定理の意義をおよそわかっていただくことをこの記事の目標とします.ただし「ぷよぷよ」について関してはおよそルール等がわかっている方を対象とし

  • できるだけ嘘を書かずに計算量やオーダーの説明をしようとした記事 - えびちゃんの日記

    計算量についてのお話です。対象は、プログラミング経験はあるが計算量のことを知らない初心者から、計算量のことを知っているつもりになっている中級者くらいです。 数式を見たくない人にとっては読むのが大変かもですが、深呼吸しつつ落ちついて読んでくれるとうれしいです。 それから、この記事が自分には合わないな〜と思ったときは、(別の記事を Qiita とかで検索するよりも)この記事の一番下の 参考文献 にあるを読むことをおすすめします。Amazon の試し読みで無料で読めます*1。 TL; DR 関数の増加度合いのことをオーダーと呼ぶよ 計算量は、入力サイズ(など)を受け取ってアルゴリズムの計算回数(など)を返す関数だよ その関数のオーダーについての議論がよく行われるよ オーダーを上から抑えるときは \(O\)、下から抑えるときは \(\Omega\) を使うよ オーダーを上下両方から抑えたいときは

    できるだけ嘘を書かずに計算量やオーダーの説明をしようとした記事 - えびちゃんの日記
  • 科学を変えた10のコンピューターコード | Nature ダイジェスト | Nature Portfolio

    Fortranからプレプリントアーカイブまで、プログラミングとプラットフォームの進歩は、生物学、気候科学、物理学を新たな高みへと導いた。 2019年、イベント・ホライズン・テレスコープ(EHT)のチームは、ブラックホールの実際の姿を初めて世界に見せてくれた。彼らが発表したリング状に輝く天体の画像は、従来の写真とは違い、計算によって得られたものだ。具体的には、米国、メキシコ、チリ、スペイン、南極点の電波望遠鏡が捉えたデータを数学的に変換することによって得られたのだ1。研究チームは、その知見を記載する論文とともに、ブラックホールの撮影に用いたプログラミングコードも公開した。科学コミュニティーが自分たちのやり方を確認し、それを足場にできるようにするためである。 このようなパターンは、ますます一般的になりつつある。天文学から動物学まで、現代のあらゆる偉大な科学的発見の背後にはコンピューターがある。

    科学を変えた10のコンピューターコード | Nature ダイジェスト | Nature Portfolio
  • 「量子」と組合せ最適化に関する怪しい言説 ―とある研究者の小言― - むしゃくしゃしてやった,今は反省している日記

    最近,量子コンピュータの話題をニュースや新聞で見かけることが増えてきました. その中で気になってきたのが,組合せ最適化と量子コンピュータ(特に量子アニーリング)に関する怪しい言説.私自身は(古典コンピュータでの)組合せ最適化の研究をやってきて,量子コンピュータを研究しているわけではないのですが,さすがにこれはちょっと・・・と思う言説を何回か見かけてきました. 最近の「量子」に対する過熱ぶりは凄まじいので,こういう怪しい言説が広まるのは困りものです.すでにTwitter上には,“組合せ最適化は今のコンピュータでは解けない”とか“でも量子なら一瞬で解ける”という勘違いをしてしまっている人が多数見られます*1. さすがに危機感を覚えてきたので,この場できちんと指摘しておくことにしました. 今北産業(TL;DR) “古典コンピュータは組合せ最適化を解けない” → 古典コンピュータで組合せ最適化を解

    「量子」と組合せ最適化に関する怪しい言説 ―とある研究者の小言― - むしゃくしゃしてやった,今は反省している日記
  • 高速逆平方根(fast inverse square root)のアルゴリズム解説 - 滴了庵日録

    高速逆平方根とは? C言語のコード 検証 アルゴリズムの要点 [1] 逆平方根の計算を対数・指数の計算に置き換える [2] 浮動小数点型の内部表現を利用した対数・指数の近似計算 [2.1] 対数の近似 [2.2] σの最適値 [2.3] 整数型での解釈 [2.4] 逆平方根の計算とマジックナンバー0x5F3759DF [3] ニュートン法による収束で精度アップ 感想 高速逆平方根とは? 高速逆平方根(fast inverse square root)とは、平方根の逆数 を高速に計算するアルゴリズムです。平方根の逆数は逆平方根とも呼ばれます。逆平方根はベクトルの正規化などに用いられるので、これを高速に計算できるアルゴリズムには大きなご利益があります。 参照: Fast inverse square root - Wikipedia C言語のコード 高速逆平方根の関数を示します。0x5F375

    高速逆平方根(fast inverse square root)のアルゴリズム解説 - 滴了庵日録
  • 制御理論としての動的計画法 - Qiita

    はじめに:冷戦と動的計画法 動的計画法とは何でしょうか? いきなりですが、日語版Wikipediaを引用します。 動的計画法 - Wikipedia 動的計画法(どうてきけいかくほう、英: Dynamic Programming, DP)は、計算機科学の分野において、アルゴリズムの分類の1つである。対象となる問題を複数の部分問題に分割し、部分問題の計算結果を記録しながら解いていく手法を総称してこう呼ぶ。 おそらく、Qiitaを見る人の大半もこのような認識ではないでしょうか。 「あーなんかナップサック問題とか解くんでしょ? 表の数字を端から埋めていくやつ」 というイメージがあるのではないでしょうか(偏見)。 では次に、英語Wikipediaを見てみましょう。冒頭を日語訳します。 Dynamic programming - Wikipedia 動的計画法は、数理最適化手法ならびにコンピュ

    制御理論としての動的計画法 - Qiita
  • 双対性

    2. 2 自己紹介  東大情報科学科→情報理工(2016年3月博士卒)  国立情報学研究所 助教  離散アルゴリズムの研究をしている 世界 1 位 (2010) 世界 2 位 (2011) 世界 3 位 (2009)3回優勝 (2013,2015,2016) 競プロ: wata Twitter: @wata_orz ICFPC

    双対性
  • そろそろニューラルネットやディープラーニングを「人間の脳を模倣してる」というのをやめませんか? - 病みつきエンジニアブログ

    最近(?)ニューラルネット(Neural Network)やらディープラーニング(Deep Learning; 深層学習)やらが流行ってきて、人工知能やらシンギュラリティやら言われるようになって、その中でよく言われるのが「ディープラーニングは人間の脳を模倣してる」とか「特徴量を選ばずに学習できる」とか、そんなことが言われるわけです。 けど、そういったキーワードが一人歩きして、「人工知能は危険だ」論とか、人工知能に対する過剰な期待論がはびこってしまっている気がする。そこで言いたいのが「ディープラーニングは人間の脳を模倣している」と言ってしまうのをやめましょう、という話。 ニューラルネットワークが「人間の脳を模倣」してる話 まず最初に、「ニューラルネットワークが人間の脳を模倣してる」論が、あながち間違ってないよ、ということを話しておきたい。あながち間違ってないんだけど、それでもやめたほうが良い

    そろそろニューラルネットやディープラーニングを「人間の脳を模倣してる」というのをやめませんか? - 病みつきエンジニアブログ
    nanakoso
    nanakoso 2016/05/13
    関数から意識が生成できないと私は確信できない。
  • 計算グラフの微積分:バックプロパゲーションを理解する | POSTD

    はじめに バックプロパゲーションとは、ディープモデルの学習を計算可能にしてくれる重要なアルゴリズムです。最近のニューラルネットワークではバックプロパゲーション (誤差逆伝播法) を使うことで、最急降下法による学習が愚直な実装と比べて1000万倍速くなります。 例えば,バックプロパゲーションでの学習に1週間しかかからないのに対して、愚直な実装では20万年かかる計算になります。 ディープラーニングでの使用以外にも、バックプロパゲーションはさまざまな分野で使えるとても便利な計算ツールです。それぞれで呼ばれる名称は違うのですが、天気予報から、数値的安定性を分析する時にまで多岐にわたり使用できます。実際に、このアルゴリズムは、いろいろな分野で少なくとも20回は再開発されています(参照: Griewank(2010) )。一般的な用途自体の名前は”リバースモード微分”といいます。 基的に、この技術

    計算グラフの微積分:バックプロパゲーションを理解する | POSTD
  • 自然言語処理に新風を巻き起こしたWord2Vecとは何か - 日経BigData

    言語データの分析と応用のために自然言語処理と呼ばれる分野で長年研究が行われて来た。同分野が昨年から大きく沸き立っている。米グーグルの研究者であるトマス・ミコロフ氏らが提案した手法「Word2Vec」が、いくつかの問題について従来のアルゴリズムよりも飛躍的な精度向上を可能にしたのだ。 この手法によって得られるベクトル空間には、今まで定量的に捉えることの難しかった言葉の「意味」を極めて直接的に表現しているかのような性質が認められている。今年9月、当社がスポンサー参加した自然言語処理系の研究発表会「NLP若手の会 第9回シンポジウム」でも、多くの研究がWord2Vecに関連したテーマについて取り上げていた。今後、意味解析、文書分類、機械翻訳など様々な分野でWord2Vecの応用が期待されている。 「意味ベクトル」の驚異的な性質 Word2Vecは、その名前の表す通り、単語をベクトル化して表現する

    自然言語処理に新風を巻き起こしたWord2Vecとは何か - 日経BigData
  • 【数の構成】「ツェラーの公式」を読み解くⅠ | 大人が学び直す数学

    前回、剰余演算の考え方を応用して、グレゴリオ暦の日付を入れると「曜日」を出力する不思議な「ツェラーの公式 (Zeller's congruence)」を紹介しました。どんな仕組みになっているのでしょうか? まず、それぞれの変数の意味は上のとおりです。このとき面白いのは、月を3月の前で切って、3月から始めて2月で終わるという考え方にするところです。1月と2月は前年の13月、14月と数えて、「3月から14月まで」とします。たとえば2011年の1月であれば、2010年13月というデータを入れるのです。 これは、閏年の調整日が12月の末日ではなく、2月の終わりに入っているところから来たものです。前回、閏年の2012年の影響は、当年の2012年ではなく翌年の2013年に現れているところをみました。これをもっと細かくみれば、当年の3月以降からズレていることになりますので、3月からはじめて2月で終わる、

  • 140曜日計算とツェラーの公式 - プチコンで遊ぼう! (はてなブログ版)

    先日、ツェラー(zeller)の公式を使った140曜日計算をツイートしましたが、リスト写しまちがえで何度もツイートしなおしたので、最終版を掲載するのと、ツェラーの公式についての説明を載せておきます。 ■140曜日計算 何度も修正ツイートしたのですが、最後にツイートしたものもM=M+(M<3)のところが(N<3)とかなってて間違ってます。すみません。 最終版は以下のとおりです。 これはPTCファイルから直接コピペしたので間違ってないはずです。 DTREAD(DATE$),Y,M,D:Y=Y-(M<3)M=M+(M<3)*12↓ H=(Y+(0OR Y/4)-(0OR Y/100)+(0OR Y/400)+FLOOR((13*M+8)/5)+D)%7?MID$("SUNMONTUEWEDTHUFRISAT",H*3,3) ■ツェラーの公式 ツェラー(zeller)の公式とは、任意の日付の曜日を

    140曜日計算とツェラーの公式 - プチコンで遊ぼう! (はてなブログ版)
  • ビットごとの秘法と技法 から

    最も左のビットの位置を知る法 TACPにはもっと凄いλ関数の計算法がある. 今回はそれを説明しよう. xのサイズは知らなければならないが, それがどんなに大きくてもbignumのような2adic integer(2個進数)での処理だ. まず準備としてあるアルゴリズムを考える. 具体的に4ビットとしよう. 4ビットだから対象は0≤x<16 である. c≤8と最も左のビットだけが1のh=8が登場する. h|x-cは引かれる方が8≤ <16だから, 0≤x<16について, 差は8-c≤ <16-cの2回繰り返しになる. たとえばc=3とすれば, 5,6,...,12,5,6,...,12になる. つまりそれぞれの最初のc個だけが<8になる. これにxをビットごとorすれば, 右半分はxの最も左のビットが1なので≥8になる. 従って全体では左端のc個だけが<8, それ以外は≥8になって, hでビッ

    ビットごとの秘法と技法 から
  • 完備辞書(簡潔ビットベクトル)の解説 - アスペ日記

    以前、「簡潔データ構造 LOUDS の解説」というシリーズの記事を書いたことがあります。 LOUDS というのは木構造やtrieを簡潔に表すことができるデータ構造なのですが、この中で「簡潔ビットベクトル」というものについてはブラックボックスとして扱っていました。 また、中学生にもわかるウェーブレット行列を書いたときも、その中で出てきた「完備辞書」の実装には触れませんでした。 この「簡潔ビットベクトル」「完備辞書」は、同じものを指しています*1。 今回は、このデータ構造*2について書いてみます。 完備辞書でできること ビット列に対する定数時間の rank と selectです*3。 rank()は、「ビット列の先頭から位置 k までに、1 のビットがいくつあるか」*4。 select()は、「ビット列の先頭から見て、n 個目の 1 のビットの次の位置はどこか」*5。 それぞれ例を挙げます。

    完備辞書(簡潔ビットベクトル)の解説 - アスペ日記
  • 「木構造と自然数の重複あり集合は等価だよね」というはなし - EchizenBlog-Zwei

    「木構造と自然数の重複あり集合は等価だよね」というはなしをする。簡潔データ構造な人向けに言うとLOUDSの話。 とはいえこの記事は特に簡潔データ構造の知識を要求しない。データ構造とか情報量とかに興味がある人全般を対象としている。 ※簡潔勢にとっては既知な話のはずなのであえて読む必要はないです。 まず結論から述べる。以下のような幅優先で番号を振った木構造を考える。 親 → 子 (1) → (2, 3) (2) → (4) (3) → (5)この木構造は以下の重複あり集合によって表現することができる。 { 2, 4, 5, 5, 5 }これだけ書くとなんのこと?と思われるかもしれない。そこでこれから2つのことを説明する。ひとつは「何故、木構造が自然数の重複あり集合で表現できるか」、もうひとつは「重複あり集合で表現することに何の意味があるか」ということ。 何故、木構造が自然数の重複あり集合で表現

    「木構造と自然数の重複あり集合は等価だよね」というはなし - EchizenBlog-Zwei