TODO

2010-03-07

PPL2010

  • インクリメンタルな配置法。グラフの差分のみを再配置
  • 可視化することによって、(プログラムの性質の)新たな発見などはあるか、デバッグに役立っているか
    • 類似グラフの検出などを見せる工夫があるとおもしろい
  • フラクタルなグラフとかうまくいく?(頑張らないとうまくいかない)
    • メビウスの輪の3d版(クラインの壺?)を描画できたらおもしろいね

2010-01-18

報告

  • UNYOの作り方から配置まで 300−400字程度 7~10行

ver 1.1.0

  • zoom in,out, reset のメニュー・ショートカットキー追加
  • 連結グラフ,または一つのアトムからなるグラフ(リンクがないのはグラフというのか…)同士(非連結グラフ同士?)を近づける処理(Bring Unconnected Graphs Closer)を後処理に追加
  • Reduce Crossing (膜をこすリンクがある場合のほぐし機能)を右クリックに追加
  • タブLayout -> EditParameter? にリンクの長さ調節を追加
  • タブAnalysisを可視状態に
  • 固有楕円ポテンシャルアルゴリズムを導入.膜(サイズが違うノード)を含む連結グラフの斥力が正しく働くようになった. 
  • 処理系側でコンパイルエラーが出たらエラーウィンドウ出して強制終了させる

2010-01-12

修論

  • 提出1月28日
  • 発表2月5日 提出朝
  • 修論練習2月3日,4日

2009-12-21

班ゼミ

  • 振動している判定
    • heldされていないときは1stepの移動量を制限とか
      • やってみたけど収束がにぶい 発散はしないけど
  • グラフの重なりを良い方向に動かす
    • 悪い方向:リンクが伸びてしまう
  • リンクが膜を素通り
    • これは確かにどうしよう

2009-12-19

  • 新規連結グラフ(は並びかえられているので)以外の,書換えのあったグラフの新規ノードの初期配置をそれなりに行う

2009-12-16

  • 公開ページのUNYO説明英語版を書いた.最初の説明はスクリーンショットを張った方がいいのだろうか

2009-12-14

  • 連結グラフのバグ修正
  • サイズ違いのノードに関しても力学配置で(なるべく)重ならないように

2009-12-09

  • curveLink on/off
  • rotateが反転するときが…done

2009-12-08

  • Ctrl+(;)でzoom in, Ctrl-でzoom outするキー操作をプラスした
  • shrink mem を修正
    • TODO:アトムごとじゃなく連結成分ごと移動させる?

2009-12-07

連結グラフ,非連結グラフの重なり

連結グラフG1,G2があった時,
1)G1の頂点V1はお互いに重なったらよける.
2)G2の頂点V2はお互いに重なったらよける.
3)V1とV2は重なってもよけない.
4)G1とG2はV1とV2が重なっていたらよける.

これで余分なスペースはなくなったけど,本来ならグラフの要素であるエッジを重なり判定で考慮していないからその点で連結グラフ同士が重なってしまう.

  • ↑を考慮して4)をG1とG2は重なっていたらよける.にすると,重なり判定はグラフを矩形で囲んだ部分同士の重なりとしているため,余分なスペース
  • 線分交差判定を入れると重い(連結グラフごとで,交差があるかないか程度ならいいかしら...よくないか)

2009-12-05

  • atominfopanel,meminfopanel のノード名編集機能をオフにした
  • stepを入力するspinnerをテキストボックスにした
  • ver1.0.1に

2009-12-03

  • 昨日までのバグはたぶん直った
  • clip outのバグ:外部リンクはないのに点線が出てる

2009-12-02

  • 消えているはずのrealnthnodeがマップから消えていない
  • setAtomLink?あたり?

2009-12-01

  • 昨日のバグ
    {+L1}, {bug, +L0}, bug{{-L1, +L2}, {+L0,-L2}}.
    bug{{+X, $p}, {-X, $q}} :- bug{{$p}},{$q}
    で,出力は
    {+L6}, bug{{-L6}}, {+L3}, {bug, +L3}
    となるけど,セル {bug, +L3} が,セルbug{...}の力学配置計算相手でなくなったのを認識してない.
    • プロキシアトムの書換えのみでリンクのつなぎかえが行われたため.(bug膜は再利用されている)

2009-11-30

  • バグ (アトムが再利用されている際に)膜を越すリンクの削除が行われた時
    {a-$in-}-$out-$out-{-$in-a}
    {a} {a}
    となった時
  • Cool Downのバグ修正
  • Always Heating Up 時も力学配置が収束したら,重なり制御を行うようにした

2009-11-27

  • 連結成分の重なり
    • 重なりの判定→線分交差 …は処理がかなり重い.ほとんどのリンクが交差している時は最悪
    • 連結成分を四角で囲った時重なっていたらどかすのが楽だけど,余分なスペースが増えるのが...
  • 引力がバグっぽい
    • というより斥力と反発?

