サブロウ丸

Sabrou-mal サブロウ丸

主にプログラミングと数学

2021-01-01から1年間の記事一覧

サーベイ; The quantum or not to quantum: towards algorithm selection in near-term quantum optimization

2020年の論文, "MaxCut algorithm selection"の検索でヒット; Moussa, Charles, Henri Calandra, and Vedran Dunjko. "To quantum or not to quantum: towards algorithm selection in near-term quantum optimization." Quantum Science and Technology 5.4…

networkit, networkx によるグラフのクラスタ係数の算出

networkit と networkxのクラスタ係数算出関数の比較 networkx ... networkx.algorithms.cluster.average_clustering — NetworkX 2.6.2 documentation netwokit ... networkit.globals Package Version ----------------------------- ----------- networkit…

networkit, networkx によるグラフの平均経路長の算出

networkitが速いらしい ( install pip install networkit) 内部アルゴリズムはC ++で記述され, openMPによるスレッド並列がなされているようです. 使用される並列数などは networkit.engineering こちらのAPIから確認と設定ができます. また networkit.nxada…

Cython コンパイルエラー

Cythonのコンパイルエラー デフォルトのgccのバージョンが古い可能性があります. 1. gccのバージョンを変える $ls /usr/local/bin/ や $ls /usr/bin/ でインストールされているgccのバージョンを調べて, 新しそうなやつを $export CC=gccXX で指定してから実…

Matplotlib 軸メモリの左肩のまとまりを無くす

"軸メモリの左肩のまとまり"とはなんのこっちゃですが, 図を見てくだい. コレです. 本記事ではこの"軸メモリの左肩のまとまり"を無くす方法を紹介します. で, これの正式名称がわからないので検索も困ったものですが, "Offset"という名称でした. これをoffに…

枝集合が単調増加するグラフの平均クラスタ係数更新方法

平均クラスタ係数とは 枝集合の単調増加 実装 保持情報 枝増加時の更新 テスト コード 出力 まとめ 参考 平均クラスタ係数とは グラフ構造の特徴づけ指標の一つです. ノードごとに, そのノードを含む三角形(クリーク)の割合を算出します. 具体的には グラフ,…

CBC ソルバ ログの可視化

最終的に描写するもの 暫定解値と, 下限値の時間推移 最適値 CBCログ 問題サイズなど Welcome to the CBC MILP Solver Version: 2.10.3 Build Date: Dec 15 2019 command line - xxxx At line 2 NAME MODEL At line 3 ROWS At line 2426 COLUMNS At line 145…

pulp制約の削除, 入れ替え

pulpにおける動的な制約の削除, 入れ替えのサンプルコード gist.github.com

スピン変数の積の線形表現

Qiitaに記事を投稿しました. qiita.com

pulpとamplifyの相互変換

Qiitaに記事を投稿しました qiita.com

Detecting Adversarial Examples

Adversarial example ... 入力にごくわずかな摂動(ノイズ)を加えてモデルの出力を狂わせたもの. 特にneural networkモデルに対してadversarial exampleが存在しやすい. このAdversarial exampleを"検出する"という観点の研究をまとめました. Detecting adver…

master mind by c++; part15 MPIによるプロセス並列

今回やること MPI install 超簡単なサンプル実装 データ集約(MPI_Gather)の例 逐次的なデータ送信の例 MPIの組み込み CMake Dockerfile run.cpp Github-action (CMake) 実験 machine A まとめ コード 参考 他の記事 今回やること MPIのサンプルコードの紹介,…

master mind by c++; part14 openMP

今回やること openMP 並列化 CMake find_package target_compile_options target_compile_definitions 実験 mac book machine A まとめ コード 参考 他の記事 今回やること openMPを用いた並列化 openMP 言わずと知れた, スレッド並列ツール. FortranとC/C++…

master mind by c++; part13 minmax, exp_minmax, entropy policy

今回やること 推論コードの決定 ランダムサンプリング minmax exp_minmax entropy 実装 推論手数の実験 colors 4 pins 4 colors 5 pins 4 colors 6 pins 4 colors 4 pins 5 colors 5 pins 5 まとめ コード 参考 他の記事 今回やること 新しい推論コード取得…

master mind by c++; part12 coverage test

今回やること カバレッジテスト カバレッジ(coverage)テストとは コンパイルオプション add_custom_target 実行 まとめ コード 参考 他の記事 今回やること カバレッジテスト カバレッジテスト カバレッジ(coverage)テストとは テスト関数が全ての関数,if分…

