matlab-Grefenstette的编码与解码
在遗传算法中
执行交叉变异得到正确的子代结果
是十分重要的一步
为了更好的交叉变异
有人发明了Grefenstette编码
Grefenstette的编码定义如下:
既是:通过已有的顺序(非常重要,编码解码都靠它),
产生一个访问序列,
且每访问完一个点,就需要把点从已有序列删除,形成新的序列
作为新的访问前置条件
例如已有顺序
1,2,3,4,5
编码集:4,2,1,2,1
通过编码集得到的解码集:
解码集:4,2,1,5,3
注意编码集最后一位永远都是以1结束
以种群数量S 与 生存环境数量M为研究对象,
产生一个1——M的序列
加上s就是:
产生一个SxM的原始已有序列矩阵,每一行为一个种群对于的已有序列
再根据Grefenstette的编码规则:
访问生成序列下标并删除对应点
得到编码程序:
%Grefenstette的编码与主函数
s=3;%种群数量M=5;%城市数量
pop=zeros(s,M);
for i=1:s%产生1-t的随机数列pop(i,1:M)=randperm(M);
end
fprintf('原始信息(一行为一个信息)');
pop
% 编码grePop=zeros(s,M); %原始种群Grefenstette编码的结果%Grefenstette的编码for i=1:s %一行代表一个生存环境temp=[1:1:M];for j=1:Mloc=find(pop(i,j)==temp);grePop(i,j)=loc(1);temp(loc(1))=[];endendfprintf('编码结果:');grePop
又根据编码结果来计算解码集:
得到编码程序:
grePop是已知的编码集矩阵
s,M对应于编码程序的s,M
%Grefenstette的解码
function GrefenstetteDecode(grePop,s,M)
%解码for i=1:s %初始数据1--Mtemp=[1:1:M];for j=1:M%解码集%temp(grePop(i,j))pop(i,j)=temp(grePop(i,j));%一行代表一个生存环境%去掉temp(grePop(i,j))temp(grePop(i,j))=[];endendpop
举例:
2种群,4城市:
编码截图:
解码截图:
可以看到完全将随机产生的原始信息还原回来了。
完。
加油,奥利给!
matlab-Grefenstette的编码与解码相关推荐
- matlab pcm encode,[MATLAB基础] PCM编码及解码
回复: PCM编码及解码 在哪里搜啊.我没搜到啊.我有个关于PCM的程序.但是有错误啊.我不知道错在哪里.你帮我看看.function [out]=pcm_encode(x) n=length(x) ...
- MATLAB实现LZW编码与解码
clear all clc str = input('请输入一串字符:','s'); disp("编码开始..."); %% 编码 N = length(str); % 获得输入字 ...
- 基于 MATLAB 的 PCM 编码解码实现
基于 MATLAB 的 PCM 编码解码实现_vlaser的小屋-CSDN博客_pcm编码matlab
- 【编码译码】基于matlab LDPC编码和解码【含Matlab源码 2560期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源: [编码译码]基于matlab LDPC编码和解码[含Matlab源码 2560期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式 ...
- 信息论与编码实验报告——MATLAB实现算术编码
一.实验内容 试用MATLAB编制算术编码算法实现程序. 二.实验过程 2.1 算术编码实现原理 算术编码的算法思想如下: (1)对一组信源符号按照符号的概率从大到小排序,将[0,1)设为当前分析区间 ...
- dpcm matlab,matlab实现DPCM编码和游长编码
实验2:编码解码 使用matlab实现对lena灰度图像和二值图像的DPCM编码和解码,以及游长编码的实现. 在进行编码之前,首先应该理解两种编码方式的原理.过程,梳理好之后再落实到代码上. 将图片的 ...
- dpcm编码 matlab程序,DPCM编码MATLAB实现.docx
DPCM编码MATLAB实现 %本文是数字图像处理的一个源程序%实现的功能是DPCM编码%DPCM编码,简称差值编码,是对模拟信号幅度抽样的差值进行量化编码的调制方式%本程序实现一阶/二阶/三阶/四阶 ...
- 【通信原理课程设计】利用MATLAB实现PCM编码的语音基带传输系统
目录 一.摘要 二.设计任务 项目作业分析: 三.设计内容 1.整体设计方案 2.设计内容 四.结果与分析 这个项目在我的B站上有专门的视频演示:[通信原理课程设计]利用MATLAB实现PCM编码的语 ...
- Python 对图像进行base64编码及解码读取为numpy、opencv、matplot需要的格式
Python 对图像进行base64编码及解码读取为numpy.opencv.matplot需要的格式 1. 效果图 2. 源码 参考 这篇博客将介绍Python如何对图像进行base64编解码及读取 ...
最新文章
- jQuery学习笔记(一):入门
- 编程之美-电话号码对应英文单词方法整理
- Asp.net 面向接口框架之应用程序上下文作用域组件
- 10-300-020-简介-架构-简介
- Linux中mongodb定时远程备份
- C语言小游戏(一)----猜数游戏
- 电力用户用电信息采集系统通信协议报文解析示例
- Python爬取网上文章并发表到微信公众号
- 蒸汽平台进dota2显示连接不上服务器,蒸汽平台dota2连不上服务器
- bi报表是什么意思,有什么优势?
- android手机截图,安卓手机怎么截屏,安卓手机怎么截屏幕图OPPO
- 微信屏蔽网址的解决办法:366API轻松实现被微信屏蔽的网址在微信内正常访问
- Odb文件(Abaqus)数据结构的一些思考
- 物联网开发笔记(52)- 使用Micropython开发ESP32开发板之W5500以太网网络模块有线网络通信
- 把话说清楚的万能公式
- variable has incomplete type EVP_CIPHER_CTX(aka evp_chipher_ctx_st)
- pageoffice 骑缝章_用 pageoffice 实现 pdf 文件签字盖章
- minGW下载与编译器安装
- 数字化教育解决方案,打造智慧校园新模式
- TCP通讯:客户端和服务端
热门文章
- Linux下使用NTFS格式移动硬盘
- 定制kali linux
- [网络安全提高篇] 一〇二.Metasploit技术之基础用法万字详解及防御机理
- 【数据结构与算法】之深入解析“验证二叉搜索树”的求解思路与算法示例
- Swift之深入解析Xcode13对Swift对象生命周期的优化
- 2019年第十届蓝桥杯 - 省赛 - C/C++大学C组 - B. 矩形切割
- pytorch慢到无法安装,该怎么办?
- Jenkins 权限配置与集群配置
- 智宇科技 ZYARJX-1机械臂智能小车 —— PS2游戏手柄控制程序
- Java常用API(一)Object