UNYO ver1.0.0 にupdate

  • 温度による振動抑制,重なり制御,初期配置,マグネティックスプリング,斥力の空間分割,セル切り出し機能
  • 上部メニュー>View
    • 新規:白黒モード,アンチエイリアス,ノード名
    • 場所を移動:反応ポイント,リンク番号表示
  • 旧Heat→Ravel Out
    • ノードを一つ選択して右クリック>Ravel Out
  • バグや未対応
    • 連結成分同士の重なり制御
    • 引力(+斥力)で振動

2009-11-26

  • Restartのバグを修正 完全に直ったかはわからない
  • updateAtom&Memを新規ノードとしていたのを修正
    • 連結グラフが全て新しいノードからなる時,箱詰め|アトムの初期配置(default2)
    • 連結グラフの一部書換えならば,リンクの近くにノード生成

2009-11-25

  • 斥力の空間分割実装した
  • 連結グラフのグルーピングの効率改善?(はあまりしてないけどちょっとなおした)
    • 新規グラフが間違っているような

2009-11-17

  • アトムの初期配置修正
    • ステップ実行にも対応させる
    • まったくの新規グラフなら初期配置のアルゴリズム使用,それ以外は既にあるアトムの近くに配置とか

2009-11-12

  • graph packing
    • 横幅が全体サイズよりも小さくなってしまったとき

2009-11-11

  • 最初から大きいグラフで,初期配置である程度いい位置にいれば,角度調整力は結構いいかも

ゼミ発表 2009-11-10

  • 描画処理時間(と力学配置と重なり配置時間?)を計ってさける時間をわりふったら?
  • エッジの曲線で交差をよけれるようにする方法も
  • グラフの重なり
    • 関係ないグラフのノードとリンクは重ならない
    • 2本のアークを近づけるとか離すとか
  • 斥力
    • 重ならない程度に,広げすぎないように
    • 近くは強くして遠くはもっと弱くしたら?
      • 空間分割かなぁ
  • 膜のほぐし機能
    • 遠くに広がってしまったノードが近づけば,それなりによくなっている
      • 温度が下がってしまったせいで膜が縮まない(のと,移動先にノードがあったら縮まらないのが悪い)
  • リストやツリーが自然に上手くいくようになるといいね

2009-11-10

  • グラフ書換えがあったら重なり排除してから力学計算開始とか

2009-11-06

  • 力学による描画が安定した後,膜内のノードに重なりがなければ,その膜の空間分割はしない
  • ドラッグなど強制移動があった場合は強制移動のあったノードの親膜の空間分割を行う

2009-11-05

  • 微妙にノード間の斥力を変えた
    • いいかどうかは微妙
  • NoveMover? をちょっと変えて,全員動かなくなったら温度を下げるようにした
  • 全て動かなくなったら座標計算しない
    • マウスドラッグを検出したら座標計算を再開
  • 新規ノード,新規ノードと繋がるノード,書き変わりがあったグラフと同階層のノードは温度をMAXに,それ以外は変更なしなのでそのまま

2009-11-04

  • 重なり防止の斥力を力学から切り離してみた
    • 当然うまい配置にいないと振動するが,うまい配置はもうちょっと力学でなんとかなりそうな気がするので膜のばね力や斥力を見直す

2009-11-03

  • zoom outでアトム名・膜名の文字サイズが大きくなるようにした
  • 白黒モード追加
  • アンチエイリアス追加
  • showFullName?

描画をさぼる処理

  • scale <= 0.65
    • アトム名を頭文字だけ表示
  • scale <= 0.4
    • 描画:アトム塗りつぶし,膜,リンク(階層間の曲線リンクは直線に)
    • 描画しない:アトム輪郭,アトム名・膜名,リンク番号
  • scale <= 0.25
    • 描画:アトム塗りつぶし,膜塗りつぶし,リンク
    • 描画しない:アトム輪郭,膜輪郭,アトム名・膜名,リンク番号,多重リンク
  • scale <= 0.15
    • 描画:膜背景塗りつぶし,リンク
    • 描画しない:アトム,膜輪郭,閉じた膜,アトム名・膜名,リンク番号,多重リンク

班ゼミ 2009-11-02

  • 階層を越えるリンクも膜を越えない範囲で,障害がない場合近づけた方がいい
    • 一応追加 心なしかよくなった気もするが変わらない感じでもある…がたぶん無いよりはいい
  • 目的地に向かうのをすっと移動させる
    • 座標計算処理を軽くしないと
  • 局所も見たいし全体も見たい

