单纯的我

单纯的我
2011年12月28日
   今天是我难忘的一天,一生中第一次参加大型的竞选,也就在今天,我对我过去所经历的30年的单纯画上一笔。同时我也看透了人性肮脏的一面以及尔虞我诈、官官相护,男盗女娼的丑恶。昨天的我豪情壮志,满怀信心,我还把我自己当成了当年在学校竞选文艺部长的小姑娘,积极地准备演讲稿,快乐的学习专业知识提高自己。可现在面对的呢?金钱、购物卡、肉体和选票赤裸裸的交易。就我还像SB一样怀着一颗为人民服务的心请朋友吃个饭,希望大家捧捧场,场面上的话是听了一遍又一遍,就好像津津有味的听着说书一样。每告一段落就会同样的一句话:欲知详情,且听下回分解......分解出来了,对我是莫大的讽刺,讽刺我的幼稚,讽刺我的单纯,这给我带来的痛苦远远超出了名落孙山的痛苦。没竞选上我无所谓,因为一开始我就做好了思想准备,至少证明我有这个实力敢去参与,我从不后悔。我后悔的是我亲自用手揭去了很多见利忘义小人的丑恶面具。也许以后我再不会参加竞选,我不适合在这个现实的官场上生活,我会好好经营我的小店,照顾好我的老公孩子和我的家人,今天我又长大了10岁,感谢你们.........
  当然生活中不光是这些小人,在后面默默帮助我支持我的也很多,我真的很感激你们,你们将永远永远的记在我的脑海里,我不会如你们想象的气馁,这只是生活中的一段小插曲,我还年轻,以后还有很多各样的机会,想到你们,我还想做单纯的我,真诚的谢谢你们!
单纯形法是一种用于求解线性规划问题的经典算法,其核心思想是在多维空间中通过构造一个初始的单纯形(由 $N+1$ 个点组成),并通过一系列几何操作如反射、扩展、收缩等逐步逼近极值点来寻找最优解。该方法特别适用于无约束优化问题部分有约束优化问题。 以下是一个使用 Python 实现单纯形法的基本示例代码,以解决最小化目标函数的问题: ### 目标函数 假设目标函数为: $$ f(x_1, x_2) = (x_1 - 2)^2 + (x_2 - 3)^2 $$ 这是一个简单的二维凸函数,其全局最小值在点 $(2, 3)$ 处。 ### 单纯形法实现代码 ```python import numpy as np def objective_function(x): return (x[0] - 2)**2 + (x[1] - 3)**2 # 示例目标函数 def simplex_method(func, initial_simplex, alpha=1.0, gamma=2.0, rho=0.5, sigma=0.5, max_iter=100, tol=1e-6): """ func: 目标函数 initial_simplex: 初始单纯形点,形状为(n+1, n) alpha: 反射系数 gamma: 扩展系数 rho: 收缩系数 sigma: 收缩步长系数 max_iter: 最大迭代次数 tol: 收敛容差 """ simplex = np.array(initial_simplex) n = simplex.shape[1] iterations = 0 while iterations < max_iter: # 计算每个顶点的目标函数值 f_values = np.array([func(point) for point in simplex]) # 排序:best, second_worst, worst indices = np.argsort(f_values) simplex = simplex[indices] f_values = f_values[indices] # 检查收敛条件 if np.max(np.abs(simplex[1:] - simplex[0])) < tol: break # 计算除最差点外的中心点 centroid = np.mean(simplex[:-1], axis=0) # 反射 x_reflect = centroid + alpha * (centroid - simplex[-1]) f_reflect = func(x_reflect) if f_reflect < f_values[-2]: if f_reflect < f_values[0]: # 扩展 x_expand = centroid + gamma * (x_reflect - centroid) f_expand = func(x_expand) if f_expand < f_reflect: simplex[-1] = x_expand else: simplex[-1] = x_reflect else: simplex[-1] = x_reflect else: # 收缩 x_contract = centroid + rho * (simplex[-1] - centroid) f_contract = func(x_contract) if f_contract < f_values[-1]: simplex[-1] = x_contract else: # 缩放整个单纯形 simplex = simplex[0] + sigma * (simplex - simplex[0]) iterations += 1 best_point = simplex[0] best_value = func(best_point) return best_point, best_value, iterations # 初始单纯形点 initial_simplex = [ [0.0, 0.0], [2.0, 0.0], [0.0, 2.0] ] # 运行单纯形法 best_point, best_value, iterations = simplex_method(objective_function, initial_simplex) print("最优解:", best_point) print("最优值:", best_value) print("迭代次数:", iterations) ``` ### 代码说明 1. **目标函数**:定义了一个简单的二维函数作为测试用例。 2. **单纯形法参数**: - `alpha`:反射系数 - `gamma`:扩展系数 - `rho`:收缩系数 - `sigma`:缩放系数 3. **收敛条件**:当单纯形的所有点之间的最大距离小于设定的容差时停止迭代。 4. **几何操作**:包括反射、扩展、收缩以及整体缩放操作,以逐步逼近最优解。 该实现可以扩展到更高维度,并根据具体问题调整目标函数及初始单纯形设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值