2024/09/25 のものと同じ。
https://lsnl.jp/~ohsaki/lecture/netcompx/2024/#10-1
- 乱数のシードを変化させて dtnsim を実行できるようになる。
- mobility.Fixed クラスのコードが読めるようになる。
- mobility.RandomWalk クラスのコードが読めるようになる。
- エージェントの移動モデルに簡単な変更が加えられるようになる。
https://lsnl.jp/~ohsaki/lecture/netcompx/2024/priv/09.pdf
dtnsim を以下の条件で実行せよ。 (1) エージェント数は 1、 (2) 移動モデルは Fixed、 (3) 経路制約なし、 (4) エージェントは CarryOnly。 乱数のシード (種) を変化させて何度か実行し、 乱数のシードによってエージェントの初期位置が変化することを確認せよ。
テキストの 8.2 節を読み mobility/fixed.py のコードを理解せよ。 その後、 mobility/fixed.py を変更し、 エージェントが右下方向に等速度 (1 [m/s]) で移動するようにせよ。
課題 1 において、移動モデルを RandomWalk に変更せよ。
テキストの 8.3 節を読み mobility/randomwalk.py のコードを理解せよ。 その後、 mobility/randomwalk.py を変更し、 エージェントが水平方向にのみランダムウォークする (つまり一次元ランダムウォークする) ようにせよ。
> dtnsim -s 1 -n 1 -m Fixed -p NONE -a CarryOnly | cellx -L30
> dtnsim -s 2 -n 1 -m Fixed -p NONE -a CarryOnly | cellx -L30
> dtnsim -s 3 -n 1 -m Fixed -p NONE -a CarryOnly | cellx -L30
-s の引数がシード。シードの値によって生成される乱数の系列が変化する。
--- mobility/fixed.py.orig 2021-08-23 12:00:54.498395785 +0900
+++ mobility/fixed.py 2021-12-06 21:48:28.322397148 +0900
@@ -51,4 +51,4 @@
def move(self, delta):
"""Move the agent for the duration of DELTA."""
- pass
+ self.current += V(delta, delta)
> dtnsim -s 1 -n 1 -m Fixed -p NONE -a CarryOnly | cellx -L30
> dtnsim -s 2 -n 1 -m Fixed -p NONE -a CarryOnly | cellx -L30
> dtnsim -s 3 -n 1 -m Fixed -p NONE -a CarryOnly | cellx -L30
初期状態から右下に等速移動するようになる (その後フィールドから出てゆく)。
> dtnsim -s 1 -n 1 -m RandomWalk -p NONE -a CarryOnly | cellx -L30
> dtnsim -s 2 -n 1 -m RandomWalk -p NONE -a CarryOnly | cellx -L30
> dtnsim -s 3 -n 1 -m RandomWalk -p NONE -a CarryOnly | cellx -L30
--- mobility/randomwalk.py.orig 2021-08-23 12:00:54.502395716 +0900
+++ mobility/randomwalk.py 2021-12-06 22:02:25.411949205 +0900
@@ -36,8 +36,10 @@
def update_velocity(self):
"""Update agent's velocity using the velocity function."""
vel = self.vel_func()
- theta = random.uniform(0, 2 * math.pi)
- self.velocity = vel * V(math.cos(theta), math.sin(theta))
+ if random.uniform(0, 1) <= .5:
+ self.velocity = V(vel, 0)
+ else:
+ self.velocity = V(-vel, 0)
self.wait = False
def move(self, delta):
> dtnsim -s 1 -n 1 -m RandomWalk -p NONE -a CarryOnly | cellx -L30
> dtnsim -s 2 -n 1 -m RandomWalk -p NONE -a CarryOnly | cellx -L30
> dtnsim -s 3 -n 1 -m RandomWalk -p NONE -a CarryOnly | cellx -L30
初期状態を中心とし、 水平方向にのみランダムウォークするようになる。
「レポート課題 2024/09/25」と同じ。
https://lsnl.jp/~ohsaki/lecture/netcompx/2024/#10-7
- 今回の講義では、chmod 666 ← 一般ユーザで書き込めるようにが出てきましたが、この数字の認識は以下のものであっていますかもし、間違っていた場合は正しい知識を教えてくださいr (read) = 4 w (write) = 2 x (execute) = 16 は r + w → 読み書きが可能ユーザー グループ その他がいずれも6よりユーザー グループ その他は読み書きが可能
もう怖くない!chmod コマンドの徹底解説: ファイル権限の管理
https://youneedjp.com/%e3%82%82%e3%81%86%e6%80%96%e3%81%8f%e3%81%aa%e3%81%84%ef%bc%81chmod-%e3%82%b3%e3%83%9e%e3%83%b3%e3%83%89%e3%81%ae%e5%be%b9%e5%ba%95%e8%a7%a3%e8%aa%ac-%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e6%a8%a9/
間違いとは言えませんが、肝心の「UNIX のパーミッションはユーザ・グループ・そ
の他で各 3 ビット、だから 8 進数で表現する」ということが書かれていません。
→ 原則: 利用する情報源は、手軽/無料かどうかではなく、信頼できるかどうかで判
断する (日本語のブログや Wikipedia 等は使用しない)。
私なら chmod(1) を読みます。
> A numeric mode is from one to four octal digits (0-7), derived by adding up
> the bits with values 4, 2, and 1. Omitted digits are assumed to be leading
> zeros. The first digit selects the set user ID (4) and set group ID (2) and
> restricted deletion or sticky (1) attributes. The second digit selects
> permissions for the user who owns the file: read (4), write (2), and execute
> (1); the third selects permissions for other users in the file's group, with
> the same values; and the fourth for other users not in the file's group,
> with the same values.
[<21. シミュレータ解説 (1) (概要、エージェント)] [>23. ソフトウェア設計・実装]