2009-11-02

  • 温度をリンクで繋がるnodeの平均値をとることにした
    • 隣のnodeが冷却されて動かなくなってしまったために力学的に安定しない問題を解決
  • 移動距離が少なくなったら T = 0
  • 正しい方向に動いていたら T += α
  • node が重なっているのに冷却状態で動かなくなってしまうのを回避するため,一時的に calcRepulsive(重なり防止)ならば計算相手の温度 T = T_MAX に
    • ただしいつまでも安定状態にいけないと振動したまま
  • 膜の中だけ表示機能に一気にroot膜に戻るボタン追加
  • Heat とかほぐす時は終わった後もある程度の時間まで温度を高くしておく
  • Heat up, Cool down, 元のHeat はRavel out にしようかな
  • magneticSpring の"数値アトムはdefault で南向き"をguiでオンオフできるようにした

2009-10-30

setActivity(MOVE,NO_MOVE) & updateTemperature(T)

  • あるnode の Activity が MOVEになったら T+1
  • activateAll ならば 全ての node を MOVE & T_MAX
  • heat などほぐし中ならば 適用 node を MOVE & T_MAX
  • node のActivity がNO_MOVE(INACTIVE)ならば座標計算をしない
  • 力学計算中ある node の Activity がMOVE ならば 計算相手の node も MOVE
  • ある membrane の Activity がMOVE で calcRepulsive(重なり防止) ならば 膜の中で重なっている node を MOVE
  • ある atom の Activity がMOVE で calcRepulsive(重なり防止) ならば 親膜の Activity をMOVE
  • ある node を強制移動させるなら自分と親膜と隣のnode をMOVE & T_MAX
  • calcAttraction なら連結グラフの温度を同じにする
    • うーん…まぁいいか

2009-10-28

  • 振動をなくすために温度の概念を導入中
  • リンク書き換え時のバグ
    res("."("."("[]",L1),L2)). {a(L1)}. b(L2).
    で,L1とL2をつなぎ替えるような時,
    "."(L1($out?)) と"."(L2)
    をつなぎかえるが,更新のあったアトムがproxyアトムのため描画上無視されてしまう. proxyアトムのリンク先のaが更新されたとみなしてリンクを追加しないと,あるはずのリンクが描画されない
  • ↑updateAtom の時だけリンク先のatom もupdateさせることにした

2009-10-25

  • 新規膜だけ箱詰めにした
  • ステップごとのグラフのグルーピングを更新された膜ごとでなくグラフごとにしないと重い

2009-10-21

  • 初期配置を箱詰め(Next-Fit)
    • 適当すぎるか…もうちょっとちゃんとしたアルゴリズムの方がいい?
    • 差分の配置は未実装
  • 縮む膜
    • 予想通り振動した
    • 必要な時(広がりすぎた!と思う時)にだけ使うか,理想状態的な状態まで計算するのか…(理想って?)
    • 階層を越すリンクが長くなってしまった時,実際繋がっているアトム同士をばね力で計算&縮む膜をやればたぶんリンクの長さが適切になって交叉数が減る(減らせる場合のみ)

2009-10-19

  • initView
    • 膜の大きさ
  • calcSpring2
    • 階層を越えるリンクに対応してみたが,膜のサイズをなんとかしないとなんとも

2009-10-16

  • 交叉数を減らす
    • 階層をこえるリンク
    • 回転
  • 膜の中のみ表示機能追加
  • hideAll & showAll のバグ
    • 下の階層から閉じていくが,描画が安定する前に次の階層を閉じるので,保存されてる 膜内のノードの相対座標が安定前の値となる.このためshowAllで一気に開くとひどいことに

2009-10-14

  • graphグルーピングのバグをなおしたつもり
  • 膜の力学の見直し

2009-09-30

  • グラフID追加,マグネティックスプリング力を向きがそろうにつれて弱くした,膜を越すリンクを曲線にしてみた(見やすいかはわからない),リンクの色を接続してるアトムの色に変えてみた
  • グラフの抽象化はしてみたらどうだろう

2009-08-20

  • 非連結アトム間に斥力をかけ,角度調節力をやめてみた
    • こちらの方がいい気がする…けど何か問題があるのだろうか

2009-08-06

  • look&feelをNimbusに変えてみた かわいくなった

2009-07-24

  • カスタム再配置しているNode に力学がかかっていないのに,かかっているものとして目的地座標を平均化していたのを修正
  • 膜を挟んだばねの適切な長さを考える

2009-07-15

  • 同じ座標にいるアトム同士にばねの力がかかっていなかったのを修正

2009-07-14

  • 試しに初回だけ特別扱いにするようにした
    • 連結グラフごとに斥力,Heat→描画開始(→通常計算)

2009-07-13

  • defaultAtomSize?*(n(+linkLength*k ?))でざっとグラフの大きさの目安(最小値)を計算しておく
  • 目安を基に非連結グラフを並べる

2009-07-07

  • 禁止事項を作る
    • 子膜内にノードを移動させようとしたら元の位置に戻す

