タグ

アルゴリズムに関するtekimenのブックマーク (8)

  • 編集距離(レーベンシュタイン距離)の求め方 - 具体例で学ぶ数学

    編集距離とは 「すうがく」という単語を最低何回「編集」すれば「すがた」という単語になるでしょうか? ただし「編集」とは、 一文字挿入、一文字削除、一文字置換 のいずれかの操作のこととしましょう。 例えば、 「すうがく」の「う」を削除 →「すがく」の「く」を「た」に置換 →「すがた」 となり、「すうがく」から「すがた」へは編集2回で行けることになります。(編集1回では行けません) このように、必要な「編集」の最低回数のことを編集距離と言います。 つまり「すうがく」と「すがた」の編集距離は $2$ です。 「編集」で許す操作は、挿入または削除または置換としましたが、置換を許さないなど、他にもバリエーションがあります。 このように「編集」の定義はいろいろありますが、挿入または削除または置換という「編集」による編集距離を、特にレーベンシュタイン距離と言います。 参考:Levenshtein dis

  • マンデルブロ集合の不思議な世界

    最新情報 2020/01/20、HTTPSに対応し、URLが「http://~」から「https://~」に変更となりました。 2017/06/04、サイトリニューアルしました。今後ともどうぞよろしくお願いいたします。 マンデルブロ集合という図形をご存知ですか?見るからに変な形、どんなに拡大しても次々に最初と同じ形が現れる不思議、緻密で深く吸い込まれそうなその模様。マンデルブロ集合は、数学とコンピュータによって描かれるフラクタル図形の一種です。 こんな摩訶不思議な図形が一体どうやって描かれるのか、さぞ難しい数学やアルゴリズムの話が出てくるのかと思いきや、高校数学の複素数と数列くらいまでを知っている人であればすぐに理解できてしまう、非常に簡単な仕組みで成り立っているのです。もちろん、数学は全然分からないという人でも、単純にアートとして楽しむことができます。 マンデルブロ集合の周囲には、全く同

    マンデルブロ集合の不思議な世界
  • 高速UTF-8バリデーションの世界 - Qiita

    参照: http://www.unicode.org/versions/Unicode6.0.0/ch03.pdf の "Table 3-7. Well-Formed UTF-8 Byte Sequences" アルゴリズムを理解する上で重要なUTF-8の特徴について述べます。 1コードポイントは1-4バイトのシーケンスで表現される 上位ニブル(1バイト8ビットのうち、上位4ビット)を確認することでシーケンスの情報が得られる そのバイトがシーケンス先頭バイトかどうかわかる もしそれがシーケンス先頭バイトだったなら、何バイトのシーケンスかわかる 先頭でないバイトは基的に0x80..0xBFの範囲が許容されているが、何箇所か例外があるのでそれもバリデーションしなければならない 例外の箇所は表では太字で示した 例えば、表を見て分かるように、先頭バイトが0xE0のとき2バイト目は0xA0..0x

    高速UTF-8バリデーションの世界 - Qiita
  • マルコフ連鎖を使って〇〇っぽい文章を自動生成してみた | パソコン工房 NEXMAG

    今回はマルコフ連鎖を使って〇〇っぽい文章を自動生成します。最近はディープラーニングを用いた手法に注目が集まっていますが、マルコフ連鎖はデータ数が少なくても比較的いい感じに文章生成ができるそうなので、いろいろな種類の〇〇っぽい文章を生成し比べてみました。 マルコフ連鎖について マルコフ連鎖はTwitterの人気botであるしゅうまい君(https://twitter.com/shuumai)やからしちゃん(https://twitter.com/karashichan)にも使われている手法です。 このマルコフ連鎖について簡単に説明します。ウィキペディアの解説には以下のように説明されています。 “各時刻において起こる状態変化(遷移または推移)に関して、マルコフ連鎖は遷移確率が過去の状態によらず、現在の状態のみによる系列である。” 「マルコフ連鎖」( 2018年6月10日 (日) 10:49 U

    マルコフ連鎖を使って〇〇っぽい文章を自動生成してみた | パソコン工房 NEXMAG
  • 【訃報】画像ファイルフォーマット「GIF」生みの親スティーブ・ウィルハイト氏死去

    特定の色を透明にする背景の透過表示や、複数の画像を1つのファイルに収めてのアニメーション表示、ファイルの読み込みが進むにつれて画像を表示する「インターレース表示」といった機能を備えた画像ファイルフォーマットとして知られる「GIF」の設計に携わったコンピューター科学者のスティーブ・ウィルハイト氏が、2022年3月14日、新型コロナウイルス感染症(COVID-19)のため亡くなりました。74歳でした。 Stephen E. Wilhite Obituary - Visitation & Funeral Information https://www.megiefuneralhome.com/obituaries/Stephen-E.-Wilhite?obId=24311617 Stephen Wilhite, creator of the GIF, has died - The Verge h

    【訃報】画像ファイルフォーマット「GIF」生みの親スティーブ・ウィルハイト氏死去
  • Python言語による実務で使える100+の最適化問題 | opt100

    指針 厳密解法に対しては、解ける問題例の規模の指針を与える。数理最適化ソルバーを使う場合には、Gurobi かmypulpを用い、それぞれの限界を調べる。動的最適化の場合には、メモリの限界について調べる。 近似解法に対しては、近似誤差の指針を与える。 複数の定式化を示し、どの定式化が実務的に良いかの指針を示す。 出来るだけベンチマーク問題例を用いる。OR-Libraryなどから問題例をダウンロードし、ディレクトリごとに保管しておく。 解説ビデオもYoutubeで公開する. 主要な問題に対してはアプリを作ってデモをする. 以下,デモビデオ: 注意 基的には,コードも公開するが, github自体はプライベート そのうちにするかもしれない(予約はしているが, 保証はない). プロジェクトに参加したい人は,以下の技量が必要(github, nbdev, poetry, gurobi); ペー

  • 動的計画法(DP)勉強メモ - Qiita

    ちょっと調べたのでまとめてみます。 動的計画法(DP)とは? まず、Wikipediaを見てみる。(引用は一部改変しています) 細かくアルゴリズムが定義されているわけではなく、下記2条件を満たすアルゴリズムの総称である。 分割統治法:部分問題を解き、その結果を利用して、問題全体を解く メモ化:部分問題の計算結果を再利用する ふむ、分けること、メモ化すること、の2つを含むアルゴリズムであると。 適用するには条件があるそうな。 最適化問題に適用する場合、一般的に、以下の2つが適用する問題に成立していないといけない。 部分構造最適性や最適性原理 部分問題重複性 部分構造最適性 部分構造最適性とは、以下の2条件が成立していることをさす。 ⅰ. 部分問題も同じ最適化問題が成立している ⅱ. 部分問題間が独立している 何やら漢字だらけで難しそうだが、ⅰはこんな感じだと思う。 例えば問題を5つのステップ

    動的計画法(DP)勉強メモ - Qiita
  • 動的計画法(ナップサック問題) - アルゴリズム講習会

    動的計画法(ナップサック問題) 動的計画法とナップサック問題について解説します。 動的計画法とは 直接計算すると大きな時間がかかってしまう問題に対し、途中の計算結果をうまく再利用することで計算効率を上げる手法のこと。 「途中の計算結果を再利用」=「同じ計算をしない」ということ 難しいように見えて考え方自体は単純 ICPC国内予選でもC問題~F問題くらいに何かしらの形で2,3題ほどでます 英語では「Dynamic Programming」と呼び、略して「DP」と呼ぶことが多いです。 動的計画法で効率的に解ける問題の一つに、ナップサック問題というものがあります。 ナップサック問題 ナップサック問題は、価値と重さが決まっている複数の品物を容量が一定のナップサックに詰め込むとき、ナップサックに詰め込める品物の価値の和の最大値は何であるか? という問題です。 具体的には、以下の図のようになります。ナ

    動的計画法(ナップサック問題) - アルゴリズム講習会
  • 1