From 59b2b46f6e9381bc5b0ef68fb89e61018c481544 Mon Sep 17 00:00:00 2001 From: Daniel Rosel Date: Sat, 28 Mar 2026 13:18:08 +0100 Subject: [PATCH] updating bins --- paper/src/chapters/mdp_agent.pdf | Bin 11236 -> 10932 bytes paper/src/chapters/mdp_human.pdf | Bin 11953 -> 11953 bytes sim/rl/behavior_loader/models.py | 26 +++++++++++++++++++------- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/paper/src/chapters/mdp_agent.pdf b/paper/src/chapters/mdp_agent.pdf index aeab1b7ff171d39eb33df300f16001377afec8b7..24d141ea8f5e3b3d4d986e0cda0860d91e6d895b 100644 GIT binary patch delta 8951 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 Ryel3GHaId0B_%~qMhbOwShoNG delta 9251 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

^adF-M+@&wfYM2;X^Bn1&kVlP2uTBopd1jIM_= zlvF+IB(3s9F&Xd2C&;T&YeE)7I$4NEMdT1^AOoP1RN#{W`bvY@U+~T<@l({fg1#X9 zg|xyLl0@>w8)$1xonyf&Li)Q+hXv1syu;q9v)mVE#|-HIlcC!ryMGUp%)^EiZhuct z<}A_9W*=sb!{AX4i=Mbo|JBJ)2lStmIm>;xd+eAyPaT^x2Ir>F!b5e0(>OnN%zz-C z2!!P36uEvGGW-V;tpwupcw>h@uz&lp&Af~|wUgyVI8^T95ANkf+)0SG3D1{lC;tO7 z#bEU13mXYx;iMGzAAjM#8v9!8RoL^ee~P^ldjf@3?xedY^h;9ZMV4+D~G!<&ov2jZUE# zg#O63Z@?UAMxMA&Y!cg8EGuU>B(GF1H6txwE+19$G=e5mbAMFxd#zDBN4GqnSqymy zF?BSes({$$#bYAc*aEda_=Ppzp4%Kct?)Mw{52JBRl;A4@B@dN9RAY--y7k(O6c&w zx4-@w`w(0QsXUXjIPWUVt zKIQNy4xgmLe}7ov<4U;7;Uf$D`)c^`1pJZ1AMo-&tcEL>A7ocn!{rCz((mo;5{KX0 z;omrXz~Ofs-sjL-2^U*j>>`I27rd7W?{YY|-ptN9;GHmN=5Ut7+Z@htIL+ZL4yQPr zD#hU^+Fi=@Br^3R5SBvZ)+0b?|czQywz0DI6X$!DJ4T@XRC*6DOG1 z#D7qj;54uaCKzvk2RV$Zgt3({hQkBG0QNv9j6MNBn*?4Cqd1HlVPPY!Fk*NJ8)1Rr z!whV=wAWM-3cyK!IcM2131uv4i5HCh#C!%IEdsBkq6;usc;TqcvDy;*f>}@ zgmSRp1r`ow)YUv1OsgRz4~!fP`Y>kTpvSBAVW8unHGzhMf|n^AWGhH{AmT|8BPPHG zI13!1-Nb|eKuth6P(RIE{{rpze_teM$Nn!kwfc(wW9v|SKIN@_ZJKMJbjBGZ8;^=JMEA22-(l`s2u~jB8yN1yD zb)FBjak9G_69ZS8^F7+jojLw7?;M!OR)qOg_vTuAqqUiq&PU+cc`i~r1|bL&=H*@b+Ywca#Obv zzaqF^kJB!0?e(`&`gGVP7*i*H(%$w?X^+L^d5%IA?%{pB!@q(%8RVA^Z65vN4IcI4 z(l6~IZ#t8aDIWqiIg_#}D*`t;lduRGllUoBJ{mJHFf#B12~HW17zdE0HV4FA03^7S zfP|(8h-D5Wl>0!$G9aOv3?ix^rZ9pCW=5?mKryY?3=9C!iV3=tj4B=qIXE{8B_%~q FMhd%l9cTam diff --git a/paper/src/chapters/mdp_human.pdf b/paper/src/chapters/mdp_human.pdf index b753b4ea8fce0f6dfcb47961aafd33ed07beeed4..6ae3aa3b7cb7218b4f1994305782059333b98451 100644 GIT binary patch delta 280 zcmV+z0q6d)U9nxThAe+N6l_V39XFU9l0Yb>5R%?X4?-4>pjbwdOY`@YoYpjbwdOY`@YoH(WEw2vLl z49h?XE09yd!E#2}8q0M-stVcrWl+eDqEn6l$X<2p@Bt2r2A>n!o3Zy`WV@XdM{C+q zDvN~_+8VHwmFWtLv-gABWZ6VJD~7X{E;Y7GlIu5C39n6G3$K5$s5hMQf-ZT<*osp6 zMA;*y$!zi$3lG6M>W{*zm?I{ez?*8d*qNUYmxjlmixRxZ*Z0`H4+4kPU2(8x98gtp zi1XEDqBA-LYDMpc=q4{Seu1~6nx}o(s@1oasyXZ;45=e;lry81%3*o;JO!cj*YGaf e;a|bM@Z!sKw|)!Z2Df@)=@<3eZ$-0@Eg}Id5sV)I diff --git a/sim/rl/behavior_loader/models.py b/sim/rl/behavior_loader/models.py index 25c8c15..0b1d95e 100644 --- a/sim/rl/behavior_loader/models.py +++ b/sim/rl/behavior_loader/models.py @@ -310,12 +310,24 @@ def visualize_mdp( layout_radius: float = 10.0, node_diameter: float = 1.8, label_threshold: float = 0.08, + drop_isolated_nodes: bool = False, ): if not model.mdp: raise ValueError("build MDP first") evt_trans = aggregate_event_transitions(model.mdp) ordered_events = _resolve_event_order(evt_trans, event_order=event_order) + + edges = [ + (src, dst, prob) + for src, dsts in evt_trans.items() + for dst, prob in dsts.items() + if prob > threshold + ] + if drop_isolated_nodes: + connected = {src for src, _, _ in edges} | {dst for _, dst, _ in edges} + ordered_events = [evt for evt in ordered_events if evt in connected] + positions = _compute_flow_positions(ordered_events, layout_radius=layout_radius) g = graphviz.Digraph(format=fmt, engine="neato") @@ -353,15 +365,14 @@ def visualize_mdp( x, y = positions[evt] g.node(evt, label=_format_node_label(evt), pos=f"{x:.2f},{y:.2f}!", pin="true") - edges = [ - (src, dst, prob) - for src, dsts in evt_trans.items() - for dst, prob in dsts.items() - if prob > threshold - ] - edge_set = {(src, dst) for src, dst, _ in edges} + edge_set = { + (src, dst) for src, dst, _ in edges if src in positions and dst in positions + } for src, dst, prob in sorted(edges, key=lambda row: row[2]): + if src not in positions or dst not in positions: + continue + edge_attrs: Dict[str, str] = _edge_style(prob) if src == dst: @@ -537,6 +548,7 @@ if __name__ == "__main__": fmt="pdf", export_dot=True, event_order=canonical_events, + drop_isolated_nodes=True, ) common = set(human_evt.keys()) & set(agent_evt.keys())