2009-07-06

  • 交差数多かったら…
    • 非連結グラフが重ならないよう配置?
    • 各連結グラフをHeat?
  • アニメーション
    • アニメーションで見たい部分:反応前と反応後
    • 安定状態を定義して,ループを切る?
      • 安定状態を計測する処理は軽くなければならない

2009-07-02

  • 交差数表示した
    • で,どうするか
  • 密度は…
  • アトムの初期生成の表示がスムーズじゃない
    • 膜の場合はアトムと比べて数が少ない上に斥力が大きいから(サイズが大きいため)大丈夫
    • ある程度近い位置に出力されるようにしたから斥力計算が重い
    • 固まっている→HEAT→斥力ON?
    • 斥力はある程度ちらばってからかけたい
    • 非連結グラフは重ならない位置に適当に表示?
      • 適当って…

2009-06-29

  • リンク番号がアトムの大きさが変わってもかぶらないように変更
  • 交差数を表示できるようにした
    • 交差していないのに交差→直した
    • 交差しているのに交差してない→まだ

2009-06-19

  • 交差数を求めるのは走査線を用いる方法でいいか...

2009-06-18

  • 斥力にリンクの重なり判定をいれようとしているが,重い…

2009-06-10

  • nd.execは落ちるのはいい…か
  • graphicライブラリで動かないもの
    • dragon,graphicdemo...
  • nlmem.copy nlmem.kill
    • プロセス文脈
  • Heatを全体と一部にかけられるようにした

2009-06-08

  • 親膜が消えても子Nodeが消えてなかったのを直した

2009-06-02 ゼミ発表

  • 評価関数定義して評価
    • どう見えたらいいのか
  • アトム・膜の形:他にどういう見せ方あるか
    • 子供向けは…?
      • グラフという形にこだわらないと?
      • integerはアトムじゃなく数字とか
      • 見える(見せる)アトム・膜
      • モデルに組み込まれている隠し要素(色名のアトムはその色にするとかのように)
  • 実行過程
    • 同じ実行を何度もみたい
  • リストとか限定的なものは,特定の位置にアトムを生成
  • 他もまともそうな位置に
  • 膜がどうなるべきか定量化すべき

2009-06-02

  • 再配置されたノード→moveで
  • 選択されたアトムの画像

2009-05-31

  • 生成位置改善
    • 画面の中央付近でなく,全ノードの中央(ルート膜の中央)付近
    • リンク先のアトムに近い位置に生成
  • 反応のハイライト
    • ルール消すだけの命令とかのハイライトは…?
  • zoom/map のスケールおかしい

2009-05-29

  • append -->"."のつなぎかえ
  • ALTERFUNC
    • 指定されたアトムの名前を変える
    • update
  • NEWLINK,RELINK
  • UNIFY
    • insertProxies
  • INHERITLINK
    • update
  • UNIFYLINKS
    • update

newAtom

  • COPYCELLS
    • copyCellsFrom?
      • copyAtoms
  • COPYGROUND
    • copyGroundFrom?
  • insertProxies(proxy atom)

2009-05-27

  • 昔作ったbreakpointをちょっと改良したのを加えた
    • ルールをbreakpointとするのはあいかわらず
    • ルール名だけじゃなく,存在するルールから選べるようにした

2009-05-20

  • アトムの形も変えられるようにした
    • まだ四角だけ

2009-05-18

  • アトムに画像張れるようにした
    • removeしたらアトム更新

2009-05-12

  • 斥力:リンクグループ全体にかけてるけど,重なったノードが自分のリンクグループの場合は,ノードごとかけるように変更したい

班ゼミ 2009-05-07

  • スケーラビリティ
    • 反応のハイライト
    • 検索,ブラウジング
  • 書き換え後(書き換わってないノード)の位置を変えない
  • 何か制約やアルゴリズムの導入(力学以外に)
  • ccs,lambda...モデルによって見せ方どういうのがあるか
    • 例題たくさんやる
  • 信頼性あるプログラム
    • デバッグ
      • トレース,アサーション,breakpoint
  • 膜を2つ以上挟んだリンク

細かい話

  • sizeが大きいノードが引っ張るほうが自然
  • アトムの散らばり…引力おかしくないか
    • グラフの形が変わらないようつながったグラフ全体に引力かけてた
    • 斥力か
  • 膜の縮小
  • 力学のパラメータ指定
  • 文字サイズ
  • アトムに画像

2009-05-07

  • 3D化?
    • コストの割に見栄えがよくならなそう
  • カスタム再配置
    • 膜にも対応させる
  • 膜の配置
    • Tree的に?
  • プログラムごと適する見せ方
    • どうなったらいいのか目標は?

2009-04-27

  • removeProxies

2009-04-15

  • 大規模なグラフでエラー
    • 直ったと思ったらまた発見した
    • proxy命令のバグ

2009-04-14

  • LMNtal処理系の例外終了時の処理を書く
    • System.exit(-1)しない
  • syntax error でフリーズ

