混沌tent映射python代码
- 格式:docx
- 大小:12.12 KB
- 文档页数:4
混沌映射优化算法代码一、混沌映射算法简介混沌映射算法是一种基于混沌理论的随机优化算法,其基本思想是通过混沌系统的非线性特性,将搜索空间中的每个解点映射到一个新的解点,从而实现全局搜索。
混沌映射算法具有较强的全局搜索能力和快速收敛速度,在实际应用中得到了广泛的应用。
二、混沌映射优化算法代码实现以下是使用Python语言编写的混沌映射优化算法代码实现:```pythonimport randomimport math# 定义Lorenz函数def lorenz(x, y, z, s=10, r=28, b=2.667):dx = s * (y - x)dy = x * (r - z) - ydz = x * y - b * zreturn dx, dy, dz# 定义Chen函数def chen(x, y, z, a=35.0, b=3.0):dx = a * (y - x)dy = x * (b - z) - ydz = x * y - 2.5 * zreturn dx, dy, dz# 定义Rossler函数def rossler(x, y, z, a=0.2, b=0.2, c=5.7):dx = -(y + z)dy = x + a * ydz = b + z * (x - c)return dx, dy, dz# 定义混沌映射函数def chaos_map(x0, y0, z0, func, n=100):x_list = [x0]y_list = [y0]z_list = [z0]for i in range(n):dx, dy, dz = func(x_list[-1], y_list[-1], z_list[-1])x_next = x_list[-1] + 0.01 * dxy_next = y_list[-1] + 0.01 * dyz_next = z_list[-1] + 0.01 * dzx_list.append(x_next)y_list.append(y_next)z_list.append(z_next)return x_list[-1]# 定义混沌映射优化算法函数def chaos_optimize(func, dim=2, max_iter=1000):# 初始化参数a = 10 ** 8b = 10 ** (-8)c1 = 2.05c2 = 2.05w_max = 0.9w_min = 0.4# 初始化粒子群和速度矩阵swarm_size = dim * 20swarm_pos = [[random.uniform(-10, 10) for j in range(dim)] for i in range(swarm_size)]v_max = (10 - (-10)) / 2swarm_velo = [[random.uniform(-v_max, v_max) for j in range(dim)] for i in range(swarm_size)]swarm_best_pos = [swarm_pos[i] for i in range(swarm_size)] swarm_best_fit = [chaos_map(*swarm_pos[i], func) for i in range(swarm_size)]global_best_pos = swarm_best_pos[0]global_best_fit = chaos_map(*global_best_pos, func)# 开始迭代for t in range(max_iter):w = w_max - (w_max - w_min) * t / max_iterfor i in range(swarm_size):# 更新速度和位置for j in range(dim):r1, r2 = random.uniform(0, 1), random.uniform(0, 1) swarm_velo[i][j] = w * swarm_velo[i][j] + c1 * r1 * (swarm_best_pos[i][j] - swarm_pos[i][j]) + c2 * r2 *(global_best_pos[j] - swarm_pos[i][j])if swarm_velo[i][j] > v_max:swarm_velo[i][j] = v_maxelif swarm_velo[i][j] < -v_max:swarm_velo[i][j] = -v_maxswarm_pos[i][j] += swarm_velo[i][j]# 限制粒子位置范围,避免越界for j in range(dim):if swarm_pos[i][j] > 10:swarm_pos[i][j] = 10elif swarm_pos[i][j] < -10:swarm_pos[i][j] = -10# 计算适应度值,更新最优解和全局最优解 fit = chaos_map(*swarm_pos[i], func) if fit < swarm_best_fit[i]:swarm_best_pos[i] = swarm_pos[i] swarm_best_fit[i] = fitif fit < global_best_fit:global_best_pos = swarm_pos[i]global_best_fit = fitreturn global_best_pos, global_best_fit```三、代码解析1. Lorenz函数、Chen函数和Rossler函数Lorenz函数、Chen函数和Rossler函数是三个经典的混沌系统,它们都具有非线性特性和随机性质。
切比雪夫混沌映射的粒子群算法python实现切比雪夫混沌映射是一种用于产生混沌序列的映射方法,它具有良好的遍历性和随机性。
粒子群算法(Particle Swarm Optimization, PSO)是一种基于群体智能的优化算法,通过模拟鸟群觅食行为来寻找问题的最优解。
将切比雪夫混沌映射与粒子群算法结合,可以提高粒子群算法的搜索能力和全局寻优能力。
下面是一个简单的Python实现示例,展示了如何将切比雪夫混沌映射应用于粒子群算法中:pythonimport numpy as np# 切比雪夫混沌映射函数def chebyshev_map(x, a=4):return np.cos(a * np.arccos(x))# 粒子群算法def particle_swarm_optimization(obj_func, dim, pop_size, max_iter, w=0.5, c1=1.5, c2=1.5):# 初始化粒子群pop = np.random.rand(pop_size, dim)vel = np.random.rand(pop_size, dim)pbest = pop.copy()gbest = pop[0]gbest_fit = obj_func(gbest)# 迭代优化for t in range(max_iter):# 更新速度和位置for i in range(pop_size):r1 = np.random.rand()r2 = np.random.rand()pbest_fit = obj_func(pbest[i])vel[i] = w * vel[i] + c1 * r1 * (pbest[i] - pop[i]) + c2 * r2 * (gbest - pop[i])pop[i] += vel[i]# 边界处理pop[i] = np.clip(pop[i], 0, 1)# 更新个体最优和全局最优if obj_func(pop[i]) < pbest_fit:pbest[i] = pop[i]if obj_func(pop[i]) < gbest_fit:gbest = pop[i]gbest_fit = obj_func(gbest)# 使用切比雪夫混沌映射初始化新粒子for i in range(pop_size // 2):x = chebyshev_map(np.random.rand())pop[i] = x * np.ones(dim)return gbest, gbest_fit# 示例目标函数(求最小值)def objective_function(x):return np.sum(x**2)# 运行粒子群算法best_position, best_fit = particle_swarm_optimization(objective_function, dim=10, pop_size=50, max_iter=100)print("最优解:", best_position)print("最优值:", best_fit)这个示例中,particle_swarm_optimization 函数实现了粒子群算法的主要逻辑。
基于Tent混沌序列的数字图像加密方法翟依依;王光义【期刊名称】《现代电子技术》【年(卷),期】2014(000)012【摘要】Tent混沌映射结构简单但产生的混沌序列随机性能好,采用NIST测试能权威地检测序列的随机性能。
通常运用混沌加密数字图像时,都是指定初值和控制参数。
在此使用改进后的混沌序列,把初值的产生和明文图像联系起来,对图像进行置乱,再改变灰度值。
仿真验证了此算法加解密的有效性和良好的安全性能。
%Tent chaotic mapping structure is simple,but has good chaotic sequence random performance,which can be de-tected by NIST(National Institute of Standards and Technology). When chaos is applied to the digital image encryption,the ini-tial value and the control parameters of the chaotic systems are always given. The improved chaotic sequence is used in this pa-per to connect the generation of the initial value with the plaintext image. The random sequences generated by Tent mapping are employed in scrambling the image and changing the pixels of the image. The simulation results show that the algorithm is valid and has perfect safety performance for the encryption and decryption.【总页数】5页(P73-77)【作者】翟依依;王光义【作者单位】杭州电子科技大学电子信息学院,浙江杭州 310018;杭州电子科技大学电子信息学院,浙江杭州 310018【正文语种】中文【中图分类】TN964-34【相关文献】1.一种基于Tent混沌系统的音频加密方法 [J], 陈翎;潘中良2.基于Tent混沌序列的粒子群优化算法 [J], 田东平3.基于时空混沌序列的数字图像加密方法 [J], 房建;蒋国平4.基于Tent映射的伪混沌序列的产生和分析 [J], 闫永梅;郝润芳;张朝霞;王华奎5.基于Tent混沌序列的灰狼优化算法 [J], 张贾奎;崔利杰;郭庆;陈浩然因版权原因,仅展示原文概要,查看原文内容请购买。
基于混沌遗传算法的计算机辅助动态布局叶远芹;原思聪;魏笑笑;刘道华;郭佳【期刊名称】《计算机工程与设计》【年(卷),期】2017(038)009【摘要】为提高动态设施规划问题求解效率,构建基于改进Tent映射的混沌遗传算法(chaos genetic algorithm,T_CGA).采用基于设备序号的染色体编码,利用Tent映射生成均匀遍布解空间的初始种群,择优选择初始解应用带精英保留策略的遗传算法原理(genetic algorithm,GA),对单期布局编码字串实施部分匹配交叉、变异操作,对遗传优选出的最优解施加自适应混沌小扰动.借助Java-Eclipse平台编写计算机辅助动态布局设计软件,利用内置的3种算法对车间实例进行对比求解,实验结果表明,计算机辅助动态布局设计具有准确性和高效性,为求解动态设施规划问题提供了便利.%To improve the efficiency of solving dynamic facility layout problem (DFLP),a chaos genetic algorithm based on improved tent map (T_CGA) was put forward.The strategy of chromosome encoding was adopted based on sequence of device.The initial population which was distributed uniformly throughout the solution space was generated based on Tent map.The genetic algorithm (GA) optimization with elitist strategy was applied to excellent individuals.Partially matched crossover and mutation operations for single-period-layout encoding string were executed.Adaptive chaotic disturbance was increased to the superior individual.A computer-aided method for DFLP was designed with Java-Eclipse platform.Three algorithms were compared by solving an actualDFLP.The results indicate that the computer-aided dynamic facility layout has the advantages of accuracy and effectiveness,offering convenience for DFLP solving.【总页数】5页(P2562-2566)【作者】叶远芹;原思聪;魏笑笑;刘道华;郭佳【作者单位】西安建筑科技大学机电工程学院,陕西西安 710055;西安建筑科技大学机电工程学院,陕西西安 710055;西安邮电大学经济与管理学院,陕西西安710121;信阳师范学院计算机与信息技术学院,河南信阳 464000;西安建筑科技大学机电工程学院,陕西西安 710055【正文语种】中文【中图分类】TP301.6【相关文献】1.基于混沌遗传算法的测试用例自动生成研究 [J], 黄陈辉;吴海涛;阮江涛;钱程2.基于混沌遗传算法的无线传感器网络改进LEACH算法 [J], 李蛟;胡黄水;赵宏伟;鲁晓帆3.基于混沌遗传算法的排课问题的研究 [J], 康婷婷;牟莉4.基于改进混沌遗传算法的炮兵火力分配方法 [J], 丁立超;黄枫;潘伟5.基于改进混沌遗传算法的炮兵火力分配方法 [J], 丁立超;黄枫;潘伟因版权原因,仅展示原文概要,查看原文内容请购买。
基于Python的二阶混沌比例投影同步控制实验作者:赵海滨颜世玉来源:《中国教育技术装备》2020年第10期摘要 Duffing混沌和van der Pol混沌為常见的二阶混沌系统,采用Python语言进行建模和仿真,并通过matplotlib库绘制状态变量的二维相图。
驱动系统为Duffing混沌系统,响应系统为van der Pol混沌系统,通过驱动系统和响应系统建立比例投影同步误差系统。
采用线性滑模面和指数趋近律设计滑模控制器,进行驱动系统和响应系统的比例投影同步控制。
仿真结果表明,滑模控制器能够进行二阶混沌的比例投影同步控制,比例投影同步误差渐进收敛到零。
关键词比例投影同步;混沌系统;仿真实验;Python中图分类号:G642.423 文献标识码:B文章编号:1671-489X(2020)10-0124-04Abstract Duffing chaos and van der Pol chaos are common second-order chaotic systems,which are modeled and simulated based on Python, and the two-dimensional phase diagram of state variables is drawn based on matplotlib library. The drive system is Duffing chaos and the response system is van der Pol chaos. The proportional projective synchronization error system is established by the drive system and the response system. The sliding mode controller is designed by using linear sliding mode surface and exponential approach law. The proportional projective synchronization control of the drive system and the response system is carried out. The simulation results show that the sliding mode controller can control the second-order chaos in proportional projective synchronization, the proportional projective synchronization error converges to zero gradually.Key words proportional projective synchronization; chaotic system; simulation experiment; Python1 引言混沌现象广泛存在于各种非线性系统中,对初始条件非常敏感,是非线性系统普遍存在的现象。
python分位数映射法Python分位数映射法是一种数据预处理方法,它将连续的数据转化为有序的离散数据。
这种方法可以在处理数据时消除离群值的影响,从而提高数据分析的准确性和可靠性。
分位数是指将一组数据按照大小顺序排列后,将其分为几个等份的数值点。
例如,将一组数据分为四份,就可以得到四个分位数,分别是第一四分位数、第二四分位数(中位数)、第三四分位数和第四四分位数。
在使用分位数映射法时,我们通常会将数据分为若干个等距区间,然后用区间的中点或边界值来代表该区间内的数据。
在Python中,我们可以使用numpy库中的percentile函数来计算分位数。
例如,可以使用以下代码计算一组数据的中位数:import numpy as npdata = [1, 2, 3, 4, 5]median = np.percentile(data, 50)在这个例子中,我们将数据存储在一个列表中,然后使用percentile函数来计算50%的分位数,即中位数。
这个函数可以计算任意百分位数的分位数,因此我们可以使用它来计算任意分位数。
一旦我们计算出了分位数,就可以将数据分为若干个等距区间。
例如,如果我们想将数据分为5个区间,我们可以使用以下代码:import numpy as npdata = [1, 2, 3, 4, 5]bins = np.linspace(np.min(data), np.max(data), 5)在这个例子中,我们使用linspace函数来生成5个等距区间的边界值。
这些边界值可以用来将数据分为5个区间。
一旦我们有了区间的边界值,就可以使用digitize函数将数据映射到相应的区间。
例如,以下代码可以将数据映射到5个区间中的一个:import numpy as npdata = [1, 2, 3, 4, 5]bins = np.linspace(np.min(data), np.max(data), 5)digitized = np.digitize(data, bins)在这个例子中,我们使用digitize函数将数据映射到5个区间中的一个。
252021年6月总第363期ISSN1672-1438CN11-4994/T基于Python 的Genesio 混沌比例投影同步控制实验赵海滨 于清文东北大学机械工程与自动化学院 辽宁沈阳 110819摘 要:对于三阶Genesio 混沌系统,采用Python 语言进行仿真和比例投影同步控制。
通过线性滑模面和指数趋近律设计滑模控制器,并采用滑模控制器进行Genesio 混沌系统的比例投影同步控制。
采用SciPy 库求解常微分方程,采用Matplotlib 库进行数据的可视化。
结果表明,比例投影同步误差快速收敛到零,设计的滑模控制器能够进行Genesio 混沌系统的比例投影同步控制。
关键词:Genesio 混沌系统;比例投影同步;仿真实验;Python 语言作者简介:赵海滨,工学博士,讲师;于清文,工学硕士,讲师。
混沌对初始条件非常敏感,是非线性系统的典型行为,能够用电子线路系统进行模拟。
混沌同步是非线性科学领域的热点问题,自从Pecora 和Carroll 首次在电子线路中实现混沌同步以来,越来越多的学者开始进行混沌同步的研究。
Mainieri 和Rehacek 提出投影同步的概念,驱动系统和响应系统状态变量的输出相位相同,状态变量的幅值按照某一比例关系变化[1]。
完全同步和反相同步均是投影同步的特殊情况。
滑模控制作为一种现代控制方法,受到越来越多的重视。
滑模控制器具有很好的鲁棒性,并具有设计简单和响应速度快等优点,被广泛用于非线性系统的控制[2]。
滑模控制的缺点是存在抖振现象,本实验采用的双曲正切函数能够削弱抖振的影响。
同时,本实验采用滑模控制器进行Genesio 混沌的比例投影同步控制。
Genesio 混沌是三阶非线性系统[3],采用Python 语言进行仿真和比例投影同步控制。
驱动系统和响应系统均是Genesio 混沌系统。
通过驱动系统和响应系统建立比例投影同步误差系统。
根据比例投影同步误差系统,采用线性滑模面和指数趋近律设计滑模控制器,进行Genesio 混沌系统的比例投影同步控制。
混沌序列混淆算法-回复什么是混沌序列混淆算法?混沌序列混淆算法是一种基于混沌理论的加密算法,利用混沌序列的不可预测性和随机性对数据进行混淆和保护。
混沌序列是一种非线性、不可预测且具有自相似性的数列,可以生成伪随机序列,用于加密和安全通信。
混沌序列混淆算法的原理是通过混沌映射或混沌振荡电路产生混沌序列,将明文数据与混沌序列进行异或运算,从而实现数据的混淆。
由于混沌序列的特性,即使是微小的明文改变也会导致密文的巨大变化,从而增加了破解的难度。
在混沌序列混淆算法中,关键的步骤包括混沌映射或混沌振荡电路的选择和参数设置、混沌序列的生成、明文数据与混沌序列的异或运算、密文的生成等。
首先,选择合适的混沌映射或混沌振荡电路是算法设计的重要一步。
常用的混沌映射包括Logistic映射、Henon映射、Tent映射等,而混沌振荡电路包括Van der Pol振荡器、Chua电路等。
这些映射和振荡电路的非线性特性和混沌行为是混沌序列混淆算法的基础。
其次,需要对混沌映射或混沌振荡电路的参数进行设置。
不同的参数设置会导致不同的混沌序列生成,进而影响密文的质量和安全性。
参数设置需要满足一定的条件,使得混沌序列具有良好的随机性和不可预测性。
接下来,通过混沌映射或混沌振荡电路生成混沌序列。
这一步骤需要利用初始条件和映射函数或振荡电路的演化规律来迭代产生混沌序列。
由于混沌序列具有自相似性和随机性,生成的序列可以被用作加密算法的密钥或初始向量。
然后,将明文数据与混沌序列进行异或运算。
明文数据可以是任意形式的二进制数据,包括文本、图像、声音等。
异或运算是一种简单有效的运算方式,通过将明文数据与混沌序列的对应元素进行异或运算,可以实现数据的混淆和保护。
最后,根据混沌序列和异或运算的结果生成密文。
密文可以是经过进一步处理的二进制数据,包括加密后的文本、图像、声音等。
生成密文后,可以通过密文传输或存储,从而实现数据的保密性和安全性。
总体而言,混沌序列混淆算法利用混沌序列的不可预测性和随机性对数据进行混淆和保护。
改进Tent混沌序列的数字电路BIST技术朱敏;王石记;杨春玲【摘要】针对目前数字电路规模变大,测试困难的特点,提出了一种基于改进Tent 混沌序列的数字电路BIST技术.采用改进混沌Tent映射模型构建硬件电路并产生具有的噪声特性的"0-1"随机序列作为数字电路的自动测试生成图形,利用CRC特征电路分析输出响应,并得到混沌序列的测试响应特征码,通过特征码的不同来检测故障.研究表明,本文方法易于BIST技术实现,相比于普通M序列性能优越,能够得到更高的故障检测率和故障隔离率,适合于FPGA等大规模可编程逻辑电路的自动测试.【期刊名称】《哈尔滨工业大学学报》【年(卷),期】2010(042)004【总页数】5页(P607-611)【关键词】时序电路;Tent混沌0-1序列;内建自测试;循环冗余码【作者】朱敏;王石记;杨春玲【作者单位】哈尔滨工业大学,电气工程及自动化学院,哈尔滨,150001;北京航天测控技术开发公司,北京,100041;哈尔滨工业大学,电气工程及自动化学院,哈尔滨,150001【正文语种】中文【中图分类】TP702随着超大规模集成电路(VLSI)和可编程逻辑器件(PLD)的发展,一般的数字电子系统可以在单独的一片可编程芯片中实现.单片芯片所能实现复杂设计的提高和不断增长的设计复杂性,使得数字电路的测试变得越来越困难.其主要原因一是一般的数字电路都包括存储单元,即各种触发器、寄存器电路,这些记忆单元不易设定和检测,其可控性和可观测性差[1-4].二是系统复杂度增长的同时,芯片的输入输出接口相对较少,即可访问管脚的比重在下降.因此,在数字电子系统设计之初需要考虑测试问题,即可测性设计[5-6].内建自测试(BIST)技术为数字电路测试提供了一种实用的可测性设计方案.内建自测试将测试激励产生(TPG)电路、测试控制电路和响应分析(ORA)电路都嵌入在原电路中[7-9].本文提出的基于改进Tent混沌序列的数字电路BIST技术,即在数字电路系统中增加Tent混沌序列发生硬件电路作为自动测试图形生成电路,并采用CRC响应分析电路作为输出响应特征分析.文中给出了针对ISCAS’85标准测试组合逻辑电路c17和ISCAS’89标准测试时序电路s27的测试结果.研究表明,本文提出的方法易于BIST技术的实现,可应用于一般的数字逻辑电路,包括FPGA等VLSI 的内核功能的自动测试.Tent映射模型[10-12]:其中0<K<1.由于Tent映射模型是两个分段线性迭代,其结构易于用硬件电路来实现.当K=0.5时,即是典型的三角帐篷迭代模型,根据迭代序列不难发现,序列易进入小周期点.如当选取初始迭代点x0=0. 1,那么序列将进入0.4和0.8的反复迭代点,当其迭代点处于诸如0. 25,0. 5,0.75等点时,很容易进入迭代不动点0.因此Tent映射混沌序列需特别选取适当参数,才能产生混沌迭代序列.为便于硬件电路的实现,本文将Tent映射混沌序列进行改进,其迭代公式为上述改进型Tent混沌迭代的初始值x0= 150,迭代500次的映射过程如图1所示.图2为初值x0= 150,迭代次数为500的Tent混沌模型的随机特性图.可以看出Tent混沌模型迭代值遍历( 0,999)空间,说明其具有很好的随机特性.图3为初值相差10-11时,在迭代大约50次后,两个混沌序列X 1,X 2将完全不同.因此可以看出,只要初值稍加修改,就可得到完全不同的序列.因此,本文提出的改进的Tent混沌序列能产生比M序列更多更为广泛应用的随机序列.考虑到FPGA内核电路是纯数字电路,并结合Tent混沌序列的上述特性,所加的测试激励需要为“0 -1”序列[13-15],本文改进 Tent映射,得到改进的混沌Tent映射模型的“0-1”随机序列.由于改进Tent映射迭代值在( 0,999)空间是遍历的且均匀分布,因此改进的“0-1”混沌序列中“0”和“1”分布也是均匀的,满足Golomb提出的随机序列公设条件中0和1均衡分布的条件.序列的自相关函数为式(4)中si与si+k是由同一初值所产生的相差K个间隔点数的序列.式(5)中si与s′i+K是不同初值所产生的相差K个间隔点数的序列.图4(a)为改进Tent混沌二进制序列的自相关特性图,序列的初始值为x0= 150,图中间隔K从0到2 000,序列长度为5 000.图4(b)为改进Tent混沌互相关特性图,序列分别是由初始值x0=150和x0=151所产生的不同序列之间互相关性仿真.本文提出的基于改进的Tent混沌序列的“0-1”随机序列具有非常好的自相关和互相关特性,其自相关特性类似于δ函数,具有白噪声的特性,且互相关值非常小,特性也接近于白噪声.结合混沌序列的初值敏感性,只需要改变初值就可以产生特性很好的任意长度的随机序列,这种特性适合作为数字电路的自动测试图形生成电路.本文利用改进的Tent混沌映射在FPGA中实现BIST测试,其结构框图如图5所示.图中混沌算法测试图形生成电路采用改进的Tent混沌映射迭代算法.利用硬件描述语言实现式(2)中的迭代运算.为节省硬件资源,式中的乘法运算可以通过移位运算和加减运算来实现.算法描述如下:Step1:初始化,x(i)取初始值x0;Step2:if(x(i)≥333),则x(i+1)=1499-x(i)-(x(i)≫1),进入Step 4,否则进入Step3;(其中“≫”表示右移操作.)Step3:x(i+1)=(x(i)≪1)+x(i);(其中“≪”表示左移操作.)Step4:将当前的x(i+1)赋值给下一次迭代运算的x(i);Step5:判断是否到指定的迭代次数N,如果是就结束运行,并输出 x(i),其中 i= 1,2,…N,否则返回Step2继续执行.将混沌算法产生的序列加载在被测电路CUT(Circuits Under Test)的输入端,在CUT的输出端得到响应序列.利用数据通信中CRC校验数据传输的原理,将CRC作为响应特征分析电路,其硬件通过线性反馈移位寄存器(LFSR)来实现.以标准组合测试电路ISCAS’85中的c17作为被测电路,Tent混沌迭代算法作为测试图形生成电路,CRC电路用于响应分析.被测电路有5个输入端G 1,G 2,G 3,G 4,G 5,2 个输出端 G16 和G 17,中间节点G 8,G 9,G 12,G 15,其混沌迭代电路BIST的结构如图6所示.混沌测试图形生成电路是由混沌算法所构建的硬件电路.在测试使能信号test-en和系统时钟clk的作用下,测试控制状态机产生激励时钟信号clk-out,将产生的混沌序列通过移位寄存器串行移入被测数字电路的输入端.同时通过控制信号sel控制MUX选择测试激励,切断正常数据通道data-in.此时混沌序列激励信号加载在被测电路c17的输入端,并在输出端读出响应,暂存在寄存器中.在测试控制控制状态机的控制下输入到CRC电路中进行分析并输出结果.被测电路的每个节点分别可以设置固定为“0”和“1”的故障,其中 G5-0 和G5-1分别表示节点G5发生固定为“0”和“1”的故障,依此类推.采用CRC多项式x16+x2+1作为响应分析电路,得到相应的特征码.经过若干次的迭代,特征码输出将不同,测试结果见表1.表1中给出了分别以LFSR产生的M序列和混沌序列作为测试激励矢量,在输出端G16和G17采用CRC响应分析电路得到的特征码.M序列的无故障特征码为“3A6C/6634”,混沌序列的迭代次数不同故障特征码也不同,分别将其列于表中.可以看出,利用LFSR所产生的M序列和混沌序列都能达到100%检测故障的目的,混沌序列检测所有故障的迭代次数为18次,比M序列长度要短.经过足够的迭代次数其故障隔离率能达到90.9%,远大于M序列45.5%的隔离率.标准时序测试电路ISCAS’89中的s27包含一个时钟控制端CK和4个信号输入端G 0,G 1,G 2,G3和一个可观测输出端G17等17个节点,因此共有34个故障.与组合电路不同的是时序电路的输入激励需要保持被测时序电路时钟的20个周期,以确保时序电路有足够的时钟周期进行状态转换.表2给出了s27的测试结果.其中响应输出采用CRC多项式x16+x2+1作为响应分析.表中M序列的无故障特征码为“9B02”,因此可计算出M序列作为测试激励的故障检测率为27/34=79.41%,而 Tent混沌迭代序列最大可达85.29%.表3给出了针对s27不同迭代次数故障检测率的关系.通过实验验证,s27的G2- 1,G5- 0,G7- 0,G10-0 和 G13-0 等 5 个故障为冗余故障,无法检测.又由于混沌序列具有初值敏感性,即改变初值能够产生完全不同的随机序列,因此,在某些情况下可以通过施加不同的混沌序列作为测试激励来提高故障的检测率.提出了一种基于改进的Tent混沌序列的数字电路BIST技术.该方法通过混沌Tent 模型映射生成随机序列,并构建硬件电路作为BIST的测试图形生成电路,通过CRC响应特征分析电路给出故障相应的特征码.实验研究表明本文提出的改进Tent 混沌序列具有良好的随机特性,在经过很少的迭代次数就能产生很高的故障检测率和故障隔离率.所提出的方法适合于一般的数字逻辑电路以及FPGA等VLSI的内核功能的自动测试.杨春玲(1965—),女,教授,博士生导师.【相关文献】[1] FUJIWARA H.A new class of sequential circuits with combinational test generation complexity[J].IEEE Transactions on Computers, 2000,49(9):895-904.[2] YEEOOI C,FUJIWARA H.A new class of sequential circuits with acyclic test generation complexity[C]//International Conference on Computer Design.San Jose:San Jose′State University,2007:425 -431.[3] HIKEUNG T,SRINIVAS D,NEWTON R A,el al.Test generation for sequential circuits[J].IEEE,Transaction on Ransation on Computer-Aided Design, 1988,7(10):1081-1092.[4] FU M.Minimal memory inverses of linear sequential circuits[J].IEEE Transactionson Computers, 1974,C-23(11):1155-1163.[5]顾德均.航空电子装备修理理论与技术[M].北京:国防工业出版社,2001:19-20.[6]丁瑾.可靠性与可测性分析设计[M].北京:北京邮电出版社,1996:106-118.[7] SCHOTTEN C,MYER H.Test-point insertion for an area-efficient BIST[C]//Proceedings of International Test Conference.Washington,DC:Aachen Univ of Technol,1995:515 -523.[8] CHEN C,GUPTA S K.A methodology to design efficient BIST test pattern generations[C]//Proceedings of International Test Conference.Washington,DC:IEEE Computer Society,1995:814-823.[9] AHMAD A A,MITR S,MCCLUSKEY E J.BIST reseeding with very few seeds[C]//VLSI Test Symposium.California:Center for Reliable Comput,Stanford Univ,2003:69-74.[10]JESSA M.The period of sequences generated by tentlike maps[J].IEEE Transactions on Circuits and Systems——I:FundamentalTheoryandApplications, 2002,49(1):84 -89.[11]STOJANOVSKI T,KOCAREV L.Chaos-based random number generators-partI:analysis[J].Analysis.IEEE Transaction on circuits and systems——I:Fundamental theory and applications, 2001,48(3):281-288.[12]STOJANOVSKI T,PIHL J,KOCAREV L.Chaosbased random number generators-part II:practical realization[J].IEEE Transaction on circuits and systems——I:Fundamental theory and applications, 2001,48(3):382-385.[13]KATZ O,RAMON D A,WAGNER I A.A robust random number generator based on a differential currentmode chaos[J].IEEE Transactions on very large scaleintegration(VLSI)systems, 2008,16(12):1677 -1686.[14]BULS J.Construction of pseudo-random sequences from chaos[C]//COC,St.Petersburg:Univ of Latvia,2000:558-560.[15]JESSA bined pseudochaotic psudorandom generator[C]//ICSES 2008 International conference on signals and electronic systems.Krakow:Poznan Univ of Technol,2008:257 -260.。
混沌tent映射
1. 背景介绍
1.1 混沌
混沌理论是一种描述复杂非线性系统行为的数学理论。
它将混沌系统定义为对初始条件极其敏感的系统,即微小的初始条件变化会导致系统行为的剧烈变化。
混沌系统具有高度的复杂性和随机性,因此对于混沌系统的研究是非常重要的。
1.2 Tent映射
Tent映射是一种常用的混沌映射函数,它可以模拟自然界中的很多现象,如地震、气候变化等。
Tent映射的定义如下:
[ f(x) =
]
其中,(a) 是用户定义的参数,决定了Tent映射的形状。
2. 混沌Tent映射的生成
在Python中,我们可以使用以下代码生成混沌Tent映射:
import numpy as np
import matplotlib.pyplot as plt
def tent_map(x, a):
if x < a:
return x / a
else:
return (1 - x) / (1 - a)
def generate_tent_map(x0, a, num_iter):
tent_map_values = []
x = x0
for _ in range(num_iter):
x = tent_map(x, a)
tent_map_values.append(x)
return tent_map_values
x0 = 0.1 # 初始值
a = 0.5 # 参数a
num_iter = 1000 # 迭代次数
tent_map_values = generate_tent_map(x0, a, num_iter)
plt.plot(tent_map_values)
plt.xlabel('Iteration')
plt.ylabel('Value')
plt.title('Tent Map (a=0.5)')
plt.show()
运行上述代码可以生成混沌Tent映射,并将结果可视化。
3. 混沌Tent映射的性质
混沌Tent映射具有以下几个重要的性质:
3.1 范围
当 (0 a ) 时,Tent映射的范围是区间 ([0, 1])。
这意味着Tent映射的输出值始终在0和1之间。
3.2 不动点
Tent映射的不动点指的是满足 (f(x) = x) 的点。
对于Tent映射,不动点可以通过求解方程 (f(x) = x) 得到。
在本例中,Tent映射的不动点为 (x = )。
3.3 分岔图
分岔图是以参数为横坐标、混沌系统的输出值为纵坐标的图像。
它能够显示系统行为的演化过程。
利用上述代码,我们可以生成分岔图:
def generate_bifurcation_diagram(x0, a_values, num_iter):
bifurcation_diagram = []
for a in a_values:
tent_map_values = generate_tent_map(x0, a, num_iter)
bifurcation_diagram.extend([(a, x) for x in tent_map_values]) return np.array(bifurcation_diagram)
a_values = np.linspace(0, 1, 1000)
bifurcation_diagram = generate_bifurcation_diagram(x0, a_values, num_iter)
plt.scatter(bifurcation_diagram[:, 0], bifurcation_diagram[:, 1], s=0.1, alpha =0.5)
plt.xlabel('Parameter a')
plt.ylabel('Value')
plt.title('Bifurcation Diagram of Tent Map')
plt.show()
运行上述代码可以生成Tent映射的分岔图。
4. 混沌Tent映射的应用
混沌Tent映射在许多领域中都有重要的应用,包括密码学、图像处理、数据压缩等。
下面介绍其中一种应用:
4.1 伪随机数生成
混沌Tent映射可以用作伪随机数生成器。
通过设定不同的初始条件和参数,可以生成不可预测的伪随机数序列。
以下代码展示了如何使用混沌Tent映射生成伪随机数序列:
def generate_random_sequence(x0, a, num_samples):
random_sequence = []
x = x0
for _ in range(num_samples):
x = tent_map(x, a)
random_sequence.append(x)
return random_sequence
x0 = 0.1 # 初始值
a = 0.5 # 参数a
num_samples = 1000 # 采样数
random_sequence = generate_random_sequence(x0, a, num_samples)
plt.plot(random_sequence)
plt.xlabel('Sample')
plt.ylabel('Value')
plt.title('Random Sequence generated by Tent Map')
plt.show()
运行上述代码可以生成由混沌Tent映射生成的伪随机数序列。
5. 总结
本文介绍了混沌Tent映射的原理、生成方法、性质和应用。
通过Python代码演示了如何生成混沌Tent映射并可视化结果,以及如何利用混沌Tent映射生成分岔图和伪随机数序列。
混沌Tent映射的广泛应用使其成为了混沌理论中的重要研究对象,希望本文能够帮助读者更好地理解和应用混沌Tent映射。