匈牙利算法matlab代码
“匈牙利算法matlab代码”相关的资料有哪些?“匈牙利算法matlab代码”相关的范文有哪些?怎么写?下面是小编为您精心整理的“匈牙利算法matlab代码”相关范文大全或资料大全,欢迎大家分享。
遗传算法Matlab源代码
完整可以运行的数值优化遗传算法源代码
function [X,MaxFval,BestPop,Trace]=fga(FUN,bounds,MaxEranum,PopSize,options,pCross,pMutation,pInversion)
% [X,MaxFval,BestPop,Trace]=fga(FUN,bounds,MaxEranum,PopSize,options,pCross,pMutation,pInversion)
% Finds a maximum of a function of several variables.
% fga solves problems of the form:
% max F(X) subject to: LB <= X <= UB (LB=bounds(:,1),UB=bounds(:,2))
% X - 最优个体对应自变量值
% MaxFval - 最优个体对应函数值
% BestPop - 最优的群体即为最优的染色体群
% Trace - 每代最佳个体所对应的目标函数值
% FUN
匈牙利算法及程序
匈牙利算法及程序
匈牙利算法自然避不开Hall定理,即是:对于二部图G,存在一个匹配M,使得X的所有顶点关于M饱和的充要条件是:对于X的任意一个子集A,和A邻接的点集为T(A),恒有: │T(A)│ >= │A│
匈牙利算法是基于Hall定理中充分性证明的思想,其基本步骤为:
1.任给初始匹配M;
2.若X已饱和则结束,否则进行第3步;
3.在X中找到一个非饱和顶点x0,作V1 ← {x0}, V2 ← Φ;
4.若T(V1) = V2则因为无法匹配而停止,否则任选一点y ∈T(V1)\V2;
5.若y已饱和则转6,否则做一条从x0 →y的可增广道路P,M←M?E(P),转2;
6.由于y已饱和,所以M中有一条边(y,z),作 V1 ← V1 ∪{z}, V2 ← V2 ∪ {y}, 转4;
设数组up[1..n] --- 标记二分图的上半部分的点。
down[1..n] --- 标记二分图的下半部分的点。
map[1..n,1..n] --- 表示二分图的上,下部分的点的关系。
True-相连, false---不相连。
over1[1..n],over2[1..n] 标记上下部分的已盖点。
use[1..n,1..n] - 表示该条边
节点重要度算法-MATLAB源代码
节点收缩算法:
function Z=node(a,dy)%a为邻接矩阵 a(a==inf)=0; a(~=0)=1; n=size(a,1);%矩阵维数 Z=zeros(n,1);%节点重要度向量 %由邻接矩阵a得到直接矩阵H %H表示c(i j) H=zeros(size(a)); for i=1:n for j=1:n if j==i H(i,j)=0; elseif a(I,j)==1 H(i,j)=1; else H(i,j)=inf; end end end %用Floyd法计算节点收缩前的最短就离矩阵D D=H; for k=1:n for i=1:n for j=1:n If D(i,k)+D(k,j) %计算节点重要度 D2=zeros(size(D)); for i=1:n %得到与节点i邻接的节点向量I I=zeros(1,0); T=0; for j=1:n if a(i,j)=1 T=t+1; I=[i,j]; end end %计算收缩后最短距离矩阵D2 ò为
节点重要度算法-MATLAB源代码
节点收缩算法:
function Z=node(a,dy)%a为邻接矩阵 a(a==inf)=0; a(~=0)=1; n=size(a,1);%矩阵维数 Z=zeros(n,1);%节点重要度向量 %由邻接矩阵a得到直接矩阵H %H表示c(i j) H=zeros(size(a)); for i=1:n for j=1:n if j==i H(i,j)=0; elseif a(I,j)==1 H(i,j)=1; else H(i,j)=inf; end end end %用Floyd法计算节点收缩前的最短就离矩阵D D=H; for k=1:n for i=1:n for j=1:n If D(i,k)+D(k,j) %计算节点重要度 D2=zeros(size(D)); for i=1:n %得到与节点i邻接的节点向量I I=zeros(1,0); T=0; for j=1:n if a(i,j)=1 T=t+1; I=[i,j]; end end %计算收缩后最短距离矩阵D2 ò为
MATLAB典型去雾算法代码 - 图文
本节主要介绍基于Retinex理论的雾霭天气图像增强及其实现。 1.3.1 Rentinex理论
Retinex(视网膜“Retina”和大脑皮层“Cortex”的缩写)理论是一种建立在科学实验和科学分析基础上的基于人类视觉系统(Human Visual System)的图像增强理论。该算法的基本原理模型最早是由Edwin Land(埃德温?兰德)于1971年提出的一种被称为的色彩的理论,并在颜色恒常性的基础上提出的一种图像增强方法。Retinex 理论的基本内容是物体的颜色是由物体对长波(红)、中波(绿)和短波(蓝)光线的反射能力决定的,而不是由反射光强度的绝对值决定的;物体的色彩不受光照非均性的影响,具有一致性,即Retinex理论是以色感一致性(颜色恒常性)为基础的。
根据Edwin Land提出的理论,一幅给定的图像S(x,y)分解成两幅不同的图像:反射物体图像R(x,y)和入射光图像L(x,y),其原理示意图如图8.3-1所示。
图 1.3-1 Retinex理论示意图
对于观察图像S中的每个点(x,y),用公式可以表示为:
S(x,y)=R(x,y)×L(x,y)
蚁群算法matlab程序代码
先新建一个主程序M文件ACATSP.m 代码如下:
function [R_best,L_best,L_ave,Shortest_Route,Shortest_Length]=ACATSP(C,NC_max,m,Alpha,Beta,Rho,Q)
%%================================================================ =========
%% 主要符号说明
%% C n个城市的坐标,n×2的矩阵
%% NC_max 蚁群算法MATLAB程序最大迭代次数
%% m 蚂蚁个数
%% Alpha 表征信息素重要程度的参数
%% Beta 表征启发式因子重要程度的参数
%% Rho 信息素蒸发系数
%% Q 表示蚁群算法MATLAB程序信息素增加强度系数
%% R_best 各代最佳路线
%% L_best 各代最佳路线的长度
%%================================================================ =========
%% 蚁群算法MATLAB程序第一步:变量初始化
n=size(C,1);%n表示问题的规模(城市个数)
D=zeros(
EZW算法的过程详解和Matlab代码
EZW算法的过程详解和Matlab代码(1)构建扫描次序表(修正小波树结构) 我们以一幅16*16的Lena局部图像经过3级小波分解后的小波数据为例详细的说明EZW算法的编解码过程,并给出相应的Matlab代码。原始图像如下
分解后的小波图像数据为:
一、在开始编码之前,首先要求出初始阈值T1:
MaxDecIm=max(max(abs(DecIm))); T=zeros(1,codeDim); T(1)=2^flor(log2(MaxDecIm));
二、然后是建立小波树结构,构建扫描次序表。这个扫描次序表非常重要,后面的编码、解码过程都要按照扫描次序表逐个处理数据矩阵的各个元素。构建过程
如下:用(r,c)表示数据矩阵上各元素的位置。row、col作为全局变量,表示数据矩阵的行、列数。 1、小波树结构的特点: (1)对于LL-N低频子带的点(r,c),有3个孩子:(r,c+W)、(r+H,c)和(r+H,c+W),其中W、H分别是LL-N子带的宽和高;
(2)第N~2高频子带(LH、HL、HH)的点都有4个孩子,
银行家算法MATLAB实现附代码
课程设计
题目银行家算法
学生姓名张雪明学号2009112209 专业计算机科学与技术班级1122 指导教师张莉莉
完成日期
2012 年 1月4日
银行家算法
摘要:本文解决的是操作系统进程管理当中有关死锁的避免问题,对如何用银行家算法来
处理操作系统给进程分配资源做了详细的说明,包括前言、系统总体框架设计、算法描述、函数模块、程序测试案例及其源程序代码清单。并通过MATLAB软件实现了由Dijkstra给出的银行家算法。
关键词:银行家算法死锁安全性算法安全序列
1. 前言
具有代表性的死锁避免算法是由Dijkstra给出的银行家算法。在避免死锁的方法中,允许进程动态地申请资源,系统在进行资源分配之前,先计算资源分配的安全性。若此次分配不会导致系统进入不安全状态,便将资源分配给进程,否则进程等待。
如果在某一时刻,系统能按某种顺序如?P1,P2,...,Pn?来为每个进程分配其所需的资源,直至最大需求,使每个进程都可以顺利运行完成,则称此时的系统状态为安全状态,称序列若某一时刻系统中不存在一个安全序列,则称此时的系统状态?P1,P2,...,Pn?为安全序列。为不安全状态。
银行家算法就是对每一个请求进行检查,检查它是否会导致系统进入不安全
模糊c均值聚类 FCM算法的MATLAB代码
模糊c均值聚类 FCM算法的MATLAB代码
我做毕业论文时需要模糊C-均值聚类,找了好长时间才找到这个,分享给大家:
FCM算法的两种迭代形式的MATLAB代码写于下,也许有的同学会用得着: m文件1/7:
function [U,P,Dist,Cluster_Res,Obj_Fcn,iter]=fuzzycm(Data,C,plotflag,M,epsm) % 模糊 C 均值聚类 FCM: 从随机初始化划分矩阵开始迭代
% [U,P,Dist,Cluster_Res,Obj_Fcn,iter] = fuzzycm(Data,C,plotflag,M,epsm) % 输入:
% Data: N×S 型矩阵,聚类的原始数据,即一组有限的观测样本集, % Data 的每一行为一个观测样本的特征矢量,S 为特征矢量 % 的维数,N 为样本点的个数 % C: 聚类数,1 % plotflag: 聚类结果 2D/3D 绘图标记,0 表示不绘图,为缺省值 % M: 加权指数,缺省值为 2 % epsm: FCM 算法的迭代停止阈值,缺省值
基于Matlab的常用滤波算法研究(含代码) - 图文
毕业设计(论文)
UNDERGRADUATE PROJECT (THESIS)
题 目: 冲击测试常用滤波算法研究
学 院 专 业 学 号 学生姓名 指导教师 起讫日期 毕业设计(论文)
目录
摘要 ............................................................................................................................... 2 ABSTRACT .................................................................................................................. 3 第一章 绪论.................................................................................................................. 4
1.1课题背景 .............