2009-04-09

  • removeAtom命令が来ているのに、消える前に力学計算してる(ランダム)
    • UNYO:removeMem,removeAtom→まだ実行されていない
    • LMNRUN:removeMem,removeAtom→すでに実行済

2009-04-06

  • AutoCentering?ボタンのselect状態を直した
  • 複数選択時画面が時々停止するバグを直した…つもり
  • addAtomなどで$starが送られてくるのを直した
    • Mediatorでスキップするようにした(正しいかどうかわからない)

2009-03-31

  • ノード生成位置
    • atomは所属膜の情報を持っておくべきなんだろうけど・・・
  • zoomの相対

2009-01-23

  • やっぱり変化前にどこが反応するか,見えるようにしたほうがいい
    • 完全な新規ノードは無視して,削除される部分とリンクが変更されるもの,か
  • 描画は常に行われているが,処理系との通信により書き換わっている間の描画は,ズレが生じる

2009-01-20

  • 斥力のバグ

2009-01-16

  • closedeMemに自分自身は登録されてない?
    • done

2008-12-19

  • 非同期的にグループ化できない
    • ActiveNodeContainer?が更新されてない

2008-12-12

  • 戻って実行できるようにするために,ルールをdumpしたいが膜名が消える
  • 実行オプション選択(入力)画面を微妙に変更
  • LMNtal実行結果(経過)出力画面をLogパネルと分けた

2008-12-10

  • 見た目のスケーラビリティ
    • 一部拡大以外

2008-11-24

  • 代入される変数を基準アトムとしてListを自動的に並べるようにした.
  • 自動的に読み込まれるカスタム再配置と,普通のカスタム再配置はわけたほうがいいよなぁ
    • ↑分けてみた.

2008-11-21

  • やっと膜のバグとれたよ
  • 非同期なバグがまだある.
    • NodeActivator?.setAtomLink? (プロキシアトムに関係がある?)
    • NodeActivator?クラス344行,getNthMemFromOutside?(nthAtom) のparentがnull

2008-11-14

Reallocator

  • 基準アトムがわかりにくいので,アトムの形が四角になるよう,変更.
  • まだアトム限定とはしてない.そろそろ膜無視でいいかも・・・.

2008-11-07

  • Reallocator
    • 起動時デフォルトで再配置しなおすものとし直さないものの区別

