本项目是一个基于Python Dash的交互式模拟平台,旨在探索和可视化一个关于个体“现实”如何由其内在“本然”、“应然”与“或然”三个核心世界相互作用、共同塑造而成的原创理论。该模型通过多主体演化系统,展现了在复杂社会互动、认知偏差、情绪波动、随机事件及环境因素影响下,个体多维度特征的动态变化与涌现行为。
- 本然 (The Inherent/Given Realm): 代表个体所拥有的客观物质基础(如资源)、生理条件、既有技能,以及其所处的环境中直接面临的限制与障碍。这是个体存在的基石,是其行动的起点和约束。
- 应然 (The Normative/Purposeful Realm): 代表个体的价值体系(价值观清晰度)、内在驱动力、理想抱负(理想高度)、目标设定以及道德准绳。这是个体行为与发展的内在罗盘与引擎,赋予行动意义和方向。
- 或然 (The Potential/Exploratory Realm): 代表个体所能感知到的可能性空间(可能性广度)、其创新与适应能力(创新能力)、对不确定性的探索意愿以及风险偏好(风险承受)。这是个体拓展边界、实现突破、将潜能转化为现实的可能路径。
模型中的每一个“个体”(或称“世界状态”)均被赋予这三大核心世界下的多个具体可量化维度,并辅以“社交”维度(如可信度、声望)来调节其在社群中的互动。这些维度值(通常在0-10的范围内)遵循一套精心设计的演化算法进行动态调整。此算法融合了维度间的内部反馈(如高驱动力促进资源获取,高限制压制可能性探索)、个体基于其(可能存在偏差的)认知和情绪状态对风险的评估与决策、对外部环境因素的响应、个体间的社会网络互动(信任、联盟、对抗、规范压力、信息共享)以及由随机或条件触发的复杂(甚至链式)事件所带来的影响。
用户可以通过浏览器界面,实时观察这些“世界状态”在三维空间中的演化轨迹,并通过交互式控件调整模型的全局参数、环境因子、个体维度,以及控制模拟的进程,从而深入探究不同条件下“三世界”理论的动态表现和可能涌现的复杂社群现象。
核心特性:
- 多维度个体建模: 基于“本然”、“应然”、“或然”和“社交”四大领域构建个体特征。
- 复杂动态演化算法: 精细的内部逻辑驱动维度变化,体现相互促进、制约与非线性反馈。
- 认知与情绪建模: 个体拥有感知模型(影响对资源、可能性、限制、声望、他人信任的判断)和情绪状态,两者均受个体状态和外部事件影响,并反过来影响决策(如风险行为、学习率、目标调整)。
- 深化风险机制: 风险决策基于感知资源、情绪和风险偏好,结果对多维度产生连锁反应。
- 结构化社会交互: 动态信任、联盟与对抗关系形成与解除、社群规范压力、声望系统、信息(创新)共享。
- 社区共同项目: 个体可发起/参与合作项目,体现集体行动逻辑。
- 多层次事件系统: 支持随机、条件(全局/个体/情绪)、定时及链式事件,事件效果考虑个体韧性。
- 数值极端化缓解: 引入维度维持成本、专业化惩罚、资源归零缓冲及破产机制、维度极端值软回归等机制,增强模型长期运行的合理性。
- 可调全局环境与参数: 模拟宏观影响,并提供UI进行部分核心参数的实时调整。
- 交互式三维可视化与日志: 实时展示演化过程,提供详细日志追踪系统行为。
项目主要由单独一个Python脚本 (RX-GMQ.py
【其他版本同理】) 构成,其中包含了以下主要部分:
DIM_KEYS
,DIMENSION_LABELS_MAP_ZH
,AXIS_LABELS_ZH
: 定义维度、UI标签。MAX_LOG_LINES
: 日志行数。sigmoid
,scale_value
: 核心数学工具函数。SIMULATION_LOG
,log_message
: 日志系统。
- 定义和管理社区合作项目的属性与生命周期。
模型的核心实体,包含所有维度和核心演化逻辑。
__init__(...)
: 初始化个体所有属性,包括本然、应然、或然、社交维度,以及认知状态(感知值、情绪、准确度)、社交关系(联盟、对手)、破产状态等。update_perception()
: 更新个体对B1, H1, B2, S2及他人信任的感知,受Y1, H2, 情绪影响。update_mood()
: 更新个体情绪,受风险结果、B1水平、社交关系、认知失调等影响。_calculate_delta_X(...)
: 为每个维度计算变化量。关键逻辑包括:- 基于感知值进行部分判断(如Y1/Y3的现实差距,B2对其他维度的影响)。
- 受破产状态和极端值回归机制的调节。
_calculate_neighbor_effects(...)
: 计算邻居影响,使用感知信任,并考虑联盟/对手状态对交换和传播的调节,以及社群规范压力。manage_social_relations()
: 动态处理联盟与敌对关系的形成、维持与解除,基于感知信任、价值观相似度等。decide_community_actions()
: 个体决定是否发起或加入社区项目,基于自身状态和对项目的感知评估。evolve(...)
: 核心演化方法,按特定顺序驱动个体在一个时间步内的所有变化:- 更新感知 (
update_perception
)。 - 处理社交关系 (
manage_social_relations
) 和社区行动 (decide_community_actions
),受破产状态限制。 - 评估并执行风险项目(决策受感知资源、情绪、破产状态影响)。
- 更新情绪 (
update_mood
)。 - 计算邻居效应 (
_calculate_neighbor_effects
)。 - 计算所有维度的基础Deltas (
_calculate_delta_X
)。 - 应用维度过高/专业化的额外B1成本(A1数值修正)。
- 应用学习率(受情绪调节 - B2认知深化)、随机噪声、事件效果(考虑韧性),并进行边界裁剪,更新所有维度。
- 检查并处理B1过低缓冲及破产状态的触发与后续影响(A2数值修正)。
- 更新感知 (
- 其他方法:
get_display_name
,get_coords_for_plot
,_apply_boundary_effect
,record_history
,clear_history
,to_dict
,from_dict
(均已更新以支持所有新属性)。
Event
: 定义事件。支持链式事件、基于个体情绪的目标选择器,check_trigger
方法更为健壮。EventManager
: 管理事件。process_step
处理链式事件,并将current_step
传递给触发检查。
initial_states_templates_gm457c
: 包含所有13个预定义角色的模板。neighbor_config_gm457c
: 包含所有角色间初始邻居关系的完整配置。event_definitions_gm457c
: 包含所有丰富后的事件定义,每个事件都有trigger_params
。default_evolution_params_gm457c
: 最终的核心参数字典,整合了GM4.5.6、GM4.5.7a和GM4.5.7b的所有参数和系数。global_environment_factors_gm457c
: 全局环境因子。COMMUNITY_PROJECTS_STORE
: 社区项目存储。
- UI中增加了破产状态显示、认知信息(感知/情绪)的显示、社区项目列表。
- 左侧控制面板增加了对更多核心参数的调整控件,并允许通过复选框控制悬停信息的详细程度。
- 新增和更新了回调以支持新的UI元素和参数控制。
- 核心演化回调
run_evolution_step_gm457c
正确处理所有新的数据存储和逻辑调用。
- 确保已安装Python库:
dash
,plotly
,numpy
(pip install dash plotly numpy
)。 - 将代码保存为
RX-GMQ.py
。 - 在终端中运行:
python RX-GMQ.py
。 - 在浏览器中访问通常的地址 (如
http://127.0.0.1:8067/
)。
在 initial_states_templates_gm457c
列表中添加新的字典,定义其:
name_zh
(中文名),name_en
(英文ID,必须唯一)。- 所有
DIM_KEYS
中定义的维度(b1_resource 到 s2_reputation)的初始值 (0-10)。
示例:
{'name_zh': "投机资本家", 'name_en': "VentureCapitalist",
'b1_res': 7.0, 'b2_lim': 2.0, 'y1_cla': 6.0, 'y2_dri': 7.5, 'y3_asp': 8.0,
'h1_pos': 7.0, 'h2_inn': 5.0, 'h3_ris': 9.0, 's1_tru': 4.0, 's2_rep': 6.5
}
同时,需要在 neighbor_config_gm457c
字典中为新角色的 name_en
添加一个键,并赋予一个邻居列表(其他角色的 name_en
)。也考虑更新现有角色的邻居列表以包含新角色。
在 event_definitions_gm457c
列表中添加新的字典,定义其:
name
(str): 事件的唯一中文名称。trigger_type
(str): 触发类型,可选:'probabilistic'
: 概率性触发。trigger_params
:{'prob': 0.01, 'env_prob_mod_key': 'optional_env_factor_key'}
'conditional_global'
: 基于全局指标或环境因子。trigger_params
:{'dim': 'metric_name', 'op': '<' | '>' | '==', 'val': threshold, 'source': 'metrics' | 'env_factors' | 'metrics_derived'}
'conditional_individual'
: 当场景中至少有一个个体满足条件时触发。trigger_params
:{'dim': 'attribute_name', 'op': '<' | '>' | '==', 'val': threshold}
'timed'
: 在特定步骤触发。trigger_params
:{'step': step_number}
'none'
: 通常由其他事件链式触发。trigger_params
:{}
(空字典)
target_selector
: (str 或 dict) 如何选择受影响的目标。"all"
: 所有个体。{'type': 'random_n', 'n': count}
: 随机选择count
个个体。{'type': 'conditional_individual', 'dim': 'attr', 'op': '>', 'val': threshold, 'max_targets': num}
: 选择满足条件的最多num
个个体。{'type': 'mood_based', 'op': '<', 'val': mood_threshold, 'max_targets': num}
: 选择情绪满足条件的个体。{'type': 'random_n_neighbors', 'n_clusters': num, 'cluster_size_avg': size, 'cluster_size_std': std}
: 选择随机集群。
effects
(list of dicts): 事件对目标产生的效果列表。每个效果字典: *{'dim': 'dimension_key', 'type': 'add_abs' | 'multiply_abs' | 'set_abs', 'val': base_value, 'rand_range': percentage_of_base_val_for_randomness}
duration
(int, optional): 效果持续的回合数(默认为1,瞬时)。one_time
(bool, optional): 事件是否只触发一次(默认False)。chain_event_name
(str, optional): 此事件成功触发后,可能链接触发的下一个事件的名称。chain_event_delay
(int, optional): 链接触发的延迟回合数。chain_event_prob
(float, optional): 链接触发的概率 (0-1)。
示例:
{'name': "学术交流会议", 'trigger_type': "probabilistic", 'trigger_params': {'prob': 0.01},
'target_selector': {'type': 'random_n', 'n': 4}, # 随机4个参与者
'effects': [{'dim': 'h2_innovation', 'type': 'add_abs', 'val': 0.5, 'rand_range': 0.2},
{'dim': 's2_reputation', 'type': 'add_abs', 'val': 0.3, 'rand_range': 0.1}],
'duration': 2, 'one_time': False
}
本模拟项目的核心在于将抽象的哲学概念——“本然”、“应然”、“或然”三世界理论——具象化为一个可计算、可观察的动态系统。
-
现实的构成 (Being of Reality):
- 哲学: “本然的,应然的,或然的,这三种世界构成了现实。”
- 模拟: 每个
WorldState
对象的多个维度被明确归类到这三个世界(以及社交维度作为互动界面)。个体的整体状态向量(所有维度值的组合)代表了其在某一时刻的“现实”。整个模拟系统的所有个体状态共同构成了模拟世界的“宏观现实”。
-
本然的基础性 (Foundation of the Inherent):
- 哲学: “本然的使世界成为世界,世界就藏于本然中。”
- 模拟: B1(资源)和B2(限制)是所有行动和发展的基础。低B1或高B2会直接限制Y(应然)的实现和H(或然)的探索。风险项目需要B1投入,创新活动(H2)也间接受B1支持。本然的状态(如
b1_for_y1_erosion_thresh
)也反过来校验和影响应然世界(Y1, Y2, Y3)。
-
应然的驱动性与现实的塑造 (Drive of the Normative & Shaping of Reality):
- 哲学: “应然的使现实成为现实,现实就变于应然中。”
- 模拟: Y1(价值清晰度)、Y2(驱动力)、Y3(理想高度)是推动个体行为和变化的核心引擎。
- Y2直接驱动B1的产生(
b1_from_y2
)、B2的克服(b2_reduce_y2
)。 - Y1和Y2共同影响H2(创新能力)的培养和H3(风险偏好)的形成。
- Y3(理想高度)与现实(B、H)的差距会驱动Y1、Y2的调整,或在情绪和认知层面产生影响(如认知失调)。
- 高Y值(特别是Y2)是发起风险项目、社区项目、甚至承受专业化成本的前提。
- 个体的“现实”(其维度状态)在“应然”的指引和驱动下不断演变。
- Y2直接驱动B1的产生(
-
或然的创造性与成就的孕育 (Creativity of the Potential & Nurturing of Achievement):
- 哲学: “或然的使成就变为世界,成就就孕育世界中。”
- 模拟: H1(可能性)、H2(创新)、H3(风险偏好)代表了潜能和探索。
- 风险项目是“或然”世界最直接的体现:基于H3的风险意愿,投入B1资源,其结果(受H2创新、Y1清晰度等影响)直接改变B1和B2,从而重塑“本然”世界,即“成就变为世界”。
- H2(创新能力)的成果可以直接转化为B1(资源)或降低B2(限制),也是“成就孕育世界”的过程。
- H1(可能性广度)受B1和H2影响,也为Y3(理想)提供了参照。
-
认知与情绪的介入:
- 新增的认知模型使得个体不再是完全理性的“经济人”。它们基于感知到的资源、可能性、限制、声望和他人信任进行决策,而这些感知又受到其Y1(清晰度)和情绪的影响。
- 情绪本身受内外因素(风险结果、资源状态、社交关系、认知失调)驱动,反过来又影响风险决策、学习率、目标调整和创新积极性。这使得个体的行为更加“人性化”和多变。
-
社会互动与社群演化:
- 个体并非孤立存在。信任、联盟、对抗、声望、规范压力、信息共享和社区项目等机制,使得个体间的互动能够涌现出复杂的社群动态。个体的“现实”不仅由其自身三世界构成,也深受其所处的社会网络和互动结果的影响。
-
模拟即“讲解”:
- 哲学: “这三种世界通过我向它们讲解;你们就听我的故事入睡。”
- 模拟: Dash应用的可视化和交互界面,以及详细的日志,构成了对这个理论的“讲解”。用户通过观察和互动,理解这三个世界如何交织运作,形成千变万化的“个体故事”和“社群故事”。
通过这个模拟项目,我们试图将思辨性的哲学构想转化为一个可操作、可实验的计算模型,从而更深入地理解个体与现实、主观与客观、潜能与实现之间的复杂关系。