Python实现Levy flight

您所在的位置:网站首页 莱维飞行公式 Python实现Levy flight

Python实现Levy flight

2023-09-23 12:49| 来源: 网络整理| 查看: 265

Levy flight 是一种随机游走(random walk)算法,每一步的步长从一个heavy tail分布函数中采样。 Mantegna7在1994年提出的一种用正太分布求解随机数的方法,有时也叫Mantegna方法,生成服从萊维分布的随机步长的方法如下:

Levy Distribution

import math import numpy as np from scipy.special import gamma import matplotlib.pyplot as plt import torch from visdom import Visdom x = np.arange(1,1000,0.1) y = [] beta = 3/2 alpha_u = math.pow((gamma(1+beta)*math.sin(math.pi*beta/2)/(gamma( ((1+beta)/2)*beta*math.pow(2,(beta-1)/2)) ) ),(1/beta)) alpha_v = 1 for t in x: u = np.random.normal(0,alpha_u,1) v = np.random.normal(0,alpha_v,1) step = u / math.pow(abs(v),(1/beta)) y.append(step) plt.plot(x, y, label="LevyFlight") plt.xlabel("x") plt.ylabel("y") plt.legend() plt.show()

这是运行1000次的结果: Levy Flight 可以从图中看出,以小步长为主,然后偶尔的大步长在其间。 挖个坑,有时间再更新…



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3