2008-11-04

  • -O
    	--body:L747:
    		spec           [20, 40]
    		commit         [null, 0]
    		newlist    [20]
    		getlink    [21, 6, 0]
    		addtolist      [20, 21]
    		dequeueatom    [6]
    		dequeueatom    [11]
    		dequeueatom    [14]
    		dequeueatom    [16]
    		dequeueatom    [17]
    		removeatom     [7, 1, $out_2]
    		removeatom     [8, 1, $out_2]
    		removeatom     [9, 2, $out_2]
    		removeatom     [10, 2, $in_2]
    		removeatom     [11, 3, 'receive'_2]
    		removeatom     [12, 3, $out_2]
    		removeatom     [13, 3, $in_2]
    		removeatom     [14, 4, '+'_1]
    		removeatom     [15, 4, $in_2]
    		removeatom     [17, 5, '+'_1]
    		removeatom     [18, 5, $in_2]
    		dequeueatom    [19]
    		removeatom     [19, 5]
    		removeground   [20, 0]
    		removemem      [4, 3]
    		removeproxies  [4]
    		removemem      [3, 2]
    		removeproxies  [3]
    		removeproxies  [2]
    		removeproxies  [5]
    		removeproxies  [1]
    		removetoplevelproxies[0]
    		getlink    [22, 6, 0]
    		insertconnectorsinnull[23, [22]]
    		newlist    [24]
    		getlink    [25, 6, 0]
    		addtolist      [24, 25]
    		enqueuemem     [1]
    		setmemname     [1, "system"]
    		addmem         [1, 3]
    		enqueuemem     [3]
    		insertproxies  [1, 3]
    		enqueuemem     [5]
    		insertproxies  [1, 5]
    		enqueuemem     [2]
    		movecells      [2, 4]
    		insertproxies  [1, 2]
    		insertproxies  [0, 1]
    		copyatom   [30, 5, 19]
    		copyatom   [31, 0, 19]
    		newatom    [32, 3, '+'_1]
    		newatom    [33, 3, $in_2]
    		newatom    [35, 1, 'killed'_1]
    		newatom    [36, 1, 'memkill'_2]
    		newatom    [37, 1, $out_2]
    		newatom    [38, 0, 'receive'_2]
    		newlink        [32, 0, 33, 1, 3]
    		newlink        [16, 0, 30, 0, 5]
    		newlink        [35, 0, 36, 1, 1]
    		newlink        [36, 0, 37, 1, 1]
    		newlink        [37, 0, 33, 0, 1]
    		newlink        [38, 0, 31, 0, 0]
    		newlink        [38, 1, 6, 0, 0]
    		enqueueatom    [6]
    		enqueueatom    [38]
    		enqueueatom    [36]
    		enqueueatom    [35]
    		enqueueatom    [16]
    		enqueueatom    [32]
    		freemem        [4]
    		freeatom       [7]
    		freeatom       [8]
    		freeatom       [9]
    		freeatom       [10]
    		freeatom       [11]
    		freeatom       [12]
    		freeatom       [13]
    		freeatom       [14]
    		freeatom       [15]
    		freeatom       [17]
    		freeatom       [18]
    		freeatom       [19]
    		freeground     [24]
    		unlockmem      [3]
    		unlockmem      [5]
    		unlockmem      [2]
    		unlockmem      [1]
    		proceed        []
  • not -O
    	--body:L747:
    		spec           [20, 40]
    		commit         [null, 0]
    		newlist    [20]
    		getlink    [21, 6, 0]
    		addtolist      [20, 21]
    		dequeueatom    [6]
    		dequeueatom    [11]
    		dequeueatom    [14]
    		dequeueatom    [16]
    		dequeueatom    [17]
    		removeatom     [6, 0, 'action'_1]
    		removeatom     [7, 1, $out_2]
    		removeatom     [8, 1, $out_2]
    		removeatom     [9, 2, $out_2]
    		removeatom     [10, 2, $in_2]
    		removeatom     [11, 3, 'receive'_2]
    		removeatom     [12, 3, $out_2]
    		removeatom     [13, 3, $in_2]
    		removeatom     [14, 4, '+'_1]
    		removeatom     [15, 4, $in_2]
    		removeatom     [16, 5, 'name'_1]
    		removeatom     [17, 5, '+'_1]
    		removeatom     [18, 5, $in_2]
    		dequeueatom    [19]
    		removeatom     [19, 5]
    		removeground   [20, 0]
    		removemem      [4, 3]
    		removeproxies  [4]
    		removemem      [3, 2]
    		removeproxies  [3]
    		removemem      [2, 1]
    		removeproxies  [2]
    		removemem      [5, 1]
    		removeproxies  [5]
    		removemem      [1, 0]
    		removeproxies  [1]
    		removetoplevelproxies[0]
    		getlink    [22, 6, 0]
    		insertconnectorsinnull[23, [22]]
    		newlist    [24]
    		getlink    [25, 6, 0]
    		addtolist      [24, 25]
    		newmem     [26, 0, 0]
    		setmemname     [26, "system"]
    		movecells      [26, 1]
    		newmem     [27, 26, 0]
    		movecells      [27, 3]
    		insertproxies  [26, 27]
    		newmem     [28, 26, 0]
    		movecells      [28, 5]
    		insertproxies  [26, 28]
    		newmem     [29, 26, 0]
    		movecells      [29, 4]
    		movecells      [29, 2]
    		insertproxies  [26, 29]
    		insertproxies  [0, 26]
    		copyrules      [26, 1]
    		copyatom   [30, 28, 19]
    		copyatom   [31, 0, 19]
    		newatom    [32, 27, '+'_1]
    		newatom    [33, 27, $in_2]
    		newatom    [34, 28, 'name'_1]
    		newatom    [35, 26, 'killed'_1]
    		newatom    [36, 26, 'memkill'_2]
    		newatom    [37, 26, $out_2]
    		newatom    [38, 0, 'receive'_2]
    		newatom    [39, 0, 'action'_1]
    		newlink        [32, 0, 33, 1, 27]
    		newlink        [34, 0, 30, 0, 28]
    		newlink        [35, 0, 36, 1, 26]
    		newlink        [36, 0, 37, 1, 26]
    		newlink        [37, 0, 33, 0, 26]
    		newlink        [38, 0, 31, 0, 0]
    		newlink        [38, 1, 39, 0, 0]
    		enqueueatom    [39]
    		enqueueatom    [38]
    		enqueueatom    [36]
    		enqueueatom    [35]
    		enqueueatom    [34]
    		enqueueatom    [32]
    		freemem        [4]
    		freemem        [3]
    		freemem        [2]
    		freemem        [5]
    		freemem        [1]
    		freeatom       [6]
    		freeatom       [7]
    		freeatom       [8]
    		freeatom       [9]
    		freeatom       [10]
    		freeatom       [11]
    		freeatom       [12]
    		freeatom       [13]
    		freeatom       [14]
    		freeatom       [15]
    		freeatom       [16]
    		freeatom       [17]
    		freeatom       [18]
    		freeatom       [19]
    		freeground     [24]
    		proceed        []

2008-10-31

  • {}←addMem {a,{b}}

2008-10-23

  • 新規膜もhideAllにする

