在人工智能、经济学、网络安全甚至日常决策中,Python博弈论算法正变得越来越重要。无论你是编程新手还是想拓展知识边界的开发者,本教程将带你从零开始理解博弈论的基本概念,并用 Python 实现经典模型。小白也能轻松上手!
博弈论是研究多个理性决策者(称为“玩家”)在相互影响的环境中如何做出最优选择的数学理论。它广泛应用于经济学、政治学、计算机科学等领域。

纳什均衡(Nash Equilibrium)是博弈论中最著名的概念之一。它描述了一种状态:在该状态下,没有任何一个玩家能通过单方面改变自己的策略来获得更好的结果。
例如,在“囚徒困境”中,两个囚犯都选择“背叛”就是纳什均衡——即使合作对双方更有利,但出于自保,他们都会选择背叛。
下面我们用 Python 编写一个最基础的零和博弈(Zero-Sum Game)求解器。零和博弈是指一方的收益等于另一方的损失,总和为零。
假设我们有如下收益矩阵(Player A 的收益):
# Player B 的策略# B1 B2# A1 [ 3 , -2 ]# A2 [-1 , 4 ]
我们可以使用 numpy 和 scipy 来求解混合策略纳什均衡。以下是完整代码:
import numpy as npfrom scipy.optimize import linprogdef solve_zero_sum_game(payoff_matrix): m, n = payoff_matrix.shape # 目标函数:最小化 v(即最大化 -v) c = np.zeros(m + 1) c[-1] = -1 # 最后一个变量是 v # 不等式约束:A_ub @ x <= b_ub A_ub = np.hstack([-payoff_matrix.T, np.ones((n, 1))]) b_ub = np.zeros(n) # 概率非负且和为1 A_eq = np.hstack([np.ones((1, m)), np.zeros((1, 1))]) b_eq = np.array([1]) bounds = [(0, None) for _ in range(m)] + [(None, None)] res = linprog(c, A_ub=A_ub, b_ub=b_ub, A_eq=A_eq, b_eq=b_eq, bounds=bounds, method='highs') if res.success: p = res.x[:m] v = res.x[-1] return p, v else: raise ValueError("无法求解该博弈")# 示例:定义收益矩阵payoff = np.array([ [3, -2], [-1, 4]])probabilities, value = solve_zero_sum_game(payoff)print(f"Player A 的最优混合策略: {probabilities}")print(f"博弈值(期望收益): {value:.2f}")运行上述代码,你将得到 Player A 的最优策略(比如以 60% 概率选 A1,40% 概率选 A2)以及该博弈的期望收益值。这就是纳什均衡Python实现的一个典型例子。
通过本教程,你已经掌握了博弈论入门教程的核心思想,并亲手实现了零和博弈代码示例。下一步可以尝试更复杂的博弈类型,如非零和博弈、重复博弈或演化博弈。
记住:博弈论不是关于“赢”,而是关于“在互动中做出最优选择”。用 Python 探索它,你会发现算法与人性的奇妙交汇!
本文由主机测评网于2025-12-13发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025126920.html