数理コンサルタントの備忘録

あなたの悩みを数理で解決する

Linux コマンド集

ps [オプション]

オプション

a すべてのプロセスを表示します。
f 階層表示します。
H スレッドをプロセスのように表示します。
j BSDのジョブ制御フォーマットを表示します。
l BSDの長いフォーマットを表示します。
m プロセスの後ろにスレッドも表示します。
p プロセスID プロセスIDを指定します。
r 実行中のプロセスのみ表示します。
s シグナルフォーマットで表示します。
T この端末の全てのプロセスを表示します。
u ユーザーフォーマットで表示します。
v 仮想メモリフォーマットで表示します。
x 制御端末のないプロセスも表示します。

プロセスの状態コード(STAT)

d

コード 状態
D 割り込み不可能なスリープ状態
R 実行中または実行可能状態
S 割り込み可能なスリープ状態
T トレースされているために停止中の状態
X 死んだ状態
Z ゾンビプロセス

 

kill [オプション] [シグナル] プロセスID

less

:e [file] 新規にファイルを読み出す。ファイル名を指定しない場合は,現在のファイルを再度読み出す
:n 次のファイルを閲覧する
:p 前のファイルを閲覧する
:x 先頭のファイルを閲覧する
/pattern 現在位置からファイルの末尾方向へpatternを検索し,移動する
?pattern 現在位置からファイルの先頭方向へpatternを検索し,移動する
b, ESC-v 前の画面へ戻る。コマンドを入力する前に数字を入力すると,指定した画面数ずつ戻る
d 半画面進む。コマンドを入力する前に数字を入力すると,指定した半画面数ずつ進む
e, j 1行進める。コマンドを入力する前に数字を入力すると,指定した行数ずつ進む
f, SPACE 次の画面へ進む。コマンドを入力する前に数字を入力すると,指定した画面数ずつ進む
g, < ファイルの先頭へ移動する
G, > ファイルの末尾に移動する
h, H lessの操作ヘルプを表示する
n 検索を再度行う
N 前回の検索を逆方向に行う
r 画面を再度書き換える
u 半画面戻る。コマンドを入力する前に数字を入力すると,指定した半画面数ずつ戻る
q, Q 終了する
y, k 1行戻る。コマンドを入力する前に数字を入力すると,指定した行数ずつ戻る

 lv:lessの拡張. 文字コードを自動で変換して表示する.

mount:外部記憶装置をファイルシステムに組み込むこと.

 

 

tweepy

API:

自己のソフトウェアを一部公開して、他のソフトウェアと機能を共有できるようにしたものです。ソフトウェアの一部をWEB上に公開することによって、誰でも外部から利用することができるようになります。それによって、自分のソフトウェアに他のソフトウェアの機能を埋め込むことができるようになるので、アプリケーション同士で連携することが可能になるのです。

OAuthでは、下記3つのプレイヤーが鍵になってくる。

サービスプロバイダー

GoogleTwitterなどに代表されるサービスプロバイダーは、OAuthにおいて最も重要な役割を担っている。エンドポイントの提供、各種トークンやベリファイアの発行を行う。


コンシューマ

サービスプロバイダーが提供するAPIを利用してユーザーのデータを扱うアプリケーション。


ユーザー

アプリケーション利用者であり、サービスプロバイダーに会員登録をしている。

MeCab + python + wordcloud で言語処理

MeCab::Tagger というクラスのインスタンスを生成し, parse (もしくは parseToString) というメソッドを呼ぶことで, 解析結果が文字列として取得できます. MeCab::Tagger のコンストラクタの引数は, 基本的に mecab の実行形式に与えるパラメータと同一で, それらを文字列として与えます.

write() argument must be str, not None

↑これに苦しむ...

どうやら出力ファイルが空になっていたらしい...

最後は上手くいった.

 

 

 

 

改行コード

スクリプトファイルに実行権を与えてもコケたのでそのメモ.

 

sakuraエディタを使うと,
CRLF : ↵
CR  : ←
LF  : ↓

 

invalid character in identifier でハマる...
OSErrorでもハマったが, fontのパスを見れば上手くいった.

粒子群最適化

群知能に属するアルゴリズム 粒子群最適化を実装する.

f:id:guitartakahiro:20170519171145p:plain

f:id:guitartakahiro:20170519171130p:plain

 

このSphere functionと Rosenbrock functionに粒子群最適化を適用する.

 

粒子群最適化

これは多次元空間において位置と速度を持つ粒子群でモデル化される。これらの粒子はハイパー空間を飛びまわり、最善な位置を探す。位置の評価は適応度関数で行う。群れのメンバーは良い位置について情報交換し、それに基づいて自身の位置と速度を調整する。このコミュニケーションは主に次の二種類の方法でなされる。

最も良い位置にいる粒子が全体に通知される。

ローカルなベストの位置にいる粒子が近傍の粒子群に通知される。位置と速度の更新は以下の式で行われ、これが繰り返される。

 

  • x\leftarrow x+v
  • v\leftarrow wv+c_{1}r_{1}({\hat  {x}}-x)+c_{2}r_{2}({\hat  {x}}_{g}-x)
    • w は、慣性定数。多くの場合 1 より若干小さい値が最適である。
    • c_{1}c_{2} は群のうちで良い位置に向かう粒子の割合。1 に近い値が多くの場合最適である。
    • r_{1}r_{2}[0,1] の範囲の値をとる乱数。
    • {\hat {x}} は、その粒子がこれまでに発見したベストな位置
    • {\hat  {x}}_{g} は群全体としてこれまでに発見したベストな位置。これをローカルなベスト {\hat  {x}}_{l} にすれば、上記の後者の方法(近傍への通知)になる。

アルゴリズム

  • 各粒子について xv をランダムに初期化。値の範囲は問題の設定に依存する。

 

  • {\hat {x}} を現在位置に初期化。
  • {\hat  {x}}_{g} を群全体で最も良い適応度を持つ粒子の位置に初期化。
  • {\hat  {x}}_{g} での適応度がしきい値より小さく、かつループ回数が事前に設定した回数に達していないうちは、以下を繰り返し実行する。
    • 各粒子について、以下を実行する。
      • 上述の式に従って x を更新する。
      • 新たな位置での適応度を計算する。
      • {\hat {x}} での適応度よりも良い値が得られたら、{\hat {x}} を置き換える。
      • {\hat  {x}}_{g} での適応度よりも良い値が得られたら、{\hat  {x}}_{g} を置き換える。
      • 上述の式に従って v を更新する。

 

 

 

Linuxの勉強日記 & top500

Linuxでは

cat /proc/cpuinfo

でPCのスペックを確認できたが, macはunuixベースなので

system_profiler -listDataTypes

で表示させる.

 

top500:

世界で最も高速なコンピュータシステムの上位500位までを定期的にランク付けし、評価するプロジェクトである。1993年に発足し、スーパーコンピュータのリストの更新を年2回発表している。ハイパフォーマンスコンピューティング(HPC)における傾向を追跡・分析するための信頼できる基準を提供することを目的とし、LINPACKと呼ばれるベンチマークによりランク付けを行っている。リストの作成はマンハイム大学テネシー大学ローレンス・バークレイ米国立研究所の研究者らによる。毎年6月のInternational Supercomputing Conference(ISC)および11月のSupercomputing Conference(SC)の開催に合わせて発表されている。(wiki調べ)

 

ベンチマーク

コンピュータシステムのハードウェアやソフトウェアの性能を測定するための指標

 

LINPACK:

システムの浮動小数点演算性能を評価する