2008-10-22

		spec           [3, 4]
		commit         [null, 0]
		dequeueatom    [2]
		removeatom     [2, 1, 'a'_0]
		removemem      [1, 0]
		removeproxies  [1]
		movecells      [0, 1]
		removetemporaryproxies[0]
		newatom     [3, 0, 'a'_0]
		enqueueatom    [3]
		freemem        [1]
		freeatom       [2]
		proceed        []
		spec           [4, 6]
		commit         [null, 0]
		dequeueatom    [3]
		removemem      [2, 1]
		removeproxies  [2]
		removemem      [1, 0]
		removeproxies  [1]
		addmem         [0, 2]
		enqueuemem     [2]
		insertproxies  [0, 2]
		enqueueatom    [3]
		freemem        [1]
		unlockmem      [2]
		proceed        []

2008-10-15

発表

  • リンクをたたむ->オーバーラップがいいかどうかは例をだす
    • じゃなくて長いのはいい力をかけたい
  • 膜の配置
    • 箱づめ
  • type
    • 膜の種類によって見せ方かえる
    • 規則性のある膜とない膜(レコード的なもの)
    • 複雑なのは隠す
  • 見切り発車
    • List
      • Fnactorから.のものはListとする
    • 膜名はtype名と認識
  • 見せたい姿目標をもつ

2008-10-13

  • 反応後のungroupe解除
  • setGroupはaddActiveNode_atomの時のみなされてる
  • regroupeなし?
  • reallocatorでinActiveにした時のMap表示バグ

2008-10-10

  • body:L103:
    		spec           [9, 23]
    		commit         [null, 0]
    		dequeueatom    [2]
    		dequeueatom    [5]
    		dequeueatom    [6]
    		removeatom     [2, 0, 'c'_2]
    		removeatom     [3, 0, $out_2]
    		removeatom     [4, 0, $out_2]
    		removeatom     [5, 1, 'a'_1]
    		removeatom     [6, 1, '+'_1]
    		removeatom     [7, 1, $in_2]
    		removeatom     [8, 1, $in_2]
    		removemem      [1, 0]
    		newmem      [9, 0, 0]
    		newmem     [10, 0, 0]
    		newatom    [11, 9, 'a'_1]
    		newatom    [12, 9, '+'_1]
    		newatom    [13, 9, $in_2]
    		newatom    [14, 9, $in_2]
    		newatom    [15, 10, 'c'_1]
    		newatom    [16, 10, '+'_1]
    		newatom    [17, 10, $in_2]
    		newatom    [18, 10, $in_2]
    		newatom    [19, 0, $out_2]
    		newatom    [20, 0, $out_2]
    		newatom    [21, 0, $out_2]
    		newatom    [22, 0, $out_2]
    		newlink        [11, 0, 14, 1, 9]
    		newlink        [12, 0, 13, 1, 9]
    		newlink        [15, 0, 18, 1, 10]
    		newlink        [16, 0, 17, 1, 10]
    		newlink        [19, 0, 13, 0, 0]
    		newlink        [19, 1, 21, 1, 0]
    		newlink        [20, 0, 14, 0, 0]
    		newlink        [20, 1, 22, 1, 0]
    		newlink        [21, 0, 17, 0, 0]
    		newlink        [22, 0, 18, 0, 0]
    		enqueueatom    [16]
    		enqueueatom    [15]
    		enqueueatom    [12]
    		enqueueatom    [11]
    		freemem        [1]
    		freeatom       [2]
    		freeatom       [3]
    		freeatom       [4]
    		freeatom       [5]
    		freeatom       [6]
    		freeatom       [7]
    		freeatom       [8]
    		proceed        []

2008-10-03

  • ループ構造は今の力学、ループがないものは別のアルゴリズム適用
    • ループがないもの:rootがあり、levelがあるような論理的なもの
      • list,tree
  • 膜同士の配置
    • 膜と膜は引力・斥力じゃなく、別の配置に?
      • 膜同士関連性があれば木構造に配置してもいいが…

バグ

  • TODO:膜のリンク数を追加する

2008-10-02

  • ボディ操作命令実行中はUNYO側が処理系に働きかける処理を待つようにする

2008-10-01

  • newlink>getLinkNum?

2008-09-30

  • removeproxies
  • removetolevelproxies
  • insertproxies

2008-09-08

UNYO

  • 膜の位置座標
  • hideAll,showAll
  • 新規Node生成位置を旧UNYOのように制限したい
  • edit link

HydLa?班ゼミ

  • 一般的なグラフ配置 (by 細部先生)
    • 力学的に処理
      • 摩擦(振動に対応)
    • ループ構造で難易度が変化
    • 木構造を使ったほうがよいのでは?
  • 鎌田富久さん(振動を止めるばねモデル)
    • エネルギー
  • カスタム配置 or 一般的な手法
  • 膜の例(不連結成分の整列)
    • 配置がうまくない
    • ボックスの木構造配置アルゴリズムを既存のを使うか?独自で考える?
  • エンドユーザー用の配置言語を作るか?
  • Pacific VIS : http://www.viz.media.kyoto-u.ac.jp/conf/pvis2008/index.html
  • 研究の方向性
    • KRIEG (開発 - 豊田さん) : http://www.icot.or.jp/ARCHIVE/Museum/FUNDING/96/catalogue20.html
    • 書籍:Visual Language Theory , KIM MARRIOTT
      • Separation Constraint
      • ロジックプログラミング
      • majorization:制約ベースでグラフ配置
      • →線形、重ならない、セパレーションコンストレイント

