タグ

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

  • セブンイレブンで最適な食品を線形計画法を用いて決めたい - 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
  • AtCoder黄色を目指してやってきたこと - Qiita

    hamamuと申します。 AGC053で大成功して(再)入黄できたので(もう1か月たってしまいましたが)、色変記事として、黄色を目指してやってきたことを書きました。他の記事ではあまり見たことがない取り組みを選んで書いたので、お役に立つ部分があるかもしれません。特に「日語コーディング」は意外と多くの人に役立つかも知れないと思っているので、ぜひぜひ読んで下さいませ! 自己紹介 自分の特徴を並べてみます。 中年である(1975年生まれ) 子供の頃からアルゴリズムが大好きだった、パズルも大好きだった 仕事は研究開発関連でプログラミングは日常、高速化も日常茶飯事 かなり難しい問題でも時間をかければ結構解ける しかし解くのが遅い、特に実装が遅い 自分の年代では、競技プログラミングを知っている人がほとんどいません。参加者の中では相当高齢な方だと思います。レートに年齢をかけ算すると、一気に銀冠にジャンプ

    AtCoder黄色を目指してやってきたこと - Qiita
    sh19910711
    sh19910711 2024/05/08
    "紙に書いた方がよい局面と、頭でイメージした方が良い局面がありそう / 散歩時の考察力: 「歩きながら」がポイントな気がするのですが、試しに部屋の中でうろうろしてみると、なんかあまり集中できません" 2021
  • Dynamic Time Warping による時系列データの類似度計算 - y_uti のブログ

    台風の経路情報を題材にして、Dynamic Time Warping (DTW) を用いた時系列データの類似度の計算を試してみます。DTW は二つの時系列データの類似度を測る方法の一つで、英語版の Wikipedia に簡単な説明と実装例があります。 Dynamic time warping - Wikipedia, the free encyclopedia 過去の台風の経路情報は、各国の機関によって公表されているようです。たとえば、気象庁のデータや、米軍の Joint Typhoon Warning Center (JTWC) という機関のデータが、それぞれ以下のウェブページで公表されています。 気象庁|過去の台風資料 Joint Typhoon Warning Center (JTWC) これらのデータは各機関が独自の観測によって取得したもので、同一の台風を表す情報でも少しずつ数値が

    Dynamic Time Warping による時系列データの類似度計算 - y_uti のブログ
    sh19910711
    sh19910711 2024/05/06
    "DTW: 時系列データの類似度を測る / 台風: 各国の機関によって公表 + 同一の台風を表す情報でも少しずつ数値がずれ / 同じ台風であれば似たような経路情報になっているだろうと考え + DTW 距離が最小になるもの" 2015
  • ICFPC 2021 に参加しました - @nojima's blog

    ICFPC 2021 にチーム「グレースたなか」として参加しました。 メンバーは cos, nojima, qwerty, seikichi の4人です。また、チームのリポジトリは https://github.com/seikichi/icfpc2021 にあります。 問題 今年の問題はポーズをうまく変形して穴をくぐるというものです。穴をくぐることができれば成功で、ポーズの良さに応じた点数を獲得できます。穴の各頂点にポーズの頂点が近いほどそのポーズは良いとされています。以下の gif を見るとイメージしやすいでしょう。 ポーズは好きなように変形できるわけではありません。辺の長さが大きく変わるような変形は禁止されています。どれぐらいなら辺の長さが変わってよいかは問題ごとに定められています。また、頂点の座標は整数でなければなりません。 問題の一覧は公式サイトにあります。 1日目 今年の IC

    ICFPC 2021 に参加しました - @nojima's blog
    sh19910711
    sh19910711 2024/05/03
    "ICFPC 2021: ポーズをうまく変形して穴をくぐる + ポーズの良さに応じた点数 / 物理ベースソルバー: 壁に埋まったバネがすごい勢いで遠くにぶっ飛んでいく現象(ゲームでまれによく見るやつ)が多発" 2021
  • PuLPで解く最適割当問題と最適輸送問題 - Qiita

    Collecting pulp [?25l Downloading https://files.pythonhosted.org/packages/14/c4/0eec14a0123209c261de6ff154ef3be5cad3fd557c084f468356662e0585/PuLP-2.4-py3-none-any.whl (40.6MB) [K |████████████████████████████████| 40.6MB 75kB/s [?25hCollecting amply>=0.1.2 Downloading https://files.pythonhosted.org/packages/f3/c5/dfa09dd2595a2ab2ab4e6fa7bebef9565812722e1980d04b0edce5032066/amply-0.1.4-py3-none-any

    PuLPで解く最適割当問題と最適輸送問題 - Qiita
    sh19910711
    sh19910711 2024/04/29
    "最適割当問題: 「工場」と「店舗」が同じ数だけ存在 + 工場と店舗の契約は一対一しか認めない + 契約によって生じるコストの最小化 / 最適輸送問題で新たに加わった設定は、工場の「供給量」と店舗の「需要量」" 2021
  • DTW (動的時間伸縮法)の実装 - やったことの説明

    概要 自分の勉強のために、Dynamic Time Warpingを実装した。 正弦波データでいろいろプロットした後、気温のデータに適用した。 たぶんバグってないと思う。 はじめに 時系列データの類似度(距離)を計算するとき、単純には例えば各時刻での二乗誤差の平均などを求めることを思いつくが、これは以下のようなデータに対して、直感に反する結果になる。 %matplotlib inline import numpy as np import pylab as plt import seaborn as sns T = 150 t = .4 A = np.sin(np.array(range(T))/10) B = np.sin((np.array(range(T))/10 + t*np.pi)) C = np.zeros((T)) plt.plot(A) plt.plot(B) plt.pl

    DTW (動的時間伸縮法)の実装 - やったことの説明
    sh19910711
    sh19910711 2024/04/28
    "DTW; Dynamic Time Warping: 2つ時系列データの時刻をt1, t2 + 全ての組の誤差を計算 + 合計が最小になるような経路を求める / 類似度という関係データ、しかも対称行列だということでスペクトルクラスタリングをやる" 2017
  • 素人が量子プログラミングを2年間やって感じたこと - Qiita

    振り返り 気づけば量子プログラミングを始めて2年超。 量子コンピュータについて私見をまとめます。 過去のものは以下。 https://qiita.com/notori48/items/c0293496d72446fb15af https://qiita.com/notori48/items/1ee323ec8cbddba38ef8 やってきたこと 量子アルゴリズムを使って(古典の)問題を解く 論文数 受賞歴あり 特許数 社外連携(共同研究等) 後進育成 社内の量子人材確保への貢献。勉強会活発化、Ph.D呼び込み、若手のエンカレッジ Quantum hypeのキャンセル 人脈形成 若手飲み会開催など できてないこと 量子研究への質的な貢献。ユースケース探索じゃなくて。 最前線へ追い付く 量子コンピュータの実用を諦める 諦められない! 量子コンピュータの現状(Kuma視点) 今の量子コン

    素人が量子プログラミングを2年間やって感じたこと - Qiita
    sh19910711
    sh19910711 2024/04/24
    "古典的な問題をGroverアルゴリズムに持ってくるオーバーヘッド / 大量のデータを処理する系のアルゴリズムは、任意の古典データを入力するためのゲート操作が膨大であるため、ほとんどの場合で役に立たないのでは" 2023
  • Optunaからも使えるCMA Evolution Strategyの実装を公開しました。 | | AI tech studio

    2020.1.31 Optunaからも使えるCMA Evolution Strategyの実装を公開しました。 Covariance Matrix Adaptation Evolution Strategy (CMA-ES)は、ブラックボックス最適化において最も有望な手法の1つです。CMA-ESはハイパーパラメータ最適化にも使われていて [1, 2]、近年では、ハイパーパラメータ最適化においても、評価回数が許容できる場合や並列化環境がある場合には、ベイズ最適化を上回る性能を示すことが報告されています[6]。 CMA-ESをPythonで実装しGitHubで公開したのでその使い方や性能について紹介します。Optunaからも利用できるようになっているのでぜひハイパーパラメータの最適化に使ってみてください。 URL: cmaes: Lightweight Covariance Matrix Ad

    Optunaからも使えるCMA Evolution Strategyの実装を公開しました。 | | AI tech studio
    sh19910711
    sh19910711 2024/04/20
    "CMA-ES, cmaes: ブラックボックス最適化において最も有望な手法の1つ + ハイパーパラメータ最適化においても、評価回数が許容できる場合や並列化環境がある場合には、ベイズ最適化を上回る性能を示すことが報告" 2020
  • 機械学習モデルの逆解析のススメ - Qiita

    都内でデータサイエンティストしている者です。はじめてのアドベントカレンダーの投稿となります。今年もはやいものですね。 よければ、暇つぶしにどうぞ。 逆解析の何がウレシイの!? 皆さん、日々機械学習を用いて、データからあらゆるラベルであったり、数値であったりを予測していると思います。私も業務で、スコアリングだったり、売上だったり、様々指標を教師あり学習器を用いて、予測しています。しかし、予測値を出してプロジェクトが終わりということはなかなかありません。特に多いのは、なぜその予測値が出るのか?という説明性を求められるケースです。さらには、ほしい予測値を出すことはできるのか?といったケースもあります。この記事では後者に絞った話をします。 まず初めに、哲学的な問を投げさせてください。そもそも、モデル理解するとは何でしょう?何がどうなれば、理解したと言えるのでしょう?これにはいくつか主張はあるかと思

    機械学習モデルの逆解析のススメ - Qiita
    sh19910711
    sh19910711 2024/04/18
    "モデルの入力と出力を逆転させたいという話 / ブラックボックス最適化: Localsolver + 無料ツールであれば、hyperopt, Kurobako / 逆解析: yを出力するXを埋めるというのがやりたきこと + 入出力が逆転しているので、逆解析"
  • 対戦パズルゲーム「ゴドマチ」で理解する組み合わせゲーム理論とグランディ数 - アジマティクス

    チェスも、将棋も、囲碁も、コンピューターが人間に勝利して久しいですが、「コンピューター」つまり「計算機」というからには、それぞれのゲームに対して何らかの「計算」をして、一つ一つの手を指しているわけです。 メディアではよくコンピューター将棋などについて華々しく紹介されるけれども、じゃあ実際にそれらがどういう計算をしているのか?ということについては何も知らないという人がほとんどじゃないかと思います。 今回はそんなゲームのコンピューター対戦につながる初歩の初歩、ゲームを「計算する」とはどういうことなのか、というお話です。 この記事は、「数学ゲーム Advent Calendar 2018」20日目の記事です。 ゴドマチ 「ゴドマチ」という対戦パズルゲームがあります。略さず言うと「合同を待ちながら」。はい。そういうことです。 考案者の方によるルール解説はこちら↓ j344.exblog.jp ゴド

    対戦パズルゲーム「ゴドマチ」で理解する組み合わせゲーム理論とグランディ数 - アジマティクス
    sh19910711
    sh19910711 2024/04/05
    "ゴドマチ: 正規形ゲームであり、不偏ゲームであり、二人零和有限確定完全情報ゲーム / 組み合わせゲーム: 数あるゲームの中でも特に分析しやすく、それ故に特に研究が進んでいる" 2018
  • Seq2seqモデルのBeam Search Decoding (Pytorch) - The jonki

    この記事では,Pytorchで作ったseq2seq型の翻訳モデルを使って,ビームサーチによるデコーディングをします. OpenNMTやfairseqを使えば簡単に利用できるのですが,ビームサーチのためだけにこのようなフレームワークを使うのはちょっとなぁ,ということと,ビームサーチ自体はDNNに限らず様々な場面で役に立つ手法なので,この際ピュアに実装してみた,というのがこの記事です. ちなみに一般的なseq2seqのデコードは,各タイムステップで予測したtop-1の単語を,次ステップのデコーダーの入力に使います. ビームサーチでは,このようなgreedyな条件を緩め,上位K個の予測を使って,デコードしていきます.ビームサーチをよく知らんという方は,Andrew Ngの神説明が参考になると思います. C5W3L08 Attention Model, Andrew Ng. できたもの seq2s

    Seq2seqモデルのBeam Search Decoding (Pytorch) - The jonki
    sh19910711
    sh19910711 2024/03/09
    "ビームサーチをよく知らんという方は,Andrew Ngの神説明が参考になる (C5W3L08) / 上位K個の結果の取得は,pytorchであればtorch.topk関数で簡単に値とその引数を取得できる" 2020
  • 『Pythonではじめる数理最適化』の7章「商品推薦のための興味のスコアリング」をStanで解く

    この記事は確率的プログラミング言語 Advent Calendar 2023の12/8の記事です。 概要 『Pythonではじめる数理最適化』はいいですよね。親しみやすい実例、分かりやすい数式、きれいなPythonコードと三拍子そろっています (今年のアドカレで改訂版が近いうちに出ることを知りました)。 7章「商品推薦のための興味のスコアリング」では、「何日前に直近の閲覧があったか」と「閲覧回数」の二つの軸で興味のスコアを考えます。興味のスコアが単調減少であるという制約のもと、再閲覧の割合と推定値の二乗誤差を最小化するという凸二次計画問題として解いています。この記事ではStanで解くとこんな感じですというのを示します。メリットとしてベイズ信頼区間も推定されます。 データ 公式のリポジトリの7章のipynbファイルを途中まで実行して得られるデータフレームrf_dfを使用します。他の人の扱い

    『Pythonではじめる数理最適化』の7章「商品推薦のための興味のスコアリング」をStanで解く
    sh19910711
    sh19910711 2023/12/08
    "7章「商品推薦のための興味のスコアリング」 / 「何日前に直近の閲覧があったか」と「閲覧回数」の二つの軸 + 興味のスコアが単調減少であるという制約 / 再閲覧の割合と推定値の二乗誤差を最小化"
  • Rとomprパッケージで数理最適化を実装する - Qiita

    1. 概要 この記事では、R言語の数理最適化パッケージ「ompr」を使って、混合整数計画問題の実装方法を紹介します。 omprは比較的新しいパッケージであり、日語情報がまだ少ないため、この記事が皆さんの役に立てば幸いです。 pythonであればpulpが有名ですが、pulpと比較してomprの使い勝手や学習コストは同程度かと感じています。 むしろRならではのパイプ記法を使える分、Rユーザーには馴染みやすいかもしれません。 なお、記事では最適化の数理面での解説は行わず、Rでの実装方法のみ紹介します。 2. 必要なパッケージ install.packages("dplyr") install.packages("ompr") install.packages("ompr.roi") install.packages("ROI.plugin.glpk") ompr.roiは、ROI(R Op

    Rとomprパッケージで数理最適化を実装する - Qiita
    sh19910711
    sh19910711 2023/04/02
    "ompr: R言語の数理最適化パッケージ / pythonであればpulpが有名ですが、pulpと比較してomprの使い勝手や学習コストは同程度 / Rならではのパイプ記法を使える分、Rユーザーには馴染みやすいかも"
  • SantaとAHCと遺伝的アルゴリズム

    DeNAの2023/2/21のDS輪講の発表資料です。

    SantaとAHCと遺伝的アルゴリズム
    sh19910711
    sh19910711 2023/03/12
    "ヒューリスティックコンテストでGAが使われない理由: 交叉の方法を考えるのは焼きなましで近傍を考えるより難しい / 集合内の解の多様性 + 交叉を繰り返すうちに集合に含まれる解がどれも似たようなものに"
  • 巡回セールスマン問題(TSP)の面白いと思った応用3例(色・単語・音楽) - Qiita

    巡回セールスマン問題 巡回セールスマン問題(以下TSP)についてご存知でしょうか。 完全グラフと全ての辺の移動コストが与えられた上で、全ての点を1回ずつ通り、始点に戻る巡回路の中で総移動コストが最小となる巡回路を求める組合せ最適化の問題です。 今回の記事の趣旨とは異なるため、ソルバーの詳細及びTSPを解くアルゴリズムの紹介は他の文献に譲ります。(個人的には辺の移動コストが定数でないTSP (dynamic TSP)にも興味があるので追ってまとめたいと思います。実応用としては、渋滞が発生して移動時間が変わる等の状況を考慮することに相当します。) TSPの応用としてはその名についているように人が全ての与えられた場所の集合を回る、郵便物などの配送*やテーマパークで回る順番を考える問題が多いかと思いますが、それらの実空間で何かの対象物が移動する以外の面白いなと思った応用例について3つ紹介して行きた

    巡回セールスマン問題(TSP)の面白いと思った応用3例(色・単語・音楽) - Qiita
    sh19910711
    sh19910711 2023/02/18
    2022 / "色集合から"自然な"カラーパレットの作成 (SIGGRAPH'21) / Word Tour (NAACL 2022): Wordをなんと1次元ユークリッド空間に埋め込んでしまおうという研究 + 完全性を諦めて健全性を満たすように埋め込み"
  • 遺伝的アルゴリズムの使用は敗北である - 射撃しつつ前転 改

    学生時代、同じ専攻にいたある教官は、遺伝的アルゴリズムを利用した研究を嫌っていた。別に理由のないことではなく、遺伝的アルゴリズムはどんな問題でもだいたいそこそこうまくこなすが、出た結果をそこからさらに改善する方法がなく、オリジナリティを発揮する余地がないので、ある特定の問題を解くのであれば、もっと違う解法を探すべきである、という話だった。 まったくその通りだと思って、それから私は、遺伝的アルゴリズムを使ってなんたらかんたらという論文はあまり読まないことにした。もちろん、遺伝的アルゴリズム自体を研究するのであれば、話はこの範疇に収まらないのだと思う。また、実問題を解く際に遺伝的アルゴリズムを使うのは、まったく非難されるべきではなく、むしろ推奨される事だろう。 ところで、MCMCの「うまく行き方」というのは、遺伝的アルゴリズムのそれと何か似てるような気がするんだけど、気のせいだろうか。理論的な

    遺伝的アルゴリズムの使用は敗北である - 射撃しつつ前転 改
    sh19910711
    sh19910711 2022/12/30
    2008 / "MCMCの「うまく行き方」というのは、遺伝的アルゴリズムのそれと何か似てるような気がする / 「なんだかうまくいく」というあたりが、どうも似ているような。両方とも強力"
  • 最適化② - イラストロジックをortoolsで解いてみる - Qiita

    はじめに 稿では、PythonGoogleのortoolsを用いて最適化を学んでいきます。 私のようなプログラマーが理解しやすいよう、用語も意図的にそちらへ寄せています。 プログラムコードもなるべくそちらへ寄せています。 第二回の今回はイラストロジック(白黒)をCP-SATで解きます。 準備 題ではないためGoogleColaboratoryを使用することで、 ローカル環境への構築などはすっ飛ばすことにします。 記事投稿段階では Python3.7 ortools9.4 を使用しています。 ortoolsインストール Colab上で以下を実行します。

    最適化② - イラストロジックをortoolsで解いてみる - Qiita
    sh19910711
    sh19910711 2022/12/29
    "行方向、列方向で、問題に即して連続する黒を担保する必要 > 本稿では、CP-SATのoverlap制約を使用して実現 / 各interval変数の開始、終了値が重ならないよう制約してくれる"