タグ

最適化に関するsh19910711のブックマーク (98)

  • SymPy で量子プログラミングを体験してみましょう - Qiita

    はじめまして、こんにちは。OpenQLプロジェクト1の中のひと、です。 記事の対象は、次のような方を想定しております。 量子コンピューターや量子プログラミング2に興味がある方 基礎的なPythonの知識がある方 数式に極度のアレルギーのない方 量子コンピューターの仕組みや計算方法をなんとなく知っている方 (記事の前に、@tsujishin さんの「量子情報科学序論 IBM Qを動かして学ぶ量子コンピュータ」を事前に読んで頂くと、より理解が深まると思います) それでは、始めましょう。よろしくお願いします。 数学・科学計算には欠かせない!?「Mathematica」 皆さんは、Mathematica というソフトウェアをご存知でしょうか。 例えば、何か計算式をプログラムで扱おうとしたときに、一般的なプログラムが数値計算を得意としているのに対して、$x$が含まれる関数式のまま扱うことができる

    SymPy で量子プログラミングを体験してみましょう - Qiita
    sh19910711
    sh19910711 2024/06/11
    "sympy: 数学計算に便利な基礎的な利用用途とは別に、様々な応用計算が標準で含まれ / シミュレーション上の理論的な計算では、qapplyまで行えば、目的が達成することが多い / 観測のためのメソッドも備わって" 2017
  • CrystalでAtCoder青色になりました(色変記事) - Qiita

    AtCoder競技プログラミングを始めて二年半で青色コーダーになりました。使用言語はCrystalです。この記事はいわゆる色変記事ですが、Crystal言語推しを目的としています。 自己紹介 54歳で競技プログラミングを始めて56歳で入青 帯、一人娘(大学院)あり 元ゲーム開発者、現金融系SIer技術系管理職 Perl生まれのRuby育ち。毎年一つは新しい言語を覚えたい。 数学科出身 AtCoder開始~入緑まで 会社の後輩に紹介されてAtCoderの存在を知り興味を持って始めました。趣味でも仕事でも使用していたRubyを選択。ABC144から始めましたが、ビギナーズラックで水パフォを取り、毎週参加するようになっていきます。丁度10回目で入緑。 緑~水まで 件の後輩氏は「1年で青になる」と宣言して会社を辞めてしまったのですが、当方は世界の腕自慢と競えるオンラインゲームの感覚で、趣味

    CrystalでAtCoder青色になりました(色変記事) - Qiita
    sh19910711
    sh19910711 2024/06/09
    "会社の後輩に紹介されてAtCoderの存在を知り / 後輩氏は「1年で青になる」と宣言して会社を辞めてしまった / AGC044のJokerで壁に当たりました。どんなに正しくコードを書いてもRubyではTLEが取れません" 2022
  • AdaCos: Adaptively Scaling Cosine Logits for Effectively Learning Deep Face Representationsを読んだ - Qiita

    AdaCos: Adaptively Scaling Cosine Logits for Effectively Learning Deep Face Representationsを読んだ論文読みMetricLearningFaceRecognition CVPR2019(Oral)に採択されたAdaCos: Adaptively Scaling Cosine Logits for Effectively Learning Deep Face Representationsを読んだので記録を残します。 図と表は論文から引用しています。 間違い等お気づきの点ありましたらコメントいただけると幸いです。 事前知識 昨今話題のmetric learningの手法です。metric learningについてはこちらが非常にわかりやすくまとめてくださっているのでそちらを参考にしてください。 概要 A

    AdaCos: Adaptively Scaling Cosine Logits for Effectively Learning Deep Face Representationsを読んだ - Qiita
    sh19910711
    sh19910711 2024/06/08
    "距離学習には手動で決めるハイパーパラメータがあり、これが実験の結果に大きく影響 / AdaCos: そのハイパーパラメータを自動で決定 + Adaという言葉が入っているので察しがつく" 2019
  • AtCoderで青色になったので、yukicoderをお勧めしてみる - Qiita

    概要 AtCoderのコンテストに参加してから2年とちょっとの時間をかけて青色コーダーになりましたH20と申します。 この記事はいわゆる色変記事ですが、yukicoderへの参加を促す目的がメインとなっています。 まだyukicoderに登録していない人や、登録した後あまり問題を解いてない人が、この記事を機にyukicoderを利用していただければと考えています。 欲を言えば作問にも興味を持ってもらえるとなお嬉しいです。(さらに強欲になれば5/20に開催する予定のコンテストの参加も…ってちょっと強引だったですか) はじめに 競技プログラミングで楽しむ上で大事なのは、モチベーションを保つことだと考えています。 例えば、既存の問題を解く勉強を続け、コンテスト番では新たに学んだアルゴリズムを利用して今まで解けなかった問題が解けるようになり、AtCoderのレートが上がるような好循環が続けばずっ

    AtCoderで青色になったので、yukicoderをお勧めしてみる - Qiita
    sh19910711
    sh19910711 2024/06/08
    "yukicoder: 良問を探すためにもまずはFav順で問題を探すことをお勧め / 実際に作問して、Testerさんによって問題の改善案を提示してもらい、あるアルゴリズムの理解が一層深まった" 2022
  • 量子計算ライブラリの量子回路を相互変換するライブラリ 「naniwa」を作ってみた - Qiita

    はじめに 量子ソフトウェア研究拠点主催の量子ソフトウェア勉強会のグループワークで、量子計算ライブラリの量子回路インスタンスを相互変換するライブラリ 「naniwa」を作成した。この記事では、naniwaの概要とその使い方について説明したいと思う。 対象読者 qiskitやqulacsなどの量子計算ライブラリを使ったことがある人 複数の量子計算ライブラリで回路インスタンスを生成してる人 ある回路インスタンスを別ライブラリの回路インスタンスに変換したい人 naniwaとは pythonには、qiskitやqulacsなどの量子計算ライブラリが充実している。 しかしそれ故に、それぞれのライブラリで同じ回路を使いたくなった時に別のライブラリで量子回路を書き直さなければいけない。 簡単な回路ならすぐかけるが、複雑な量子回路を書き直すのはなかなかに大変である。 この問題を解決するのが、量子回路相互変換

    量子計算ライブラリの量子回路を相互変換するライブラリ 「naniwa」を作ってみた - Qiita
    sh19910711
    sh19910711 2024/06/08
    "量子計算ライブラリ: qiskitやqulacsなど + それぞれのライブラリで同じ回路を使いたくなった時に別のライブラリで量子回路を書き直さなければいけない / Qiskit、Qulacs、Braket間の量子回路の相互変換" 2022
  • セグメント木を使う

    競技プログラミングに慣れ親しんでいる方なら、セグメント木というデータ構造について、一度は聞いたことがあるでしょう。この記事は、セグメント木の構造を理解する必要はないが、使い方を知っておきたいという方のために書かれています。 この記事では、まずセグメント木について紹介し、それからセグメント木を実際に使う際の技法について紹介します。 セグメント木とは セグメント木は、固定長配列にいくつかの操作を加えたデータ構造です。セグメント木は、基的には以下の操作を時間計算量 O(\log n) ですることができます。 i 番目の要素に x を代入 i 番目の要素を取得 l 番目の要素から r 番目の要素のモノイド積[1]を計算 ここで、モノイドを知らない方もいるかもしれませんので、モノイドについて紹介します。 モノイド モノイドは、実数や複素数の足し算や掛け算、文字列の連結といった、集合とその演算をまと

    セグメント木を使う
    sh19910711
    sh19910711 2024/06/08
    "セグメント木: 固定長配列にいくつかの操作を加えたデータ構造 + 𝑙 番目の要素から 𝑟 番目の要素のモノイド積を計算 / 累積和と同様の操作が可能 + セグメント木と累積和の違いは途中で更新ができる" 2022
  • 雑誌「Interface」で量子コンピュータの連載を始めました - Taste of Tech Topics

    こんにちは~。 ツカノ@snuffkinです。 6/25(火)に発売されたCQ出版社さんの雑誌「Interface」2019年8月号から、量子コンピュータ入門の連載を始めました! 連載のタイトルは「動かしながら始める量子コンピュータ」です。 連載を始めた背景 量子コンピュータについて興味を持ち、や雑誌記事を読んだ方もいらっしゃると思います。 ただ、次のような感想を持つ方もいるように思います。 ビジネス書だと量子コンピュータの雰囲気は書いてあるが、理解した気になれない。 専門書を手に取ってみたけれど、数式が難しくて理解できない。 この連載では「普通のプログラマ」の方に向けて、手計算やPythonで動作を確認しながら理解する内容にしました。 内容は次のサイトからちらっと確認できます。 interface.cqpub.co.jp 連載を読んで量子コンピュータにもっと興味が出てきた方には、次の

    雑誌「Interface」で量子コンピュータの連載を始めました - Taste of Tech Topics
    sh19910711
    sh19910711 2024/06/08
    "「Interface」2019年8月号から、量子コンピュータ入門の連載を始めました / タイトルは「動かしながら始める量子コンピュータ」 / 手計算やPythonで動作を確認しながら理解する内容" 2019
  • GurobiとPythonで数理最適化 - matsulibの日記

    数理最適化ソルバーGurobiにはPython含む複数の言語のインターフェースが用意されていて、 gurobipyモジュールを使うと使い慣れたPythonがソルバーのモデリング言語になる。 例題 http://www.fujilab.dnj.ynu.ac.jp/lecture/system2.pdf あるレストランで,手持ちの材料からハンバーグとオムレツを作って利益を最大にしたいと考 えている.手持ちの材料は, • ひき肉 3800 [g] • タマネギ 2100 [g] • ケチャップ 1200 [g] であり,それぞれの品を作るのに必要な材料の量は, • ハンバーグ 1個あたり,ひき肉 60 [g],タマネギ 20 [g],ケチャップ 20 [g] • オムレツ1個あたり, ひき肉 40 [g],タマネギ 30 [g],ケチャップ 10 [g] であるとする.(他に必要な材料は十分な量

    sh19910711
    sh19910711 2024/06/08
    "gurobipy: 使い慣れたPythonがソルバーのモデリング言語になる / 一般的なモデリング言語(AMPLなど)を覚えなくて済む / 結果を取り出してソースコードに手打ちしたり別途バッチ処理を書いたりする手間が省ける" 2013
  • 数列上の数の組み合わせであって不等式を満たすものの数を数える - Learning Algorithms

    まず数列 $a$ の転倒数を求める問題を考えます より正確には $i < j$ を満たす組 $(i, j)$ であって $a_i > a_j$ となるようなものの数を求める問題で,これは fenwick tree などのデータ構造を使って以下のように解けます fenwick_tree<long long> ft(MAX); long long ans = 0; rep(i, n) { ans += ft.sum(a[i] + 1, MAX); ft.add(a[i], 1); } まず今見ている値を不等式の右辺の値として計算結果に加算して,次に今後その値が不等式の左辺としてどれくらい結果に寄与するかというのを考えているだけです ところで上記を踏まえると,一般に次のような問題が同様に解けます $i < j$ を満たす組 $(i, j)$ であってなんらかの制約 $f, g$ について $f(

    数列上の数の組み合わせであって不等式を満たすものの数を数える - Learning Algorithms
    sh19910711
    sh19910711 2024/06/07
    "転倒数: i < j を満たす組 (i, j) であって a_i>a_j となるようなものの数 / fenwick: 今見ている値を不等式の右辺の値として計算結果に加算 + 今後その値が不等式の左辺としてどれくらい結果に寄与するか" 2020
  • 競プロにおける「実験コード」の書き方

    競技プログラミングにおける「実験コード」の書き方について、自分なりにどのような点に気を遣って書いているかをまとめたスライドです。 (このスライドは「競プロ道場鯖」にて 2022/04/30 に行われたLTで使用されたものです。) 配布資料はこちら : https://drive.google.com/file/d/1Po6310ABSxUVf1csmIJWNztnmqhEo677/view?usp=sharing

    競プロにおける「実験コード」の書き方
    sh19910711
    sh19910711 2024/06/07
    "実験コード: 小さな問題を実験的に解いて観察する + 計算量が悪くても良い / 問題から順向きに解法を導くのが理詰めだとすると、答え(結果)から逆向きに解法を導くのが実験 / 解を眺めるとパターンが見えてくる" 2022
  • 量子コンピュータのシミュレータをRustで作る

    目的 最近、量子コンピュータを勉強しています。一般的な意味でいう「なんもわからん」状態ですので、エンジニアがいう「完全に理解した」状態になるために、量子コンピュータのシミュレータを作ってみる事にしました。 せっかくなので、Rustで実装することにしました。量子コンピュータもRustもわからない事だらけなので、以下を参考にしていみました。 qulacs/qulacs: Variational Quantum Circuit Simulator for Quantum Computation Research hajifkd/rusq: Quantum computing simulator in Rust、qulacsの簡易版をRustで移植して、とりあえずqulacsのチュートリアルを実装できる程度をめざします。 今回実装したコードは、こちらになります。 量子コンピュータのシュミレー

    量子コンピュータのシミュレータをRustで作る
    sh19910711
    sh19910711 2024/06/07
    "複素数の状態ベクトルに対して、行列で表現される量子ゲートを適用して計算していく / ロジックは、京都大学数理解析研究所の講究録 1120巻の量子計算機シミュレーションシステムを参考" 2022
  • オイラーツアーした木に対するクエリ - Qiita

    この記事に新規性はありません。maspyさんの記事、beetさんの記事がとても分かりやすいです。また、紹介しているテクニックはmaspyさんの記事で紹介されているものです。 maspyさんの記事: Euler Tour のお勉強 beetさんの記事: 2種類のEuler Tourについて オイラーツアーとは? 根付き木を根からDFSして根に戻ってくるような経路(の探索)。競技プログラミングの文脈ではこの行きと戻りの経路について以下のような情報を記録しておくきRMQやRSQを適応することで木に対するいくつかのクエリを高速に処理できる。 各頂点のinとoutの時刻 それまでに辿った辺や頂点の重さなどの情報を記録 各頂点の深さの情報 用語 行きがけ: あるノードから子に移動する 帰りがけ: 子からその親ノードに移動する 実際の例 1を根とする以下の木があるとします。 時刻0は根である1にいてDF

    オイラーツアーした木に対するクエリ - Qiita
    sh19910711
    sh19910711 2024/06/07
    "オイラーツアー: 根付き木を根からDFSして根に戻ってくるような経路 + RMQやRSQを適応することで木に対するいくつかのクエリを高速に処理できる / 各頂点のinとoutの時刻 + 辿った辺や頂点の重さ + 各頂点の深さ" 2020
  • 機械学習による適応的実験計画

    ベイズ最適化と能動的レベル集合推定の基礎と実践に関するセミナー資料

    機械学習による適応的実験計画
    sh19910711
    sh19910711 2024/06/06
    "従来の実験計画: 予め実験を行う候補を列挙(実験計画法) + 候補条件に対しては網羅的に実験 / 不確実性: 適応的実験計画に有用な情報をもたらす + 知識不足に起因(データ不足) or 偶然変動(ノイズ)" 2023
  • 最小二乗法でシステム同定やってみた - Qiita

    はじめに 私が制御工学を学び始めたとき、「これを学んでいけばモータを自由に制御できるようになるのか!」と思い、古典制御、現代制御と勉強を続けましたが、「これってモデルがある前提で説明してくるけど、そもそもモデルってどうやって求めるの?」という疑問が湧きました。制御工学を学んでいる人でもこういった疑問を持つ人は多いのではと思ったので、今回は実際に水平1軸アームシステムを対象に、システム同定を行い、モデルの妥当性を簡単に評価したいと思います。 目次 1. システム同定とは 2. 水平1軸アームシステムのモデル 3. 同定入力の選定 4. システム同定の手法 5. システム同定 6. モデルの妥当性評価 1. システム同定とは 制御工学を勉強してPID制御やら最適レギュレータやら様々なコントローラ・オブザーバの設計方法を知ると思います。しかしそれらを設計するとき、必ず必要になるのが数学モデルです

    最小二乗法でシステム同定やってみた - Qiita
    sh19910711
    sh19910711 2024/06/06
    "システムに適当な入力を与え、その出力を観測することで、入出力間の関係を表す数学モデルを決定する / 教科書や授業ではさらっと「モデルのパラメータはこうなっています」、と流されることが多い"
  • プリム法ベースのシュタイナー木 - bowwowforeachの日記

    AHC020でシュタイナー木を作るような問題がでました。そこでプリム法ベースのシュタイナー木を作ることがあったのでその方法を説明します。 シュタイナー木とは グラフとターミナルと呼ばれる頂点集合が与えられたとき、ターミナルを全てつなぐ木のことをシュタイナー木といいます。 頂点A,B,Cがターミナル シュタイナー木の例 ターミナルでない頂点はつないでもつながなくても構いません。 シュタイナー木のうちコストが最小のものを最小シュタイナー木といい、これを求めるアルゴリズムとしてDreyfus-Wagner法というものがあるらしいです。しかしこの方法はとても計算量が多いです。 今回紹介するプリム法ベースのシュタイナー木は、計算量は少なくて済みますがコストが最小になるとは限りません。ヒューリスティックコンテストにおける焼きなましの最中など、厳密さより速度が優先されるようなケースでの使用を想定していま

    プリム法ベースのシュタイナー木 - bowwowforeachの日記
    sh19910711
    sh19910711 2024/06/06
    "シュタイナー木: ターミナルと呼ばれる頂点集合が与えられたとき、ターミナルを全てつなぐ木 / プリム法ベースのシュタイナー木は、計算量は少なくて済みますがコストが最小になるとは限りません" 2023
  • Heuristic黄色になれたので今までのAHCを全て振り返ってみる - G4NP0Nのブログ

    先日行われたHACK TO THE FUTURE 2024 (AtCoder Heuristic Contest 027)でHeristicレーティング黄色になりました! … Algo入青から2年半ぶりに新しい色に到達できたのでうれしいです。 ヒュの色変記事ってあんまり見たことないので書いてみようかなと思ったんですが、何書けばいいのかわからなかったので、今までのAHCを自分なりに振り返ってみようかなと思います。記憶とツイートが頼りなので嘘を書いてたらすみません。 注意! 以下、AHC過去問のネタバレが大量に含まれます Introduction to Heuristics Contest - AtCoder Contest Scheduling CodinGame SPRING CHALLENGE 2020に参加してみたら思いのほか楽しくて、アルゴ以外のジャンルにも挑戦してみようかなーという

    Heuristic黄色になれたので今までのAHCを全て振り返ってみる - G4NP0Nのブログ
    sh19910711
    sh19910711 2024/06/06
    "Introduction to Heuristics Contest: 解説PDFが非常に有用 / 経路を部分的に破壊して再構築する手法を勉強していたのがAHC027の勝因 / AHC024: Intoroduction To HeuristicやAHC005で基本的な焼きなまし法を練習した後のチャレンジ問題" 2023
  • セブンイレブンで最適な食品を線形計画法を用いて決めたい - Qiita

    背景 基情報技術者試験に合格後、新しく勉強する内容を決めたいと思い大学時代に1mmだけ触れたpythonの勉強を始めた。 そこでQiitaのpython関連の情報を調べていると気になる投稿を発見。 マクドナルドで一日分の栄養を取れる組み合わせを計算したら衝撃の結果に こちらの投稿内容が衝撃的でとても面白かったことと、全人類が好きであろうコンビニ大手のセブンイレブンの商品で試してみたら面白そうと思い勉強を始めてみた。 (セブンイレブン以外のコンビニが詳細な栄養価を載せていなかったため他のコンビニでは諦めました) 目的 セブンイレブンの品から線形計画法を用いて一日の最適な品を選ぶ。 流れ セブンイレブンの商品をスクレイピングし 商品名 価格(円) 熱量(kcal) たんぱく質(g) 脂質(g) 炭水化物(g) 糖質(g) 物繊維(g) 塩相当量(g) を商品別に抽出する。 得られたデ

    セブンイレブンで最適な食品を線形計画法を用いて決めたい - Qiita
    sh19910711
    sh19910711 2024/05/25
    "数値だけ見ると中々理にかなった結果 + もやしは1袋250g入っているので、一日3,250g食べなければなりません / データの範囲外のことは当然計算できないため、食品の見た目がかなり茶色くなってしまった" 2021
  • 大学が私に与えた影響 - ながめも

    大学は、私の人生にどのような影響を及ぼしたのか、卒業してからよく考えている。世間では就業機会や生涯年収といった実利的な側面についての言及が多いが、それらはあくまで社会構造に起因するものであり、今回私が考えたいのは、人格や考え方に対する、より個人的で抽象的な側面である。 大学にいくと何が変わるのかを考えるには、変わる前、すなわち大学入学前から振り返る必要がある。自分語りが多く含まれる可能性が高いが、個人のブログなので、ある程度はお許し願いたい。自分語りが好きな方に読み進めていただけたらと思う。 小中高 埼玉県に生まれ、公立の小中学校と私立の高校に通っていた私は、とにかく丸暗記が得意で、中学に上がってからは常に学年で成績トップだった。テストの数週間前から教科書とノートを丸覚えし、得点率は90%を越えていた。教科書の文の穴埋め問題なども、一言一句すべて覚えているため、考える必要もなかった。 学

    大学が私に与えた影響 - ながめも
    sh19910711
    sh19910711 2024/05/12
    "生物のリアルの実験と違い、簡単なプログラムならバグってもすぐに治せる / 競技プログラミングで扱うアルゴリズムの有用性はすぐに理解できた / ゲノムのマッピングツールで応用されていることを知っていた" 2021
  • PuLP で変数の和や内積を計算する際の注意点 - Qiita

    TL; DR PuLP で大きなモデル作るなら、numpy や pandas の sum や dot の使用は避ける。最低でも pulp.lpSum と pulp.lpDot を使い、場合によっては LpAffineExpression を自前で定義する。 はじめに 数理最適化、特に MILP のモデリングツールとして知られている PuLP だが、Python 標準の sum や numpy.sum を使うと、モデルの構築が非常に遅くなるケースがある。今回、次の計算の速度を測定した。 ベクトルの要素の総和 ベクトル同士の内積 実験環境は、Google Colaboratory の無償版。Jupyter notebook 上のセルで、10 回走らせたうちの最良の計算時間を採用した(%%timeit -r 10 -n 1)。Python のバージョンは 3.7 で、各ライブラリのバージョンは下

    PuLP で変数の和や内積を計算する際の注意点 - Qiita
    sh19910711
    sh19910711 2024/05/09
    "PuLP: 大きなモデル作るなら numpy や pandas の sum や dot の使用は避ける / 和や内積の計算は、PuLP の関数を使うか、できれば LpAffineExpression を再定義 / numpy の内積だとかなり遅い" 2021
  • 野菜だけで一日分の栄養を取れる組み合わせを計算したら衝撃の結果が! - Qiita

    そして目的は、一日で必要な栄養素を満たす最も安い野菜の組み合わせとします。野菜は高いですからねー。野菜の価格は東京都中央卸売市場の市場統計情報から令和3年6月の平均価格を用います。さて、計111種類の野菜データが揃いました! 解く AIで解きます。嘘です。ごめんなさい。おなじみですが言ってみたかっただけです。Pythonの無料ソルバーPuLPで解きます。 import pulp # 問題の定義 problem = pulp.LpProblem(name="vesi1", sense=pulp.LpMinimize) # 変数の定義 AA = pulp.LpVariable(name = "AA", lowBound = 0, cat="Continuous") AB = pulp.LpVariable(name = "AB", lowBound = 0, cat="Continuous")

    野菜だけで一日分の栄養を取れる組み合わせを計算したら衝撃の結果が! - Qiita
    sh19910711
    sh19910711 2024/05/09
    "一日で必要な栄養素を満たす最も安い野菜の組み合わせ / 栄養素のデータは ~ 食品成分データベース + 価格は東京都中央卸売市場の市場統計情報 / もやし: はくさいと比べると単位あたりの価格が高く" 2021