-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.py
More file actions
111 lines (98 loc) · 2.92 KB
/
config.py
File metadata and controls
111 lines (98 loc) · 2.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
"""
配置参数
"""
import os
from pathlib import Path
# 项目路径
PROJECT_ROOT = Path(__file__).resolve().parent
DATA_DIR = PROJECT_ROOT / "data"
DATA_GRAPH_PATH = DATA_DIR / "ruc_walk_5000m.graphml"
# 地图显示参数
DEFAULT_ZOOM = 16
DEFAULT_TILES = "openstreetmap"
RUC_LAT = 39.968056
RUC_LON = 116.305833
# 模拟参数
DEFAULT_TOTAL_PEOPLE = 1000
MAX_STEPS = 500
SIMULATION_RADIUS = 2000
AGENT_DENSITY = 0.001
SHELTER_UPDATE_INTERVAL = 10
DEFAULT_SHELTER_CAPACITY = 200
DEFAULT_SIMULATION_RADIUS = 1000
# 智能体属性
AGE_GROUPS = ["child", "adult", "elderly"]
AGE_SPEEDS = {"child": 0.8, "adult": 1.0, "elderly": 0.6}
PANIC_LEVELS = ["calm", "nervous", "panicked"]
PANIC_EFFECTS = {"calm": 1.0, "nervous": 0.8, "panicked": 0.6}
# LLM配置 - 通义千问
LLM_CONFIG = {
"api_key": os.getenv("QIANWEN_API_KEY"),
"base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1",
"model": "qwen-flash",
"timeout": 30,
"max_tokens": 32000,
"temperature": 0.7,
}
REWARD_WEIGHTS = {
"progress": 0.1,
"time_penalty": -0.01,
"congestion_penalty": -0.05,
"circuit_penalty": -0.2,
"arrival_reward": 10.0,
"safety_reward": 1.0,
"following_reward": 0.05,
}
FOLLOWING_RADIUS = 50
FOLLOWING_PROBABILITY = 0.7
# 颜色配置
COLOR_SCHEME = {
"disaster": "red",
"shelter": "green",
"agent": "blue",
"agent_child": "#339AF0",
"agent_adult": "#FF922B",
"agent_elderly": "#845EF7",
"agent_panicked": "#FF6B6B",
"agent_nervous": "#FFD93D",
"agent_calm": "#6BCF7F",
"path_single": "blue",
"path_multi_1": "purple",
"path_multi_2": "orange",
"path_multi_3": "darkred",
"risk_edge": "red",
"risk_edge_mid": "orange",
"simulation_bg": "#F8F9FA",
"panel_bg": "#FFFFFF",
}
FOLIUM_COLORS = [
'red', 'blue', 'green', 'purple', 'orange', 'darkred',
'lightred', 'beige', 'darkblue', 'darkgreen', 'cadetblue',
'darkpurple', 'white', 'pink', 'lightblue', 'lightgreen',
'gray', 'black', 'lightgray'
]
LAYOUT_CONFIG = {
"sidebar_width": 300,
"map_height": 600,
"chart_height": 300,
"refresh_interval": 100,
}
# ========= 新增:AI训练与teacher生成配置 =========
TEACHER_SAMPLES_PER_DISASTER = 30
ALLOCATION_TRAIN_EPOCHS = 80
EDGERISK_TRAIN_EPOCHS = 60
EDGERISK_POS_TOPK = 30
HEURISTIC_P = 1.5
GA_W_MAKESPAN = 1.0
GA_W_TOTAL_DISTANCE = 0.001
GA_W_MAX_CONGESTION = 0.01
# ========= 智能体模拟配置 =========
AGENT_GENERATION_CONFIG = {
"age_distribution": {"child": 0.2, "adult": 0.6, "elderly": 0.2},
"panic_distribution": {"calm": 0.4, "nervous": 0.4, "panicked": 0.2},
"panic_coefficient_range": {"calm": (1, 3), "nervous": (4, 7), "panicked": (8, 10)},
"conformity_coefficient_range": (3, 9), # 从众心理系数范围
"max_agents_per_simulation": 100, # 单次模拟最大智能体数
"llm_batch_size": 5, # LLM批量处理大小
"max_concurrent_llm_calls": 3, # 最大并发LLM调用数
}