タグ

algorithmに関するlakehillのブックマーク (92)

  • 朝日新聞デジタル:プロ野球日程を瞬時に計算 数学者がソフトを開発 - スポーツ

    プロ野球の移動距離を短くする計算例  【藤島真人】1カ月以上かかるプロ野球の日程づくりが、あっという間にできるソフトウエアを数学者が開発した。日程を工夫するだけで、球団の移動距離を2割以上減らすこともできるという。シーズン開幕を控え、彼らの計算式と現実とのギャップはいかに。  開発したのは、国立情報学研究所の河原林健一教授と星野リチャード・前外来研究員。2人は効率の良い鉄道網や電気回路の設計などにも応用できる「グラフ理論」と呼ばれる分野の研究者だ。  ソフト開発は、3年前の3月、カナダからリチャードさんが来日し、たまたま千葉ロッテの拠地の近くに住んだことがきっかけ。鉄道網のような「グラフ」を球団の移動に置き換え、最適な日程をはじき出せないかを考えた。 続きを読むこの記事の続きをお読みいただくには、会員登録が必要です。登録申し込みログインする(会員の方) 無料会員登録はこちら朝日新聞デジタ

  • 面白い!「学生プログラマ日本一決定戦」観戦記

    2013年1月19日、東京都港区六木の「ニコファーレ」で、一風変わった催しがあった。舞台に上がった2人の「選手」が試合をするのだが、2人はただ座って、画面上で進むパズルゲームの成り行きを見守るだけ。一定時間が経過すると「WIN」「LOSE」という結果が表示されて、勝敗が決する。 この試合を、会場では約100人が「観戦」した。「ニコニコ生放送」でもインターネット中継され、約4万6000人もの視聴者がいた。会場からは時折「おお」「すごい」といった歓声が聞こえてくる。何も知らない人が通りがかったら、スポーツの試合だと見間違えそうだ。 学生限定の「競技プログラミング」大会 ここでは、リクルートキャリアやチームラボなど人材・IT関連企業4社が主催するプログラミングコンテスト「学生プログラマ日一決定戦 CODE VS 2.0(コードバーサス2.0)」の決勝トーナメントが行われていた(写真1)。 C

    面白い!「学生プログラマ日本一決定戦」観戦記
  • プログラミングコンテストでのデータ構造 2 - iwiwiの日記

    情報オリンピックの春合宿で「プログラミングコンテストでのデータ構造 2」というタイトルで講義をさせてもらいました.スライドは以下になります. プログラミングコンテストでのデータ構造 2 〜平衡二分探索木編〜 View more presentations from Takuya Akiba プログラミングコンテストでのデータ構造 2 〜動的木編〜 View more presentations from Takuya Akiba 平衡二分探索木の話と動的木の話をしました.アルゴリズム的な説明だけでなく,実際にコードにする際に楽に実装するためのポイントにも重きをおいています.実装に関する話は,アルゴリズム系の講義資料等にはあまり書かれることが無いため,珍しい資料になっているかと思います.(そもそもとして動的木の話は珍しいですが…) 「プログラミングコンテストでの」というタイトルになっています

    プログラミングコンテストでのデータ構造 2 - iwiwiの日記
  • B-Tree - アルゴリズム・イントロダクション 18章 - ninjinkun's diary

    アルゴリズム・イントロダクション勉強会,B-Treeの章を担当しましたので,資料を公開いたします. Algorithm Introduction #18 B-Tree View more presentations from ninjinkun. B-Treeはデータ容量が主記憶に収まらないような場合に有効なデータ構造で,MySQLなどのDBや,最新のファイルシステムのインデックスとして用いられています.(MySQLはインデックス管理の方式を選択可能) 主に以下の利点があります. ノードの大きさをページサイズに最適化できる ページの読み込みがディスクアクセスに最適化される ページの読み込み数を木の高さhに抑えられる ディスクへのアクセス回数を抑えることができる id:naoyaのブログも参考になります. B木 - naoyaのはてなダイアリー 当日の発表はテンパってしまい,アレな感じになっ

    B-Tree - アルゴリズム・イントロダクション 18章 - ninjinkun's diary
  • 記者はもう要らない?データから記事を自動作成、米報道の最前線

    米ワシントンD.C.(Washington D.C.)にあるコンテンツ会社オートメーテッド・インサイツ(Automated Insights)で、自動生成プログラム作成した記事コンテンツを表示させたコンピューター画面(2012年7月9日撮影)。(c)AFP/Jim Watson 【7月13日 AFP】米ジャーナリズム界にさっそうと現れたその「新人記者」は、コーヒーブレークも取らず、猛烈なスピードでひたすら記事を量産するが、福利厚生は適用されない。 その正体は、コンピューター・アルゴリズム。企業の業績報告書やスポーツの試合結果といった膨大な量の生データから、必要な情報だけを抽出し、文章として読める形に整えるのだ。米国の新聞紙面やニュースウェブサイトで今、こうしたアルゴリズムが生み出す記事がじわじわと数を増している。 「基的で定型の記事ならば、何にでも使える」と、メディア関連リサーチ会社アウ

    記者はもう要らない?データから記事を自動作成、米報道の最前線
  • 麻雀ゲームが弱い理由(と羽生2冠が強い理由)~読みと見切り編~ - マッタリプログラミング日誌

    先日の記事が割と評判が良かったようなので、続きを書いてみたいと思います。 前回は、局面の数に着目して麻雀の難しさについて書きましたが、今回は読みと見切り(探索と枝刈り)について紹介したいと思います。 将棋の場合:MIN-MAX法 将棋やオセロのようなゲームは、情報科学的には2人零和完全情報確定交互ゲームに分類されますが、このタイプのゲームではmin-max探索という先読みとαβ法という見切り(枝刈り)が有効であることが分かっています。 次の図のような感じです。 今、Aという局面で先手の順番です。このとき先手にはB,Cという2つの手が考えられます。 先手がBを指すと後手はDとEの2つの手が考えられ、先手がCを指すと後手にはFとGという手が考えられます。 D~Gに書いてある数字はその局面で先手番からみた局面の有利さ(形勢判断)を数字化したものです。先手は出来るだけ数字が大きい局面に誘導したいで

    麻雀ゲームが弱い理由(と羽生2冠が強い理由)~読みと見切り編~ - マッタリプログラミング日誌
  • 博士の異常なアルゴリズム、または私は如何にして心配するのを止めて線形探索を愛するようになったか : 404 Blog Not Found

    2012年02月10日13:00 カテゴリアルゴリズム百選アマグラマーのすすめ 博士の異常なアルゴリズム、または私は如何にして心配するのを止めて線形探索を愛するようになったか これはちょっとプログラマーといふ生物を買いかぶりすぎてると思います。 プログラマへの誤解 | pineapple blog プログラムを書かない人がプログラムを読んだときにする良くある間違いは,ああこんなプログラムなら自分にも書けそうだと思うことだ.プログラムは何百万とある可能性からたったひとつ(は言い過ぎにしてもわずかながら)の正しい方法を残したものであり,この捨てる能力こそがプログラマの実力だから. 少なくとも、プロ2グラマーの場合は。 その反証としてあげたいのが、線型探索(linear search)。漢字で書いたり英語で書いたりするとさぞ凝ったことをやってるように見えるけど、実は「見つかるまで頭から(あるいは

    博士の異常なアルゴリズム、または私は如何にして心配するのを止めて線形探索を愛するようになったか : 404 Blog Not Found
    lakehill
    lakehill 2012/02/12
    ここまで言ってええんかいな
  • DextroII先生のロマサガ閃きシステムのアルゴリズム講座

    つしま(あなたの原稿はどこから) @chartreuse37 @DextroII 先生ッ! サガシリーズの閃きシステムの概念ってどうなってるんですか!? って弟が言ってました よかったらちらっと教えてください

    DextroII先生のロマサガ閃きシステムのアルゴリズム講座
  • quick sortよりも高速でmerge sortのように安定しているソートアルゴリズムtim sort [勘違い] - Islands in the byte stream

    <追記>ベンチマークプログラムに誤りがありました。ソート済のシーケンスに対してソートを掛けていました。ご指摘ありがとうございます>ak氏 そんな夢のようなソートアルゴリズムがあるのかというと、あるらしいんです。それがtim sortと呼ばれるアルゴリズムです。 画期的(?)なソートアルゴリズム「Sleep Sort」:濃縮還元オレンジニュース|gihyo.jp … 技術評論社 このあたりで拾ってきたネタですね。 merge sortを改良したアルゴリズムで、安定*1しており、しかも実行速度にも優れているとか。アルゴリズムの性能の評価は済んでいるらしく、CPythonやJDK7には既に導入済みのようですね。 ならば当然Perlのソートも…と考えるわけですが、まず評価のためにJavaのソースをC++にそのまま移植してみました。それがこれ(いちおうテスト済): https://github.co

    quick sortよりも高速でmerge sortのように安定しているソートアルゴリズムtim sort [勘違い] - Islands in the byte stream
  • Java 7のArrays.sort(Object[]): 柴田 芳樹 (Yoshiki Shibata)

    Java 7のEarly Access版をダウンロードしました。昨日、Joshua Bloch氏にProject Coinへ彼が提案している言語仕様の変更はすでに実装されているのかと聞いたところ、まだプロトタイプされていないということでした。で、その話のついでに、ソートの話になり、Java 7にはTimSortが入っているということで、調べてみました。 従来、コレクションフレームワークのArraysクラスのsort(Object[])は、今まではマージソートで実装されていました。しかし、Java 7にはパッケージプライベート宣言されているTimSortクラス(TimSort.java)が追加されており、Arrays.sort(Object[])(と関連する他のsortメソッド)はデフォルトでTimSortクラスのsortメソッドを使用するように書き換えられています。 TimSort.jav

    Java 7のArrays.sort(Object[]): 柴田 芳樹 (Yoshiki Shibata)
  • 頻出典型アルゴリズムの演習問題としてよさげなやつ - kyuridenamidaのチラ裏

    効率的な別解とか存在する問題もあるけど演習によさそうなやつをピックアップ。そのアルゴリズムじゃないと解けないわけではないって問題も多いので注意。(ただ演習するのには都合が良いかなと)※個人的難易度をつけてみました。とても主観的な難易度付けなので気にせず解いてみてください。深さ優先探索・Balls[☆]・Sum of Integers[☆]・The Number of Island[☆]・Block[★]幅優先探索・Mysterious Worm[★]・Cheese[★]・Seven Puzzle[★☆]・Stray Twins[★★]・Deven-Eleven[★★]・Summer of Phyonkichi[★★☆]ワーシャルフロイド法(For 全点対最短路問題)・Traveling Alone: One-way Ticket of Youth[★]・A reward for a Car

  • OUT OF THEIR MINDS

    OUT OF THEIR MINDS: The Lives and Discoveries of 15 Great Computer Scientists Computer science is one of the most important forces shaping today's society and the future, yet it is one of the least understood. Who made the key breakthroughs and how did they do it? This page has been translated to Russian by Decoded Butter. Into Belarussian by Alex Navid Into Uzbek by StudyCrumb.com. Into Macedonia

  • 商品の払底は買い占めだけが原因じゃないんじゃないの説(雑談) - やまもといちろうBLOG(ブログ)

    まあ、いろんなところで語られているとは思うけど、世に言う買い占めだけが問題なのではないという話。 いや、もちろん買い占めはいかんと思うんですよ。昨日も家内と近くのスーパーへ買い物へ出たら、アジア系外国人と思われる中年の夫婦が「お一人様1パック」と書かれた卵パックを4、5パック買おうとして、レジで店員と問答となり、店員側もアジア系外国人なのでわあわあ騒いでいるというのがありましたが、でもそれ以外はみな買い占めは自粛しているようにも見え、レジの後ろで並んでいたババアどもがボンバーマンのような連鎖でブチ切れていたのをみると買い占めは控えようという動きは確実にあろうかと思います。 で、そろそろ決算だというのもあり、B2BのEC物流を担っているシステム屋の経営者なんかともいろいろと話していたんですが、買い占めの影響もあるかもしれないけど実際には在庫を極限まで減らしたり、生産拠点からダイレクトに販売拠

    商品の払底は買い占めだけが原因じゃないんじゃないの説(雑談) - やまもといちろうBLOG(ブログ)
    lakehill
    lakehill 2011/03/22
    被災地に物資が届かないことといい、最短経路問題が流行りそうな予感
  • Introduction to Algorithms (SMA 5503) | Electrical Engineering and Computer Science | MIT OpenCourseWare

    This course teaches techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice. Topics covered include: sorting; search trees, heaps, and hashing; divide-and-conquer; dynamic programming; amortized analysis; graph algorithms; shortest paths; network flow; computational … Show more This course teaches techniques for the design and analysis of efficient al

    Introduction to Algorithms (SMA 5503) | Electrical Engineering and Computer Science | MIT OpenCourseWare
  • Good Programmers learn Mathematics

    良いプログラマは数学を学ぶ、方が良いと思う この文章は 2003 年 2 月 28 日(金曜日)に 株式会社 ACCESS の研究開発室のメンバ向けに行われた講義のために準備されたものです。 目次 はじめに アルゴリズム ― 数学によって可能になること 数学とプログラミングの美学 ― (多分)一番たいせつなこと 質問と回答 文献表 はじめに これから何回か皆さんの前で数学の話をさせてもらうことになりましたが、 今回はまず、その手始めとして 「どうして皆さんが数学を学んだ方が良いのか」、 いいえ、「どうして皆さんに数学を学んでほしいと私が思っているのか」 というお話をさせて下さい。 もちろん、それは皆さんに、より良いプログラマになって欲しいからですが、 また、私の経験によれば、 コンピュータサイエンスの教育の現場では、 何故か数学が軽視されることが多いことを残念に思っているからでもあります。

  • 動的計画法とナップサック問題を学びたい人におすすめのサイト - ダウンロードたけし(寅年)の日記

    組み合わせ最適化の手法として「動的計画法」というモノがあります。 wikipediaから抜粋 動的計画法(どうてきけいかくほう、英: Dynamic Programming, DP) コンピュータ科学の分野において、ある最適化問題を複数の部分問題に分割して解く際に、そこまでに求められている以上の最適解が求められないような部分問題を切り捨てながら解いていく手法 一見難しそうですが、実は理解するのは以外と簡単です。いろいろな場面で応用が利く便利な手法ですので、覚えておいて損はないものです。コンピュータ系、情報系のお勉強をする人であれば、おそらく一度は習ったりするかもしれません。 ナップサック問題と動的計画法 動的計画法の一番親しみやすそうな例として「ナップサック問題」というのがよく取り上げられます。 こんな感じの問題です。 今ここに様々な大きさの品物が置いてあるとします。そしてそれらの品物は各

    動的計画法とナップサック問題を学びたい人におすすめのサイト - ダウンロードたけし(寅年)の日記
  • トップクラスだけが知る「このアルゴリズムがすごい」――「探索」基礎最速マスター

    トップクラスだけが知る「このアルゴリズムがすごい」――「探索」基礎最速マスター:最強最速アルゴリズマー養成講座(1/4 ページ) プログラミングにおける重要な概念である「探索」を最速でマスターするために、今回は少し応用となる探索手法などを紹介しながら、その実践力を育成します。問題をグラフとして表現し、効率よく探索する方法をぜひ日常に生かしてみましょう。 まだまだ活用可能な探索 前回の「知れば天国、知らねば地獄――『探索』虎の巻」で、「探索」という概念の基礎について紹介しました。すでに探索についてよく理解している方には物足りなかったかと思いますが、「問題をグラフとしてうまく表現し、そのグラフを効率よく探索する」というアルゴリズマー的な思考法がまだ身についていなかった方には、得るものもあったのではないでしょうか。 前回は、「幅優先探索」と「深さ優先探索」という、比較的単純なものを紹介しましたが

    トップクラスだけが知る「このアルゴリズムがすごい」――「探索」基礎最速マスター
  • ビザンチン将軍問題 - Wikipedia

    ビザンチン将軍問題(ビザンチンしょうぐんもんだい、英語: Byzantine Generals Problem)とは、相互に通信しあう何らかのオブジェクト群において、通信および個々のオブジェクトが故障または故意によって偽の情報を伝達する可能性がある場合に、全体として正しい合意を形成できるかを問う問題である[1]。フォールトトレラントシステムでの多数決の妥当性や分散コンピューティングの処理の妥当性に関わる問題と言え、二人の将軍問題を一般化したものと言える。 ビザンチン将軍問題に帰結される故障や障害をビザンチン故障(Byzantine Failure、あるいはビザンチン障害)と呼ぶ。また、ビザンチン将軍問題が発生しても全体として正しく動作するシステムをビザンチン・フォールトトレラント性(Byzantine Fault Tolerance)があるという。 ビザンチン将軍問題は、東ローマ帝国(ビザ

  • 「1000のアルゴリズムを持つ男」vs.「やわらか頭脳」

    「1000のアルゴリズムを持つ男」vs.「やわらか頭脳」:最強最速アルゴリズマー養成講座(1/3 ページ) 典型的なアルゴリズムをたくさん知っている人間が最強か――? いいえ、典型的なアルゴリズムを知らなくても、違ったアプローチで答えに迫る方法はいくらでも存在します。短い実行時間で正確な答えを導き出せるかを考える習慣をつけましょう。 アルゴリズマー養成講座と銘打ってスタートした連載。もしかすると読者の方の興味は、はやりのアルゴリズムや汎用的なアルゴリズムを知ることにあるのかもしれません。しかし、今回は、いわゆる「典型的なアルゴリズム」を用いずに進めていきたいと思います。 なぜ典型的なアルゴリズムを用いないのか。それは、典型的なアルゴリズムばかりを先に覚え、それだけでTopCoderなどを戦っていこうとした場合、それに少しでもそぐわない問題が出た場合に、まったく太刀打ちできなくなってしまう

    「1000のアルゴリズムを持つ男」vs.「やわらか頭脳」
  • アルゴリズムとデータ構造 演習第 10 回

    アルゴリズムとデータ構造 演習第 10 回 サーチ1(二分探索) データの中から、あるデータを探すことを探索といいます。 ここでは二分探索 (アルゴリズムC 第2巻 p.8) を用いて探索を行います。 問題1 [印刷用 PostScript] 次のようなソートされたデータがある。 1 4 6 9 10 13 19 23 25 30 (1) このデータから二分探索を用いて 9 を探索する過程を書きなさい。 (2) このデータから内挿探索を用いて 9 を探索する過程を書きなさい。 二分探索、内挿探索はソートされているデータに対して行う探索方法です。 二分探索(アルゴリズムC 第2巻 p.8) 真ん中のデータが見つけたいデータかどうか調べます。 見つけたいデータが真ん中のデータより小さければ左側に対して、 大きければ右側に対して、同じことを繰り返します。 内挿探索(アルゴリズムC 第2巻 p.1