在遗传算法中
执行交叉变异得到正确的子代结果
是十分重要的一步

为了更好的交叉变异
有人发明了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的编码与解码相关推荐

  1. matlab pcm encode,[MATLAB基础] PCM编码及解码

    回复: PCM编码及解码 在哪里搜啊.我没搜到啊.我有个关于PCM的程序.但是有错误啊.我不知道错在哪里.你帮我看看.function [out]=pcm_encode(x) n=length(x) ...

  2. MATLAB实现LZW编码与解码

    clear all clc str = input('请输入一串字符:','s'); disp("编码开始..."); %% 编码 N = length(str); % 获得输入字 ...

  3. 基于 MATLAB 的 PCM 编码解码实现

    基于 MATLAB 的 PCM 编码解码实现_vlaser的小屋-CSDN博客_pcm编码matlab

  4. 【编码译码】基于matlab LDPC编码和解码【含Matlab源码 2560期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源: [编码译码]基于matlab LDPC编码和解码[含Matlab源码 2560期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式 ...

  5. 信息论与编码实验报告——MATLAB实现算术编码

    一.实验内容 试用MATLAB编制算术编码算法实现程序. 二.实验过程 2.1 算术编码实现原理 算术编码的算法思想如下: (1)对一组信源符号按照符号的概率从大到小排序,将[0,1)设为当前分析区间 ...

  6. dpcm matlab,matlab实现DPCM编码和游长编码

    实验2:编码解码 使用matlab实现对lena灰度图像和二值图像的DPCM编码和解码,以及游长编码的实现. 在进行编码之前,首先应该理解两种编码方式的原理.过程,梳理好之后再落实到代码上. 将图片的 ...

  7. dpcm编码 matlab程序,DPCM编码MATLAB实现.docx

    DPCM编码MATLAB实现 %本文是数字图像处理的一个源程序%实现的功能是DPCM编码%DPCM编码,简称差值编码,是对模拟信号幅度抽样的差值进行量化编码的调制方式%本程序实现一阶/二阶/三阶/四阶 ...

  8. 【通信原理课程设计】利用MATLAB实现PCM编码的语音基带传输系统

    目录 一.摘要 二.设计任务 项目作业分析: 三.设计内容 1.整体设计方案 2.设计内容 四.结果与分析 这个项目在我的B站上有专门的视频演示:[通信原理课程设计]利用MATLAB实现PCM编码的语 ...

  9. Python 对图像进行base64编码及解码读取为numpy、opencv、matplot需要的格式

    Python 对图像进行base64编码及解码读取为numpy.opencv.matplot需要的格式 1. 效果图 2. 源码 参考 这篇博客将介绍Python如何对图像进行base64编解码及读取 ...

最新文章

  1. jQuery学习笔记(一):入门
  2. 编程之美-电话号码对应英文单词方法整理
  3. Asp.net 面向接口框架之应用程序上下文作用域组件
  4. 10-300-020-简介-架构-简介
  5. Linux中mongodb定时远程备份
  6. C语言小游戏(一)----猜数游戏
  7. 电力用户用电信息采集系统通信协议报文解析示例
  8. Python爬取网上文章并发表到微信公众号
  9. 蒸汽平台进dota2显示连接不上服务器,蒸汽平台dota2连不上服务器
  10. bi报表是什么意思,有什么优势?
  11. android手机截图,安卓手机怎么截屏,安卓手机怎么截屏幕图OPPO
  12. 微信屏蔽网址的解决办法:366API轻松实现被微信屏蔽的网址在微信内正常访问
  13. Odb文件(Abaqus)数据结构的一些思考
  14. 物联网开发笔记(52)- 使用Micropython开发ESP32开发板之W5500以太网网络模块有线网络通信
  15. 把话说清楚的万能公式
  16. variable has incomplete type EVP_CIPHER_CTX(aka evp_chipher_ctx_st)
  17. pageoffice 骑缝章_用 pageoffice 实现 pdf 文件签字盖章
  18. minGW下载与编译器安装
  19. 数字化教育解决方案,打造智慧校园新模式
  20. TCP通讯:客户端和服务端

热门文章

  1. Linux下使用NTFS格式移动硬盘
  2. 定制kali linux
  3. [网络安全提高篇] 一〇二.Metasploit技术之基础用法万字详解及防御机理
  4. 【数据结构与算法】之深入解析“验证二叉搜索树”的求解思路与算法示例
  5. Swift之深入解析Xcode13对Swift对象生命周期的优化
  6. 2019年第十届蓝桥杯 - 省赛 - C/C++大学C组 - B. 矩形切割
  7. pytorch慢到无法安装,该怎么办?
  8. Jenkins 权限配置与集群配置
  9. 智宇科技 ZYARJX-1机械臂智能小车 —— PS2游戏手柄控制程序
  10. Java常用API(一)Object