タグ

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

  • https://ipsj.ixsq.nii.ac.jp/ej/index.php?action=pages_view_main&active_action=repository_action_common_download&item_id=188975&item_no=1&attribute_id=1&file_no=1&page_id=13&block_id=8

    otori334
    otori334 2021/05/29
    粘菌アルゴリズムによる避難経路の導出
  • 2のべき乗サイズの配列は危ないという話 via 行列積 - elkurin’s blog

    こんにちは。労働者です。とあるプログラムで学生さんの課題を添削していたら面白い話に出会いました。 僕は今、主に学部生向けのインターン研修的なプログラムでメンターなるものをやっています。メンターとしての仕事は、学生さんの課題へフィードバックを返し、Office Hourというセッションを毎週設けて質問受けやCSに関するトークを行うといった内容になっています。今回話題に取り上げるのはその中の課題の1つ、「行列積のプログラムを書いて時間を計測せよ」という何気ない話で、続く課題たちのいわば前座のようなものです。こういったところに沼は隠されているものですね。 担当している学生さんたちが細かい実験を行ってくれて以下のような疑問が提示されました。 「行列積の計算が N = 1024のときだけ N = 1023, 1025のときに比べて3倍遅いのはなぜ?」 配列のサイズが2のべき乗になるのは避けるべきとい

    2のべき乗サイズの配列は危ないという話 via 行列積 - elkurin’s blog
  • 制約充足問題 - Wikipedia

    制約充足問題(せいやくじゅうそくもんだい、英: Constraint satisfaction problem, CSP)は、複数の制約条件を満たすオブジェクトや状態を見つけるという数学の問題を指す。CSPは特に人工知能やオペレーションズ・リサーチで研究されている。多くのCSPでは、それなりの時間内に解くのにヒューリスティクスと組合せ最適化手法を組み合わせる必要がある。 制約充足問題の具体例: エイト・クイーン 四色問題 数独 充足可能性問題 制約充足問題を解くアルゴリズムとしては、AC-3アルゴリズム、バックトラッキング、制約違反最小化などがある。 参考文献[編集] Tsang, Edward (1993年). Foundations of Constraint Satisfaction. Academic Press. ISBN 0-12-701610-4 Dechter, Rina

  • Loading...

  • 任意の点が4つあります。 その4つの点を線分で結ぶとき、各線分が交わらないようにしたいです。…

    任意の点が4つあります。 その4つの点を線分で結ぶとき、各線分が交わらないようにしたいです。(凸四角形を作りたい) これを、プログラム言語で実装する場合、どういう風にすればよいのでしょうか。

  • ピーターソンのアルゴリズム - Wikipedia

    /* * ANSI C89 source, KNF style implementation of Peterson's Algorithm. * * Copyright (c) 2005, Matthew Mondor * Released in the public domain (may be licensed under the GFDL). * * Please fix any bugs as needed, preserving the KNF style and this comment, * unless considered inconvenient in which case you can do whatever you want * with the code. */ #include <assert.h> #include <stdio.h> #include <

  • AWSユーザーは必ず覚えておきたいExponential Backoffアルゴリズムとは何か - yoshidashingo

    cloudpackエバンジェリストの吉田真吾(@yoshidashingo)です。 Exponential Backoff 直訳すると「指数関数的後退」つまり、指数関数的に処理のリトライ間隔を後退させるアルゴリズムのことです。 詳しくはWikipediaに記載があります。 Exponential backoff - Wikipedia語でブログに書かれている方もいらっしゃいます。 exponential backoffのメモ – Siguniang's Blog これを見ていると、どうやらこのアルゴリズムは古くから通信装置において、イーサネットフレームのデータ送信時にコリジョン(衝突)を検出したら一定時間待機して再送して、処理を完結させるためのアルゴリズムとして使われているようです。 通信機器の世界に限らず、アプリケーションの分野でも、大規模で予測不能な処理量を有限なリソースでさばく

    AWSユーザーは必ず覚えておきたいExponential Backoffアルゴリズムとは何か - yoshidashingo
  • 画像のしきい値処理 — OpenCV-Python Tutorials 1 documentation

    OpenCVの公式ドキュメントに各フラグがどのよな処理をするか記載されているので,確認してください. cv2.threshold は二つの出力を返します.一つ目の出力 retval については後述します.二つ目の出力がしきい値処理された後の 二値画像 になります. コード : import cv2 import numpy as np from matplotlib import pyplot as plt img = cv2.imread('gradient.png',0) ret,thresh1 = cv2.threshold(img,127,255,cv2.THRESH_BINARY) ret,thresh2 = cv2.threshold(img,127,255,cv2.THRESH_BINARY_INV) ret,thresh3 = cv2.threshold(img,127,2

    画像のしきい値処理 — OpenCV-Python Tutorials 1 documentation
  • スタックとキューを極める! 〜 考え方と使い所を特集 〜 - Qiita

    0. はじめに 基的なデータ構造として大学の授業や情報系の各種試験などによく登場するものの一つに、スタックとキューがあります。 スタックとキューについて学ぶ場面の多くでは、「スタックは LIFO (Last-In-First-Out)、キューは FIFO (First-In-First-Out)」と呪文のように覚えたり、 スタックは、例えば超忙しいときに新しい課題がぶっこまれたときとかにとりあえずそれを先に片付けるような感じ キューは、人気ラーメン屋に並ぶ人々の待ち行列のように先に並んだ人が先にお店に入る感じ という風に、日常の事物に対応づけて説明したりする文化が多く見受けられます。「タスクが次々と降ってくる状況をどう扱っていくか」というのは、日常生活を生きる人間にとっても、コンピュータ上の処理であっても自然に登場する普遍的な問題意識ですので、その最も基的な思想であるところのスタックや

    スタックとキューを極める! 〜 考え方と使い所を特集 〜 - Qiita
  • ハフ変換 - Wikipedia

    ハフ変換(ハフへんかん、Hough変換)は、デジタル画像処理で用いられる特徴抽出法の一つである。古典的には直線の検出を行うものだったが、更に一般化されて様々な形態に対して用いられている。現在広く用いられている変換法はen:Richard Duda及びen:Peter Hartが1972年に発明した「一般化ハフ変換」である。この名は1962年にen:Paul Houghが得た関連する特許に由来する。この変換法は1981年のen:Dana H. Ballardの論文 "Generalizing the Hough transform to detect arbitrary shapes"(「 ハフ変換の一般化による任意の形態の検出」)によってコンピュータビジョンの領域で広く用いられるようになった。 理論[編集] いかなる点をとっても、その点を通る直線は無限個存在し、それぞれが様々な方向を向くが

    ハフ変換 - Wikipedia
  • 高速逆平方根(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)のアルゴリズム解説 - 滴了庵日録
  • 最高にエッチな画像が遺伝的アルゴリズムで生み出される様子を見て反省する日々 - 本しゃぶり

    「なぜ見抜けなかったのか」 画像の選択を迫られるたびに俺は自問する。 進化の筋道を正しく予測するのは難しい。 遺伝的アルゴリズムの活用 2021年から、新たに習慣となった行為はあるだろうか。俺はある。PCの前に座り、二つの画像のうち、どっちの方がエッチかを選ぶ。これがモーニングルーティンとなっている。もちろんこれの話だ。 遺伝的アルゴリズムで最高にエッチな画像を作ろう! これまで何度も話題になっていたし、直近でも関連ツイートがバズっていたので、記事を読む人の大半は知っているだろう。名前の通り、遺伝的アルゴリズムでエッチな画像を作るシステムである。人が画像を選択することで、よりエッチな画像が生き残り、高みへと一歩近づく。最初はノイズのようなモザイク画だったが、10,000世代を超えた現在では「女性の裸体」と認識できるものに仕上がっている。 0世代と10,000世代 現状について「最高にエッ

    最高にエッチな画像が遺伝的アルゴリズムで生み出される様子を見て反省する日々 - 本しゃぶり
  • 遺伝的アルゴリズムでエッチな画像を作ろう!

    おわり 二つの画像のうち、どっちの方がエッチかを選んでください。 世代交代を経るごとに、だんだんとエッチな画像が表示されるようになるはずです。 Choose the lewder one, and you can make them more lewd. You will win when the AdSense on this site is stopped by Google because of "Sexually explicit content". ENGLISH よりエッチな画像を作るために、 ぜひ色んな人に広めてください。 ツイート ・展覧会ページでこれまでの画像を公開しています。 詳しい説明 スポンサーリンク みんなの好みを学習させて、「遺伝的アルゴリズム」によってエッチな画像を自動で作るためのシステムです。 遺伝的アルゴリズムとは、あるデータを目標に近づけるために使われる

    遺伝的アルゴリズムでエッチな画像を作ろう!
  • PHPとPythonとRubyの連想配列のデータ構造が同時期に同じ方針で性能改善されてた話 - hnwの日記

    PHPPythonRubyの連想配列のデータ構造がそれぞれ4〜5年ほど前に見直され、ベンチマークテストによっては倍以上速くなったということがありました。具体的には以下のバージョンで実装の大変更がありました。 PHP 7.0.0 HashTable高速化 (2015/11) Python 3.6.0 dictobject高速化 (2016/12) Ruby 2.4.0 st_table高速化 (2016/12) これらのデータ構造はユーザーの利用する連想配列だけでなく言語のコアでも利用されているので、言語全体の性能改善に貢献しています1。 スクリプト言語3つが同時期に同じデータ構造の改善に取り組んだだけでも面白い現象ですが、さらに面白いことに各実装の方針は非常に似ています。独立に改善に取り組んだのに同じ結論に至ったとすれば興味深い偶然と言えるでしょう2。 稿では3言語の連想配列の従来実

    PHPとPythonとRubyの連想配列のデータ構造が同時期に同じ方針で性能改善されてた話 - hnwの日記
    otori334
    otori334 2021/01/11
    “メモリの読み書きに関連する改善が支配的だったのではないか?”
  • 合議は「無駄の多い」「ダメな」アルゴリズムなのか? - GA将?開発日記~王理のその先へ~

    前書き 以前、とある方から「何で合議という無駄の多いアルゴリズムを使っているんですか? 並列αβ探索で良いじゃないですか。」という趣旨のメールを頂きました。 そのメールには単に「並列αβ探索より合議の方が強くなったので採用しています。」とだけ返信しましたが、せっかくのネタなのでもうちょっと詳しくブログに書いてみます。 「同一局面を複数回探索する」=「無駄が多い」なのか? 上記のメールの方は、複数のクライアントが同一局面を探索する場合があるので、それを指して「無駄」と呼んでいた様です。 では、当にそうなんでしょうか? 例えば、多くのコンピュータ将棋ソフトで使用されている「反復深化」や「LMR」も、合議と同じく「同一局面を複数回探索する」可能性が有ります。ですが、これを「無駄」と呼んでいる人はほとんど居ないと思います。 という訳で、上記の問いに対する私の答えは「NO」です。 並列αβ探索には

    合議は「無駄の多い」「ダメな」アルゴリズムなのか? - GA将?開発日記~王理のその先へ~
  • https://www.jstage.jst.go.jp/article/isciesci/49/4/49_KJ00003364261/_pdf

    otori334
    otori334 2020/11/17
    離散凸解析ってなんですか?
  • マルコフ過程 - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "マルコフ過程" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2018年1月) マルコフ過程(マルコフかてい、英: Markov process)とは、マルコフ性をもつ確率過程のことをいう。すなわち、未来の挙動が現在の値だけで決定され、過去の挙動と無関係であるという性質を持つ確率過程である。 このような過程は例えば、確率的にしか記述できない物理現象の時間発展の様子に見られる。なぜなら、粒子の将来の挙動は現在の挙動によってのみ決定されるが、この性質は系の粒子数が多くなり確率論的な解析を必要とする状態にも引き継がれるからである。 ロシア

    otori334
    otori334 2020/11/17
    酔歩・反復試行・最適化・確率漸化式から.
  • or58_6_311.dvi

    c � M L 1. 1 M L 2. 1 113–8656 7–3–1 2.1 [ ] [ ] 2.2 2013 6 Copyright c � by ORSJ. Unauthorized reproduction of this article is prohibited. 3 311 (LP) [ ] 1 • —[ Conv] • —[ LocalOpt] • —[ DualPair] • —[ MinMax] • Farkas —[ Separ] 3. 1 1 1 2 R Z R, Z (+∞) R, Z (−∞) R, Z f : Z → R f(x − 1) + f(x + 1) ≥ 2f(x) (∀x ∈ Z) (1) (x, f(x)) 2 f : R → R 1 2 1 2 f(x) = f(x) (∀x ∈ Z) (2) f f f 2 3.1 (Conv) f : Z

    otori334
    otori334 2020/11/17
    離散凸解析のすすめ 二項分布の確率質量関数・離散型凸関数から離散凸解析へ.
  • クワイン・マクラスキー法 - Wikipedia

    クワイン・マクラスキー法(—ほう; Quine–McCluskey algorithm/略:QM法)はブール関数を簡単化するための方法である。カルノー図と同様の目的で使われるが、コンピュータによる自動化に適しており、またブール関数が最簡形かどうか決定的に求めることができる。W・V・クワインが提案し、E・J・マクラスキーが発展させた方法なのでこの名がある。 クワイン・マクラスキー法は3段階からなる。 関数の主項をすべて求める 求めた主項を表にまとめ、必須項を求める 最簡形を求める 例[編集] 主項を求める[編集] 以下の真理値表で表されるブール関数を簡単化する。 A B C D f

  • キャッシュを考慮したコードを書いてみよう! – Lancarse Blog

    どうもこんにちは、勤続3年目にして業界3年目のプログラマーです。 今回はプログラムのお話をしていこうかと思います。 プログラムを行っていく上で最適化というものが必要になるケースが度々あると思いますが、 その最適化の手法の一つにキャッシュ・ブロッキングという方法があります。 キャッシュ・ブロッキングとは? キャッシュ・ブロッキングはキャッシュに収まるようにデータ構造をブロック化します。 ブロック化の目的は、複数回使用されるデータをキャッシュに保持することでデータの再利用の機会を活用することにあります。 詳しい話はググってもらうとして、今日は実際にキャッシュブロッキングを考慮したプログラムを紹介していこうと思います。 実際のプログラム例 わかりやすい例が行列積の計算なので行列積のプログラムを紹介します。 というのも1年以上前にキャッシュブロッキングを使った行列積のコードを書いたのを思い出したの