技術情報
研究室内において,研究・論文執筆に必要となる技術情報の覚え書き.
Emacs関連
mac上でPDFから濁点や半濁点がついた文章をコピー&ペーストすると,2文字に分離されてしまう問題
当該文章をEmacs上で選択した状態で
M-x ucs-normalize-NFC-region [RET] (あるいは M-x -NFC-r [RET])
Linux関連
UNIX/Linuxコマンドリファレンス (外部サイト;「テキスト関連」がとても参考になる)
F : ファイルの最終行を読み続ける (「tail -f」コマンドと同様).
less -S <ファイル名> : 画面幅に納まらない行は折り返しを行わずに表示.
less -N <ファイル名> : 行番号を表示.
マッチする文字列を置換する例: sed -e s/いぬ/犬/ <ファイル名>
明示的にログイン/ログアウトすることなく,リモートホストでコマンドを実行する方法
ssh リモートホスト名 "コマンド名"
シェルのリダイレクト(bash編)
command >file 2>&1 # 標準出力とエラー出力を共に「file」に出力する場合
command 1>file1 2>file2 # 標準出力を「file1」に,エラー出力を「file2」に出力する場合
シェルのリダイレクト(tcsh編)
command >& file.txt # 標準出力とエラー出力を共に「file」に出力する場合
( command > file1 ) >& file2 # 標準出力を「file1」に,エラー出力を「file2」に出力する場合
tar+gzによる(複数)ファイルの圧縮
tar czvf 保存ファイル名.tgz 圧縮したいファイル1 圧縮したいファイル2 ...
tar.gzファイルの解凍
tar xzvf ファイル.tgz
TeX関連
YaTeX (やてふ)による入力支援 (外部サイト)
inkscapeを使ってsvg -> pdf 変換
inkscape -D -z --file=image.svg --export-pdf=image.pdf
gnuplot関連
gnuplotのスクリプトを使用したグラフの一発作成
.plt拡張子のファイルを作成(ex:test.plt)
作成したファイルに、gnuplotで実行したいコマンドを入力(ex:y=sin(x)のグラフを書く)
set xrange [0:10]
set yrange [-1:1]
plot sin(x)
端末でgnuplotを起動する
起動したら、以下のコマンドを打つ(ex:test.pltで実行する場合)
load "test.plt"
これで一発でグラフが完成!!
gnuplotのコマンドリスト
ファイルからデータを読み込みグラフ化
plot "ファイル名"
オプション(後ろに付け足していく)
折れ線グラフで出力:with line
線の太さを指定(右は太さ5):lw 5
データのタイトルをつける:title "タイトル名を指定"
複数列のデータから列を指定してグラフ化(右は1列目と3列目を指定):using 1:3
使用例:
plot "ファイル名" with line lw 5 title "タイトル名"
これで、"ファイル名"内のデータを、太さ5の折れ線で出力できる。また、この線のタイトルは"タイトル名となり、凡例に表示される。
x・y軸の幅を指定(以下では0から100までの幅で指定)
set xrange [0:100]
set yrange [0:100]
epsで画像ファイルへカラーで出力
set terminal postscript eps enhanced color
set out "出力ファイル名.eps"
CSVファイルの読み込み
set datafile separator ','
横軸に時刻を表示する
set xdata time
set timefmt "%Y/%m/%d %H:%M"
set format x "%m/%d/%H:%M"
2行目が元データの形式指定
3行目が表示形式の指定
IBM ILOG CPLEX
インタラクティブ・コマンド
% cplex # cplexの起動
CPLEX> set threads 4 # スレッド数を指定
CPLEX> set timelimit 120 # 計算打ち切りの最大時間を設定(sec)
CPLEX> read xxx.lp # 「xxx.lp」ファイルを読み込む
CPLEX> display problem all # 読み込んだ問題の中身を表示
CPLEX> optimize # 最適化実行
CPLEX> display solution variables - # 最適解の中身を表示
CPLEX> display solution dual - # 最適解のシンプレックス定数を表示
CPLEX> display problem stats # モデルの属性(変数の数など)を表示
CPLEX> quit # 終了
設定いろいろ (© 愛媛大・稲元勉先生)
# $Id: cplex-mip.txt,v 1.2 2001/12/07 21:52:05 inamoto Exp $
#([] 内はデフォルト値)
# バックトラックする高さ? 小さい方と幅優先,1 ならば深さ優先?
set mip strategy backtrack n [0.01]
# 分枝木の最大サイズ(M)
set mip limits treememory n [1e+75]
# リミットを越えた時に,メモリにあるメモリをファイルに書き出したりする
# @see directory
# 0 : 書き出さない
# 1 : メモリ上でファイルを作り,圧縮する
# 2 : ディスク上に書き出す
# 3 : ディスク上に書き出して圧縮する
set mip strategy file n [0]
# ファイルを書き出すディレクトリ.環境変数 TMP,TMPDIR の方が優先
set mip strategy directory s [.]
# ログの冗長度を設定する
# 0 : ログなし
# 1 : 実行可能解を表示
# 2 : インターバルごとにノードを表示
# 3 : 2 + ノードカットの情報
# 4 : 3 + root ノードに対する LP の情報
# 5 : 3 + 全てのノードに対する LP の情報
set mip display n [2]
# ログの頻度を設定する
set mip interval n [100]
# ログを書き出すファイル
set logfile s [cplex.log]
# モデルが難しい場合,有効らしい
# -1 : 禁止
# 0 : 自動
# 1 : 制限つき実行
# 2 : 完全に実行
set mip strategy probe n [0]
# ノードに対し,実行可能性を調べるためにヒューリスティックを適用する頻度
# -1 : 禁止
# 0 : 自動
# P : ノードの通し番号 % P = 0 なら実行
set mip strategy heuristicfreq n [0]
# 固定すべきノードを選択する基準
# 0 : 深さ優先
# 1 : 最良下界値優先?
# 2 : 最良みこみ優先
# 3 : 最良みこみかわりばんこ優先?
set mip strategy nodeselect n [1]
# cut ... 分枝を限定するための条件
# clique : 幾つかの変数があるグループにまとめられ,そのうち2つ以上が1になることがない
# cover : ナップザック的制約
# GUB : ????
# flow cover : 連続変数を含む制約
# implied bound : 非明示的なもの
# -1 : cut を生成しない
# 0 : 自動
# 1 : root ノードだけで生成する
# 2 : 全てのノードで生成する
set mip cut {cliques,covers,gubcovers,flowcovers,implied,all} n [0]
# 元の問題のサイズ * この数だけ,cut が生成されうる
set mip limits cutsfactor n [4]
# 整数値に近い変数を fix するためのヒューリスティックを適用するか
# @see heuristicfreq
# -1 : 適用しない
# 0 : 自動
# 1 : root ノードで適用する
set mip strategy rootheuristic n [-1]
# 分枝変数を選択する基準
# 3 : strong branching ?
set mip strategy variableselect n [0]
# 最適値との相対誤差の許容範囲を指定する
set mip tolerance mipgap n [0.0001]
# 最適値との絶対誤差の許容範囲を指定する
set mip tolerance absmipgap n [1e-6]
# 最小化問題での上界値を指定
set mip tolerance uppercutoff n [1e+75]
####
set mip tolerance absmipgap 0.5 # w1,w2,w3 が整数であるとして
set mip limit treememory 900
set mip strategy file 2
set mip strategy directory /tmp
? set mip strategy rootheuristic 1
? set mip cuts cliques 2
? set mip cuts covers 2
? set mip strategy probe 2
? set mip strategy heuristicfreq 100
? set mip strategy backtrack 1
参考資料
IBM公式リファレンス (外部サイト)
CPLEX callable library (外部サイト)
整数計画法メモ (宮代先生; 外部サイト)