social_force_step — DRIVE traffic op

• Data kinds: points × points × points → any

• Call: import fullseye as fs; fs.ledger.social_force_step(pos, vel, goals, *, dt: 'float', v0, tau: 'float', A: 'float', B: 'float', radius, walls=None) (implementation को सीधे call करना हो तो import drivetraffic; drivetraffic.social_force_step(pos, vel, goals, *, dt: 'float', v0, tau: 'float', A: 'float', B: 'float', radius, walls=None), registry से लेना हो तो opsdrive.get("social_force_step"))

उपयोग

social force का 1 step (प्रति unit mass; Helbing & Molnár 1995 / Helbing, Farkas, Vicsek 2000 के रूप में)।

dv_i/dt = (v0_i e_i − v_i)/τ + Σ_j A exp((r_ij − d_ij)/B) n_ij + Σ_W A exp((r_i − d_iW)/B) n_iW

e_i = लक्ष्य की ओर इकाई सदिश (लक्ष्य से 1e-9 m के भीतर हो तो 0), r_ij = r_i + r_j, d_ij = |x_i − x_j|, n_ij = (x_i − x_j)/d_ij। दीवारें W रेखाखंडों ((x0, y0), (x1, y1)) की सूची हैं; d_iW और n_iW निकटतम बिंदु से लिए जाते हैं।

समाकलन (घातांकी समाकलक): प्रतिकर्षण बल F को चरण के दौरान स्थिर मानकर, रैखिक भाग (v_d − v)/τ (v_d = v0 e + τ F) को सटीक रूप से हल किया जाता है:

v' = v_d + (v − v_d) e^{−dt/τ}, x' = x + v_d dt + (v − v_d) τ (1 − e^{−dt/τ})। एक व्यक्ति और कोई प्रतिकर्षण न होने पर यह v(t) = v0(1 − e^{−t/τ}) से dt से स्वतंत्र रूप से मेल खाता है (गेट)। प्रतिकर्षण होने पर त्रुटि प्रथम कोटि की होती है।

तर्क: pos, vel, goals (N, 2) हैं। v0 और radius अदिश या (N,) हैं। walls (M, 2, 2) या None है। लौटाता है: (pos', vel')। यदि विन्यास दर्पण-सममित या बिंदु-सममित है, तो परिणाम भी वही सममिति रखता है (क्योंकि समीकरण सममित हैं; गेट से जाँचा गया)।

Raises ValueError: आकार असंगति, अपरिमित मान, τ, B या dt ≤ 0, A < 0, त्रिज्या < 0, दो व्यक्तियों की स्थिति एक ही होना।

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• gallery_drive_mirrors_crowds — py -3.11 examples/gallery_drive_mirrors_crowds.py

वे अगले ops जिनसे type जुड़ता है (any को input के रूप में लेते हैं)

course_crank · course_s_curve · course_turnaround · course_slope · course_intersection · course_parallel_parking · course_crossing · course_road

इसी category के (traffic)

idm_accel · idm_equilibrium_gap · idm_platoon_simulate · driver_style · lateral_wobble · ou_estimate · pedestrian_crossing · occlusion_reveal_distance


*Provenance: drivetraffic.py — DRIVE operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.