研究日誌。

大規模なグラフ処理に対してメモリ階層構造を考慮した高性能なソフトウェアを開発。

Web テスト。

2009-03-30 00:06:38 | Weblog
数問だけだが、CAB/GAB のようなテストを久々に解いてみた。
数年前はもう少し出来たような気もするが、こういったものは集中出来ているどうかが大変重要であると思う。
また簡単だが、スピードを要求されるので、解き方や取り組み方を練らなければならない。
こういう問題も定期的に触っておくと多少違った視点になれて良いのではと思う。

ポスター印刷。

2009-03-27 23:23:37 | Weblog
研究とは関係ない個人的な趣味の話。
最近のプリンタにはデフォルトで、A1 サイズの印刷をする際に、A3 サイズ 4 枚として印刷するような機能がついている。
無理にギリギリまで印刷せずに、のりしろのように多少残して分割してくれるのが賢い。
これを用いて PowerPoint ファイルを印刷してみたのだが、なぜか画像がうまく印刷できなかった。
解像度の関係だろうか。

Cプログラミング。

2009-03-26 23:10:14 | Weblog
やっと分かってきた。
見せるべきではないパラメータなどは可能な限り、ラッピングして各ソースコードファイルの依存関係を減らすべきである。
以前から、分かっているつもりであったが、最近ようやく納得したというか、本当に理解出来たと思う。

それからこれは個人的な考えだが、便利だからと言って、構造体の個数もあんまり増やすべきではないのではないかと。

共用体。

2009-03-23 19:55:05 | Weblog
次のような共用体を定義すると char なら 1byte(8bit) ずつ、short なら 2byte(16bit) ずつ、int なら 4byte(32bit) ずつにアクセスが可能になる。
typedef union {
  unsigned char      cuint[8];
  unsigned short     suint[4];
  unsigned int       iuint[2];
  unsigned long long luint;
} uints;

uints uninum;

/* unsigned long long としてのアクセス */
uninum.luint = huge_num; // 64bit

/* unsigned int としてのアクセス */
uninum.iuint[1] // 上位 32 bit
uninum.iuint[0] // 下位 32 bit

/* unsigned char としてのアクセス */
uninum.cuint[7] // 最上位 8 bit
      :
uninum.cuint[0] // 最下位 8 bit

見せ方。

2009-03-20 00:17:15 | Weblog
発表の仕方について色々改善しなければならないことは思い知らされた。当たり前だが、本当に話したいことを聞き手に伝わるように話すことが重要である。時間制限があるため全て話すのは不可能であるし、共倒れは避けなければならない。次こそはである。

OR 学会春季発表会 - その2。

2009-03-18 13:04:19 | Weblog
毎回のように 3000 対 3000 をするのではなく、うまく更新を行えるような手法を考えると良いとアドバイスをいただいた。
また、強い前処理ではなく、枝長の変化にも対応のしやすい”緩めの前処理”を考えるのはどうかとも。
確かにその通りで、いくつか考えてみたが、以下のどちらかだろうか。

1.前処理が素早く(数分以内に)終了するアルゴリズムを考える
2.構築には時間がかかってもよく、更新は高速に対応できる

ちなみに既存の前処理系アルゴリズムには1のようなものもあるようだが、
実行時にパスをどのくらいの早さで出力できるかは作ってみないと分からないだろう。