master mind by c++; part11 namespace

今回やること 背景 実験 まとめ コード 他の記事 今回やること namespaceの導入 背景 $ valgrind --tool=callgrind --callgrind-out-file=./callgrind.out ./bin/mastermind 4 4 --test $ gprof2dot -f callgrind ./callgrind.out | dot -Tpdf -o report.pdf…

master mind by c++; part10 smart pointer

今回やること コードのポインタ管理 smart pointerの導入 実験 まとめ コード 参考 他の記事 今回やること コードをポインタで管理 smart_pointerの導入 コードのポインタ管理 現状のプログラムではコード(Code)オブジェクトの生成と解放を実行中に多数行っ…

master mind by c++; part9 temaplate

今回やること template 実験 まとめ コード 他の記事 今回やること templateの導入, 及び color, hit-blow のデータ型の変更 template 関数の引数や返り値、またクラス属性の型を宣言時に可変にできる機能です. ピンの色とhit-blowのデータ型を今まではどち…

master mind by c++; part8 profiling( valgrind, gdb )

今回やること 実行速度計測について 計測コード 高速化オプションの追加 プロファイル Valgrind gprof Cmake, Debug, Release まとめ コード 参考 他の記事 今回やること プログラムの実行速度計測の追加 プログラムのプロファイリング( valgrind & gdb ) 実…

master mind by c++; part7 code generator

今日やること コード集合の列挙 例 実装 テストの作成 まとめ コード 参考 他の記事 今日やること ピンの色数, ピンの数, ピンの色の重複ありなしが与えられた時に 考えられるコード(ピンの配列)を全列挙する関数を作成する. これがあれば, どのようなピンの…

master mind by c++; part6 argument parser

今回やること argparse install プログラムへの反映 まとめ コード 参考 他の記事 今回やること コマンドライン引数を受け取る部分(argument parser)の実装. argparse google検索で一番上に出てきたので, 使ってみる. install git clone でコードをダウンロ…

master mind by c++; part5 Docker

今回やること Dockerとは Dockerの導入 Docker install Dockerfileの作成 Dockerイメージの作成と起動 root以外のuserで環境を構築したい場合 Github action - docker 対処したエラーたち apt install -y cmake pthread_getspecific まとめ コード 参考 他の…

master mind by c++; part 4 googletest

今回やること googletestとは googletestの導入 現状のディレクトリ構成 googletestのインストール テストプログラム ビルド googletestをインストールしている場合 googletestをインストールしていない場合 実行 ctest GitHub action の修正 まとめ コード …

master mind by c++; part 3 CMake

今回やること Cmakeとは CMake フォルダ構成 CMakeLists.txtの作成 ビルド バイナリ生成場所の指定 GitHub action - CMake テスト まとめ コード 参考 他の記事 今回やること CMakeの導入 github actionでのcmakeテストの追加 Cmakeとは Makeファイルなどの…

master mind by c++; part2 auto & decltype

今回やること auto 関数の返り値 コンテナの部分for文 関数の返り値の型 decltype まとめ コード 参考 他の記事 今回やること 型推論autoの導入 decltypeの導入 auto autoはc++11から導入された型推論機能で, c++14, c++17ではその適用範囲が増えました. c++…

master mind by c++; part 1 基盤プログラム

これから c++ プロジェクト実装の勉強がてら, master mind というゲームを解くプログラムを作成する様子を数回に分けてまとめたいと思います. 目標はなるべく標準で, かつモダンな実装です. これからの全体的な流れ master mind ( マスターマインド ) とは …

vim 複数ファイル操作

vim で複数ファイルを操作する方法のまとめ 1. 複数ファイルを開く vim -O abc.txt xyz.txt # 横向きに表示 vim -o abc.txt xyz.txt # 縦向きに表示 2. 条件指定で複数ファイルを開く 例えば, .h 拡張子のファイルを全てvimで開きたいとき vim -O $(ls *.h) …

shell の trace

小ネタです. シェルスクリプトを実行する際に -x オプションを使用すると, トレースがオンになり, 今実行されている行 が表示されます. 例えば中身が下記の tmp.sh を実行すると for i in 0 1 2 do echo $i done $ sh -x tmp.sh + for i in 0 1 2 + echo 0 0…