タグ

Wikipediaとprogrammingに関するtyosuke2011のブックマーク (17)

  • 進化的プログラミング - Wikipedia

    進化的プログラミング(しんかてきプログラミング、Evolutionary Programming)は、4つの主要な進化的アルゴリズム方法論の1つである。 概要[編集] 人工知能の生成を意図した学習過程として、シミュレーションされた進化を使った Lawrence J. Fogel が1960年に最初に使った用語である。Fogel は予測機として有限状態機械を使い、それを発展させた。 その後、彼の息子の David B. Fogelにより実数関数の最適化問題を探索する手法に拡張され、進化的戦略と類似した方法に発展した。 進化的プログラミングの中心となるのは突然変異である。親ベクトルに対してランダムな変化を加えて子ベクトルを生成し、それらを評価して、ランダムに個体を選んで適用度を比較する。これによって次の世代を選び、解が収束するまでこれを繰り返していく。 現在、進化的プログラミングは他の3つの方

  • 遺伝的プログラミング - Wikipedia

    遺伝的プログラミング(いでんてきプログラミング、英: Genetic Programming, GP)は、メタヒューリスティックなアルゴリズムである遺伝的アルゴリズムを拡張したもので、進化的アルゴリズムの四つの主要な方法論の内の一つでもある。 概要[編集] 遺伝的プログラミングは1990年にジョン・コザ(John Koza)によって提案された。他の進化的アルゴリズムの主要な方法論が同時期に提案され独立して研究が進められていたのに対し、遺伝的プログラミングは最初から遺伝的アルゴリズムの拡張として提案されており、他の三つの方法とは大きく立場を異にする。具体的な内容としては、遺伝的アルゴリズムにおける遺伝子型の表現が主に配列であるのに対し、遺伝的プログラミングでは木構造を用いる。このため、遺伝的アルゴリズムでは表現できなかった数式やプログラムのコードなど、構造を持ったデータを表現することができる

    遺伝的プログラミング - Wikipedia
  • 進化的アルゴリズム - Wikipedia

    進化的アルゴリズム(しんかてきアルゴリズム、evolutionary algorithm、EAと略記)は進化的計算の一分野を意味し、人工知能の一部である。個体群ベースのメタヒューリスティックな最適化アルゴリズムの総称である。そのメカニズムとして生殖、突然変異、遺伝子組み換え、自然淘汰、適者生存といった進化の仕組みに着想を得たアルゴリズムを用いる。最適化問題の解の候補群が生物の個体群の役割を果たし、コスト関数によってどの解が生き残るかを決定する。それが繰り返された後、個体群の進化が行われる。 EAの例を以下に示す。これらの技法は質的には同様だが、実装の詳細は異なっており、適用される問題の分野が異なる。 遺伝的アルゴリズム これは EA の中でも最も一般的な手法である。問題の解を探索するにあたって数値の列を使用し(2進数を使うのが古典的だが、解決すべき問題に合わせて最適な形式が選択され、2進

  • Scala - Wikipedia

    Scala(スカラ、SKAH-lah[3])はオブジェクト指向言語と関数型言語の特徴を統合したマルチパラダイムのプログラミング言語である。名前の「Scala」は英語の「scalable language」に由来するものである。 プラットフォーム[編集] 主にJavaプラットフォーム(Java仮想マシン)上で動作し、既存のJavaのプログラムと容易に連携させることができる。 対応プラットフォーム Scala - Javaプラットフォーム Scala.js[4] - Scala から JavaScript へとトランスパイルする。 Scala Native[5] - LLVM を使用し、マシンネイティブの実行ファイルを出力 また、過去には下記のプラットフォームもサポートしていたが、現在は開発が中断している。 .NET Framework[6] Java Platform, Micro Edit

    Scala - Wikipedia
  • Rust (プログラミング言語) - Wikipedia

    Rust(ラスト)は、性能、メモリ安全性、安全な並行性を目指して設計されたマルチパラダイムのプログラミング言語である。C言語、C++に代わるシステムプログラミング言語を目指しており[2]、構文的にはC++に似ているが[3]、「ボローチェッカー」(borrow checker) で参照の有効性を検証することによってメモリ安全性を保証できる。Rustはガベージコレクションなしでのメモリ安全性を達成しており、必要な場面で参照カウントを使うこともできる[4][5] 。 Rustプロジェクトはオープンソースのコミュニティベース開発で進行しており[6]、言語仕様(検討段階含む)、ソースコード、ドキュメントはオープンソースライセンスで公開されている[7]。2006年の開発初期は、Mozillaの従業員のグレイドン・ホアレ(Graydon Hoare)[8]の個人プロジェクトだったが、2009年にMozi

    Rust (プログラミング言語) - Wikipedia
    tyosuke2011
    tyosuke2011 2023/07/04
    C++を理解してないのにRustに手を出すのはよくない
  • ヒープソート - Wikipedia

    ヒープソート (heap sort) とはリストの並べ替えを二分ヒープ木を用いて行うソートのアルゴリズムである[2](ヒープ領域とは無関係であることに注意する)。 アルゴリズムは、以下のように2つの段階から構成される。 未整列のリストから要素を取り出し、順にヒープに追加する。すべての要素を追加するまで繰り返し。 ルート(最大値または最小値)を取り出し、整列済みリストに追加する。すべての要素を取り出すまで繰り返し。 計算量は O となる[2]。安定ソートではない[2]。 アルゴリズム[編集] ヒープ構造は、ポインタ等の制御用データが不要で、データ自体の並び順(配列)だけで表現できるという利点がある。ヒープソートを実装する際にはこの利点を生かし、元のデータ領域をそのままヒープ構造や整列済みリストに転用するインプレースなソートとして実装することが多い。 最初にN個のデータを含む配列が与えられるも

    ヒープソート - Wikipedia
  • トポロジカルソート - Wikipedia

    トポロジカルソート(英: topological sort)は、グラフ理論において、有向非巡回グラフ(英: directed acyclic graph, DAG)の各ノードを順序付けして、どのノードもその出力辺の先のノードより前にくるように並べることである。有向非巡回グラフは必ずトポロジカルソートすることができる。 有向非巡回グラフのノードの集合に到達可能性関係 R (ノード x から y への(各辺の向きに逆行しない)経路が存在するとき、またそのときに限り xRy とする)を定めると、R は半順序関係となる。トポロジカルソートとは、この R を全順序になるように拡張したものとみなせる。 例[編集] トポロジカルソートの典型的な利用例はジョブのスケジューリングである。トポロジカルソートのアルゴリズムはPERTというプロジェクト管理手法[1]のスケジューリングのために1960年代初頭に研究

    トポロジカルソート - Wikipedia
  • マジックナンバー (プログラム) - Wikipedia

    プログラムにおけるマジックナンバー(英: magic number、魔法の数字)とは、何らかの識別子もしくは定数として用いられる、プログラムのソースコード中に書かれた具体的な数値である。そのプログラムを書いた時点では製作者は数値の意図を把握しているが、他のプログラマーまたは製作者人がマジックナンバーの意図を忘れたときに閲覧すると「この数字の意味はわからないが、とにかくプログラムは正しく動く。まるで魔法の数字だ」という皮肉を含む。 概要[編集] 次のような理由で、マジックナンバーはプログラム中に含まれないことが好ましいとされる。 その数値の持つ意味がわかりづらい。 数値を変更する場合に、複数の箇所を変更しなければならない可能性がある。 例1 たとえば、消費税が8%の時に、税込価格 (tax-included price) を求める以下のようなソースコードをC言語で書いたとする。 これは、p

  • Singleton パターン - Wikipedia

    Singleton パターン(シングルトン・パターン)とは、オブジェクト指向のコンピュータプログラムにおける、デザインパターンの1つである。GoF (Gang of Four; 4人のギャングたち) によって定義された。Singleton パターンとは、そのクラスのインスタンスが1つしか生成されないことを保証するデザインパターンのことである。ロケールやルック・アンド・フィールなど、絶対にアプリケーション全体で統一しなければならない仕組みの実装に使用される[1]。 クラス図[編集] Singleton パターンの一般的なクラス図を示す。 Singleton は同じ型のインスタンスを private なクラス変数として持つ。この変数には Singleton.getInstance() からアクセスする。Singleton のコンストラクタは private である。 このクラス図で注目すべきこ

    Singleton パターン - Wikipedia
  • グローバル変数 - Wikipedia

    グローバル変数(大域変数、英: global variable)は、コンピュータプログラミングにおいて全てのスコープからアクセスできる変数のことである。グローバル変数の寿命は、プログラムの生存期間と同じである。対する語は、ローカル変数である。スコープも参照。 概要[編集] 一般にグローバル変数は、その非局在的な性質ゆえに、悪い作法だと考えられている。すなわち、グローバル変数は潜在的にどこかで変更される可能性があり、またプログラムの一部はそれに依存してしまう恐れがあるからである。グローバル変数はそれゆえ相互依存を生み出す無限の可能性を持っており、相互依存が高まることは複雑性を増大することにつながる。遠隔作用(英語版) (action at a distance) を参照。 しかしグローバル変数が適する状況もある。例えば、システム起動時に一度だけファイルから読み出し、以降は様々な関数を通して継

  • 軽量データクラスタリングツールbayon - mixi engineer blog

    逆転検事を先日クリアして、久しぶりに逆転裁判1〜3をやり直そうか迷い中のfujisawaです。シンプルなデータクラスタリングツールを作成しましたので、そのご紹介をさせていただきます。 クラスタリングとは クラスタリングとは、対象のデータ集合中で似ているもの同士をまとめて、いくつかのグループにデータ集合を分割することです。データマイニングや統計分析などでよく利用され、データ集合の傾向を調べたいときなどに役に立ちます。 例えば下図の例ですと、当初はデータがゴチャゴチャと混ざっていてよく分からなかったのですが、クラスタリングすることで、実際は3つのグループのデータのみから構成されていることが分かります。 様々なクラスタリング手法がこれまでに提案されていますが、有名なところではK-means法などが挙げられます。ここでは詳細については触れませんが、クラスタリングについてより詳しく知りたい方は以下の

    軽量データクラスタリングツールbayon - mixi engineer blog
  • C言語 - Wikipedia

    C言語(シーげんご、英: C programming language)は、1972年にAT&Tベル研究所のデニス・リッチーが主体となって開発した汎用プログラミング言語である。英語圏では「C language」または単に「C」と呼ばれることが多い。日でも文書や文脈によっては同様に「C」と呼ぶことがある。制御構文などに高水準言語の特徴を持ちながら、ハードウェア寄りの記述も可能な低水準言語の特徴も併せ持つ。基幹系システムや、動作環境の資源制約が厳しい、あるいは実行速度性能が要求されるソフトウェアの開発に用いられることが多い。後発のC++Java、C#など、「C系」と呼ばれる派生言語の始祖でもある[注釈 1]。 ANSI、ISO、またJISにより言語仕様が標準規格化されている。 特徴[編集] Cには他のプログラミング言語と比較して、特筆すべきいくつかの特徴がある。 利点[編集] 構造化プログ

    C言語 - Wikipedia
  • ニューラルネットワーク - Wikipedia

    人工知能の分野で)ニューラルネットワーク(英: neural network; NN、神経網)は、生物の学習メカニズムを模倣した機械学習手法として広く知られているものであり[1]、「ニューロン」と呼ばれる計算ユニットをもち、生物の神経系のメカニズムを模倣しているものである[1]。人間の脳の神経網を模した数理モデル[2]。模倣対象となった生物のニューラルネットワーク(神経網)とはっきり区別する場合は、人工ニューラルネットワーク (英: artificial neural network) と呼ばれる。 以下では説明の都合上[注釈 1]、人工的なニューラルネットワークのほうは「人工ニューラルネットワーク」あるいは単に「ニューラルネットワーク」と呼び、生物のそれは「生物のニューラルネットワーク」あるいは「生物の神経網」、ヒトの頭脳のそれは「ヒトのニューラルネットワーク」あるいは「ヒトの神経網」

    ニューラルネットワーク - Wikipedia
  • Arduino - Wikipedia

    Arduino(アルドゥイーノ もしくは アルデュイーノまたはアルディーノ)とは、(ハードウェアの)「Arduinoボード」、および(ソフトウェアの)「Arduino IDE」から構成されるシステムである。Arduinoボードは、AVRマイコン、入出力ポートを備えた基板であり、Arduino IDEはC言語風の「Arduino言語」によってプログラムを制作・コンパイル・デバッグ等し、それをArduinoボードに転送 等々するための「統合開発環境」と呼ばれる、PC上で作動させる一種のソフトウェアである。 また「Arduino」という名称は広義には、それらの開発・改良を行う一連のプロジェクトや、その結果生まれた会社、またその多くの開発者らによるコミュニティまでも指すことがある。 もともと2005年にイタリアで5人の人物によって、「もっとシンプルに、もっと安価に、技術者でない学生でもデジタルなも

    Arduino - Wikipedia
  • MATLAB - Wikipedia

    MATLAB(マットラブまたはマトラボ[24])は、アメリカ合衆国のMathWorks社が開発している数値解析ソフトウェアであり、その中で使うプログラミング言語の名称でもある。MATLABは、数値線形代数、関数とデータの可視化、アルゴリズム開発、グラフィカルインターフェイスや、他言語(C言語/C++/Java/Python)とのインターフェイスの機能を有している。MATLABは、主に、数値計算を扱う事ができるが、追加のオプションSymbolic Math Toolboxを使うことで、数式処理の能力を得ることができる。2019年時点でMATLABのユーザー数は400万人を超えており、100,000 以上の企業・政府・大学で、工学・理学・経済学など幅広い分野に利用されている。 MATLABは、MATrix LABoratoryを略したものであり[25]、行列計算、ベクトル演算、グラフ化や3次元

    MATLAB - Wikipedia
  • ActionScript - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "ActionScript" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2020年12月) ActionScript(アクションスクリプト)とは、アドビの製品であるFlashに使用されるプログラミング言語である。ECMAScriptを拡張した物である。これを用いることにより、動画や音声のプレイヤーの作成など、コンテンツに複雑な処理や双方向性を持たせFlash作品を作ることが可能である。 概要[編集] ActionScriptが初めて搭載されたのが2000年に発売されたFlash 5で、後継バージョンである Flash MX 2004 (

  • 神経言語プログラミング - Wikipedia

    神経言語プログラミング(しんけいげんごプログラミング、神経言語学的プログラミングとも, Neuro-Linguistic Programming: NLP)は、ジョン・グリンダー(言語学者)とリチャード・バンドラーによって提唱された、コミュニケーション、能力開発、心理療法へのアプローチを目指す技法である。人間は客観的な現実を理解することはできないというポストモダン的な立場を取り、主観的経験の構造の研究によって記述された「メタ学問」である[1][2]。個人の主観性・主観的な経験に大きく焦点を当てた自己啓発の体系を持つ[1]。 信念を、能力・行為・環境の間、アイデンティティとスピリチュアリティの間にあると考え、信念を変えることで真の潜在能力を発揮できるようになることを目指す[1]。神経言語プログラミングという名称は、人間の行動は神経学的な過程から始まること、人間は考えをまとめたり他者と交流する

  • 1