われがわログ

最適化アルゴリズムとかプログラミングについて書きたい

視聴したアニメの管理

たまには雑記でも。 私は、見たアニメを自作のソフトで管理して以下のウェブページ上に公開しているが、それを紹介する。 estshorter.github.io アニメ履歴 こんな感じで、1クール毎にいくつのアニメをみたか(移動平均含む)と、年毎のレポート(視聴数、…

オススメのC++入門書【2020年8月版】

必要に迫られてC++に入門したので使用したテキストをメモしておく。 結論としては、「独習C++新版」か「江添亮のC++入門」がよい。 C++書籍の一覧は以下のサイトが詳しい。 cppmap.github.io プログラミング経験者を対象とした、C++17までカバーしている入門…

C++でのグラフ描画

C++から使用できるグラフ描画ライブラリを探したのでメモ。 matplotlib/MATLAB使いはmatplotlib-cppが一番使いやすいと思う。 ただし、Windows環境において、PythonをAnacondaでインストールしているとpython38_d.libがないためDebugビルドが通らない(38の部…

Eigenをcerealでシリアライズする

自分で若干コードを書かないとEigenオブジェクトをシリアライズできなかったのでメモ。 結論から言うと、C++17環境であれば以下のようにload(), save()を定義してやればよい。 #pragma once #include <cereal/cereal.hpp> #include <cereal/types/vector.hpp> #include <Eigen/Dense> #include <vector> namespace cereal { //E</vector></eigen/dense></cereal/types/vector.hpp></cereal/cereal.hpp>…

conda-forgeにパッケージを追加する手順

mesaをconda (正確にはconda-forgeチャネル)からインストールできるようにしたときの手順をまとめておく。 mesaの詳細は以下を参照のこと。 waregawa-log.hatenablog.com 手順 このサイトに書いてある手順に従えばよい。 具体的には conda-forge/staged-reci…

raspi-autosetupを更新した

以前、ラズパイを音楽サーバー向けにセットアップするビルドスクリプトを書いたが、それを更新したのでメモしておく。 qiita.com 更新点 対応OSをRapsbian strechからRaspbian busterに変更 MPD v0.21.xのビルドに対応(autotools -> mesonに変更されている) …

DotMapを使ってdictにドット"."でアクセスする

tomlから設定を読み込むとき、いちいち`dict["key"]`のようにアクセスするのが面倒になってきた。 `dict.key`のようにアクセスしたいなあと思ってググってたら、DotMapという、まさにその機能を実現するパッケージがあったのでメモしておく。

matplotlibによるシミュレーションの可視化

matplotlibでシミュレーションを可視化する手法は複数あるが、ここではそれをまとめ、私家版ベストプラクティスを述べる。 手法1 plt.pause()を使う example 以下では、シミュレーションモデルを表す変数modelは、適切に初期化されていると仮定する。 import…

Python向け可視化ライブラリの調査【2020年1月版】

OpenAI Gymでは以下のような形で可視化できるが、どう実現しているのか気になった。そこで、Gymを含む強化学習ライブラリや、ロボットシミュレータなどが使用している可視化ライブラリを調査し、どの可視化ライブラリを使うべきかをまとめる。

Pythonシミュレーションにおけるlogging活用のススメ

最近、業務でPythonシミュレーションを行っており、Python標準ライブラリのloggingが便利だったのでメモしておく。

シミュレーション用パラメータファイルとしてのtoml形式のススメ

シミュレーションのパラメータファイルを外部化しておくと、メンテ性、再現性などの面でなにかと都合がよい。 設定ファイル用のファイル形式としてはyaml、jsonなど様々なものが存在するが、 ここではシンプルに書ける[toml](https://github.com/toml-lang/t…

【感想&メモ】 Effective Python 2nd Edition

Effective Pythonの第二版(Effective Python: 90 Specific Ways to Write Better Python)を読んだので、簡単な感想とメモを残しておく。

オススメのRust入門法【2019年11月版】

プログラミング言語「Rust」に入門したので、後続のためにRust入門情報をまとめておく。

Visual Studio 2019でのMSBuildの使い方メモ

MSBuildでコマンドラインからコンパイルしようとしたが、Qiita情報(VS2017)だと`/p:Configuration=Release;Platform="x64"`オプションをMSBuildが認識しなかったので解決法をメモ。

Anaconda + VS Code + Windows環境におけるRust のデバッグ環境構築のはまりどころ

VS Code+Windows上にRustのデバッグ環境を構築するため、CodeLLDBのv1.4.0(2019/11現在の最新版)を導入した。 CodeLLDBの実行にはPythonが必要だが、python.orgから配布されているPythonが想定されており、Anaconda配布のものを使用するには一工夫必要だった…

GitのリモートリポジトリをNAS上に置く方法

Git

まず、NAS中の任意の場所(ここでは$NAS_ADDRを想定)にリモートリポジトリを以下のコマンドで作る。 --bareを指定することで、履歴情報などのみのリポジトリを作成できる。 Gitのリモートディレクトリの名称は任意だが、慣例的には接尾辞に.gitをつける。 …

mesaによるマルチエージェントシミュレーション

Pythonで実装された、マルチエージェントシミュレーション用ライブラリの一つが「mesa」である。 普段お世話になっているこのライブラリの布教を目的に、鳥の行動モデルをmatplotlibで可視化した。

PowerShell上におけるlatexdiffの出力結果の文字化けへの対処

TeX

latexdiffは、2つのTeXファイルの差分を、PDFにコンパイル可能な形で出力するプログラムであり文書校正に有用である。 この記事では、ネット情報を基にlatexdiffをPowerShell上で実行したら、出力結果が文字化けしたことへの対処をメモする。

TeXstudioからSumatra PDFを呼ぶときにフォーカスを移さない方法(forward searchなし)

TeX

まとめ TeXstudioの外部PDFビューアに以下のコマンドを設定すればよい。 \dde:///"C:\Program Files\SumatraPDF\SumatraPDF.exe":SUMATRA/control/[Open("?am.pdf", 0,0,1)] 詳細説明 私はTeXエディタとしてTeXstudioを使っており、その外部PDFビューワとし…

最適制御問題の求解アルゴリズムの実装を公開しました

以下のページで、最適制御問題の数値解法の一つであるSCGRA (Sequential Conjugate Gradient-Restoration Algorithm)のMATLAB実装を公開しました。 github.com 最適制御問題の数値解法には非線形計画法に帰着させる直接法と、変分法に基づく間接法があり、こ…

PMA-60の電源不具合

Denonのプリメインアンプ「PMA-60」を購入したが、電源まわりに不具合があったためメモ。 Denonに問い合わせた結果、初期不良とのことで交換となった。交換後は正常に動作している。 DENON プリメインアンプ USB-DAC搭載/ハイレゾ音源対応/ヘッドホンアンプ…

差分更新によるmatplotlibのアニメーションの高速化

業務で、シミュレーション結果をmatplotlibによりリアルタイム描画する必要に迫られた。 最初はグラフ全体を毎ステップ再描画していたが、差分更新に変えたら動作がめっちゃ速くなって感動したのでメモ。

分布推定アルゴリズムあるいは確率モデル遺伝的アルゴリズム

分布推定アルゴリズム(estimation of distribution algorithm: EDA)、あるいは確率モデル遺伝的アルゴリズム(probabilistic model-building genetic algorithm: PMBGA)と呼ばれる、ヒューリスティックな最適化アルゴリズムについて調べる機会があったの…

「StanとRでベイズ統計モデリング」のメモ

随所で「確率的プログラミング」という言葉を見かけ、気になっていたので本書を読んだ。そのときのメモ。

機械学習のための連続最適化 まとめ

機械学習のための連続最適化を読んでいる途中ですが、自分用にまとめます。

conda-forgeからのPythonパッケージインストール

conda-forgeからインストールするとき、`conda install -c conda-forge hogehoge`としたら要らないパッケージまでインストールされそうになったのでメモ。

Introduction to Applied Linear Algebra まとめ

My Enigmaさんに触発されてIntroduction to Applied Linear Algebraを読んだのでそのメモ。 ベクトル、行列のあたりは知っていることが多かったので、最小二乗法だけまとめます。

既存conda環境へのJulia (v1.0.3)のインストール

JuliaからPythonを呼び出す場合、Juliaはcondaを自動的にインストールする。 だが、自分の環境には既にcondaが入っていたため、これをJulia側に認識させる方法をまとめた。