2008-07-22

UNYO

  • LMNtalEditor?
    • フレームアウトしないように
    • 引力いらない?
  • edit link (旧unyoのGraphPanel?)
  • バグ
    • a(X) :- uniq(X) | b(X).
      • uniqを使うとバグ?
    • Inlineが実行できない

2008-07-15

旧UNYO

  • show all(done)
  • アトムの大きさ
    • show link num でかぶる

UNYO

  • 膜の形
    • typeによって変える?
    • 設定ファイル
      • 岡部さんの分散XML
  • typeで再配置
    • 見切り発車
  • 再配置におけるグラフ書き換わり問題
  • アルゴリズムのデータ構造を勉強できるくらいの拡張をさせたい
    • 例えば、ユーザが多少指定してもいいから画面に入りきって見やすいような表示ができると嬉しい
    • .javaを見やすいコードに
    • ちょっと複雑なビューを簡単に見えるように
  • 図形の描画(listなど)
    • graphicとの連携?

2008-07-11

UNYOバグ

  • 非同期実行のバグ?
    • yakuwaさんのプログラム(ccs)

Reallocator

  • オン・オフができるようにした
  • グラフ書き換えが起こったときにグルーピングし直すようにした
  • 基準のノードが書き換わった時どうしよう
    • GraphPanel? 852

Tree2

  • Graph Drawing のやり方で実装
    • ただし最初のdivideにおける走査はinorderでなくpreorder
  • 余分な幅の除去が完全でない

その他

  • 膜の色をとりあえずアトムの色と同じアルゴリズムで実装

2008-07-04

Layered-Tree-Draw は2つの走査を用いて実行できる

  • 後置順
    • 左右の子の水平移動を再帰的に計算する
  • 前置順
    • x座標
    • y座標
      • 深さ
  • LinkedList?を使う

step実行の空振り

  • sufflemodeだと空ぶる?

2008-07-01

Reallocator

  • inactiveNodeのバグ
  • Tree
    • conqure

2008-06-22

先生からのメール

先週の班ゼミで細部先生に教えていただいたグラフ描画の論文です。

NTTの松林逹史さんという方です.

以下の論文で,GRAPEを用いたグラフ配置手法を提案しており,これのGPU版も

実装したとのことでした.

http://www.waset.org/ijecs/v1/v1-2-17.pdf (論文)

http://www.kecl.ntt.co.jp/as/members/tatsushi/index.html(ホームページ)

2008-06-17

UNYOバグ

  • 綾野くんがsyncのバグを修正してくれた
  • bubble-sortの実行が空ぶる場合がある

文献

  • 出版社,国,年を書くこと

その他

  • 有向非循環グラフ
  • 力学との併用できるか

GPGPU

2008-06-11

UNYOエラー

  • okabe>mc>bridge_ltl.lmn
    • 処理系の終了に気づいていない
    • taskは空なのに取得しようとしている?

再配置

  • inactiveNodeにも対応
  • Map機能がおかしくなる
  • 更新されたatomの配置がおかしい

2008-06-10

再配置機能

  • baseNodeが書き換わる or 無くなると基準となるNodeが無くなるため再配置できなくなりエラーが起こる
    • せめて無くなるまでは再配置したい
      • 無くなったらもう一度基準を選ぶようエラーメッセージを投げる?
    • 他が書き換わった場合もうまく元のNodeに関連付けたい
      • 書き換わる前のidと書き換わった後のidを関連づけることができたらいい?
    • 今はaddActive_Atom/Membrane処理が行われるときにgetGroupでgroupを取得する
    • setGroupはユーザがreallocateしようとしたとき(ポップアップでtypeを指定したとき)になされるが,反応したときもregroupしなおす必要性がある
  • 現在ActiveNode?のみを対象としているが,inactiveNodeにしたときに問題が生じる
    • 処理は重くなるが,すべてのnodeを監視する必要があるか

2008-06-06

  • 小川くんのオセロ
    • きれいに
    • Active Node
  • アトムを移し替えてリンクを増やした
  • remove()で古いアトムを除去→失敗
  • うまくコピーできてない?(所属膜あたりか)

2008-06-04

  • newLink :アトムのリンク数の変更

2008-05-31

  • TODO:edit mode
  • 気になること:グラフの型

添付ファイル: file20090728.pptx 124件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-06-30 (金) 17:38:30 (445d)