A星算法求解编辑距离

经典动态规划问题:最短编辑距离算法的原理及实现 编辑距离的定义 编辑距离(Edit Distance)最常用的定义就是Levenstein距离,是由俄国科学家Vladimir Levenshtein于1965年提出的,所以编辑距离一般又称Levenshtein距离。它主要作用是测量两个字符串的差异化程度,表示字符串a至少要经过多少个操作才能转换为字符串b,这里的操作包括三种:增加、删除、替换。 举个例子: (1)增加:对于字符串a:abc 和 ... 阅读详情

在这里插入图片描述
文章来源:ICPRAM 2015
在这里插入图片描述

算法1名称:A星算法计算编辑距离
输入:非空属性图 g 1 = ( U 1 , E 1 ) , q = ( V 2 , E 2 ) g_{1}=(U_{1},E_{1}) , q=(V_{2},E_{2}) g1​=(U1​,E1​),q=(V2​,E2​).其中 U 1 = { u 1 , . . . , u ∣ U 1 ∣ } , V 1 = { v 1 , . . . , v ∣ v 1 ∣ } U_{1}=\{u_{1},...,u_{|U_{1}|}\},V_{1}=\{v_{1},...,v_{|v_{1}|}\} U1​={u1​,...,u∣U1​∣​},V1​={v1​,...,v∣v1​∣​},
输出:从图 g 1 g_{1} g1​转变为图q的代价最小的路径 P m i n P_{min} Pmin​.
例如 :
[ ( ( u 1 , v 1 ) , ( u 2 , v 2 ) , ( u 3 , v 3 ) , ( u 4 , v 4 ) , ( u 5 , v 5 ) ) ( 这 一 个 元 组 表 示 顶 点 映 射 ) , ( ( ( u 1 , u 2 ) , ( v 1 , v 2 ) ) , ( ( u 1 , u 3 ) , ( v 1 , v 3 ) ) , ( ( u 2 , u 4 ) , ( v 2 , v 4 ) ) , ( ( u 3 , u 5 ) , ( v 3 , v 5 ) ) , ( ( u 5 , u 4 ) , ( v 5 , v 4 ) ) , ( ( N O N E ) , ( v 3 , v 4 ) ( 这 一 个 元 组 表 示 边 映 射 ) ) ] [((u_{1},v_{1}), (u2,v2),(u3,v3),(u4,v4),(u5,v5) )(这一个元组表示顶点映射), \\ (((u1,u2),(v1,v2)),\\ ((u1,u3),(v1,v3)),\\ ((u2,u4),(v2,v4)),\\ ((u3,u5),(v3,v5)),\\ ((u5,u4),(v5,v4)),\\ ((NONE),(v3,v4)(这一个元组表示边映射))] [((u1​,v1​),(u2,v2),(u3,v3),(u4,v4),(u5,v5))(这一个元组表示顶点映射),(((u1,u2),(v1,v2)),((u1,u3),(v1,v3)),((u2,u4),(v2,v4)),((u3,u5),(v3,v5)),((u5,u4),(v5,v4)),((NONE),(v3,v4)(这一个元组表示边映射))]
以上是python中networkx库中使用networkx.graph_edit_distance( q q q, g 1 g_{1} g1​)的路径。
在这里插入图片描述

算法开始:
第一步:初始化集合 O P E N OPEN OPEN为空集合, P m i n P_{min} Pmin​为空集合。 O P E N OPEN OPEN集存放A星算法动态空间搜索的每个节点。 P m i n P_{min} Pmin​是从 O P E N OPEN OPEN集中选取代价最小的元素,即代价最小的编辑路径。
第二步:对于查询图中的顶点 w ∈ V 2 w∈V_{2} w∈V2​,随机选择 u 1 ∈ V 1 u_{1}∈V_{1} u1​∈V1​,构造映射 O P E N ← O P E N ∪ { u 1 → w } OPEN←OPEN∪\{u_{1}→w\} OPEN←OPEN∪{u1​→w}
第三步:在OPEN集合中考虑删除顶点的情况: O P E N ← O P E N ∪ { u 1 → ε } OPEN←OPEN∪\{u_{1}→\varepsilon\} OPEN←OPEN∪{u1​→ε}
第四步:执行5-19行无限循环。满足循环体中的跳出条件,则语句块跳出。
行5,开始计算 P m i n P_{min} Pmin​。 P m i n P_{min} Pmin​计算的过程是:从 O P E N OPEN OPEN中遍历元素,选择元素代价和最小的元素。其中每个元素“代价和”分为当前元素的实际代价 g ( p ) g(p) g(p)和估计代价 l b ( p ) lb(p) lb(p)(在其它文献中,也被称作估计代价的下限)。实际代价 g ( p ) g(p) g(p)是指考虑到当前元素(即当前映射路径)顶点和边标签的不同,估计代价是除了映射顶点和边的标签的不同。上述的实际代价和估计代价会在很多文献中都有不同的定义,定义的精确性影响了结果的精确性。在本算法中,只考虑最简单的标签差异的不同。
行6,从 O P E N OPEN OPEN集中删除 P m i n P_{min} Pmin​。
行7-8:完整路径定义: P m i n P_{min} Pmin​元素的size,即映射的顶点对数等于min{ ∣ U 1 ∣ |U_{1}| ∣U1​∣, ∣ V 1 ∣ |V_{1}| ∣V1​∣}。 判断 P m i n P_{min} Pmin​是否为完整路径,如果为完整路径则返回 P m i n P_{min} Pmin​。算法结束。
行10-17:如果 P m i n P_{min} Pmin​不是完整路径,则从 O P E N OPEN OPEN中寻找代价最小且为完整路径的元素。行10-12,假设在这里插入图片描述,即 P m i n P_{min} Pmin​当前的size为 k k k。若 k < ∣ V 1 ∣ k<|V_{1}| k<∣V1​∣,则还需要扩展A星搜索树空间的节点,即往 O P E N OPEN OPEN集增加元素。增加的元素如算法行12所示:添加未映射的顶点对。(这个地方理解较为抽象,需要结合A星算法的搜索树进行理解)。行15:考虑空顶点映射。从直觉上来讲,图 q q q中一个空顶点映射到另外一个图 g 1 g_{1} g1​的非空顶点,是在 q q q中增加一个顶点。因此,算法行11-17,是在 O P E N OPEN OPEN中添加完整路径。

基础算法:编辑距离 编辑距离又称莱文斯坦距离,是俄国数学家Vladimir Levenshtein在1965年所提出的概念,主要用来判断对于两个字符串的差异化的量化,确认需要多少次处理才能将一个字符串变为另外一个,处理一般分为添加、删除和替换三种。 阅读详情

相关推荐

最小编辑距离算法

最小编辑距离算法 简介: 通俗地来讲,编辑距离指的是在两个单词<w_1,w_2>之间,由其中一个单词w_1转换为另一个单词w_2所需要的最少单字符编辑操作次数。 定义的单字符编辑操作有三种, 每种操作的权重为1: 插入(Insertion) 删除(Deletion) 替换(Substitution) 假设求取字符串A和B 的 edit distance, 上述操作可理解...

weixin_42615068的博客 2860

利用公共子图同构计算图编辑距离相似度(CSI_GED:An Efficient Approach for Graph Edit Similarity Computation ICDE2016)

用边映射的方法,寻找最佳匹配的路径

CaptureItTechnology的博客 4668

编辑距离之动态规划算法

在自然语言处理中,经常需要比较段落句子之间的相似度,其中广泛使用的方法有空间向量模型、编辑距离方法。这里,重点说一下编辑距离算法,又叫Levenshtein距离。编辑距离的基本思想: 对于字符串A, 最少经过几次增、删、改操作可以变为字符串B, 其中操作的次数便是A和B之间的编辑距离。 如: A:  aaabbb B: aacb 需要把B中的c改为a,并在后面加入两个b, 因此其编辑距离为

guorain32188的专栏 4037

量子计算论文精讲 | 图编辑距离近似解探究

图表示能非常好的反映对象的属性与对象之间的关系,被广泛的应用在模式识别领域,而图匹配方法,作为实现图高效查询的重要方法之一被广泛的应用于生物信息学,图像分类,计算机网络等等领域。而图编辑距离(Graph Edit Distance,GED)是非常重要的图匹配问题,有良好得到容错率且可以应用于大量的图匹配相关领域之上。由于精确解GED问题的指数难度,越来越多的近似图编辑距离算法希望通过更快的时间来得到尽可能接近精确的图编辑距离。

2401_83053014的博客 2002

rdkit&networkx | 通过图编辑距离GED计算分子相似性

定义 图的编辑距离计算(Graph Edit Distance Computation)是指,对两个图之间通过点和边的insert、delete、substitute操作完成相互转换所需要的最少操作数。GED问题是一个NPC问题,同时也是许多图上应用问题,比如图分类问题、图匹配问题、图相似度搜索问题的核心操作。 代码 from rdkit import Chem import networkx as nx def get_graph(mol): Chem.Kekulize(mol) at

ASKCOS博客 1665

54、图编辑距离计算方法解析

本文深入解析了图编辑距离(GED)的多种计算方法,对比分析了BLP-GED、A*和JH在不同数据集上的性能表现,阐述了BLP-GED在处理多样图类型和计算效率方面的优势。文章介绍了将GED转化为二次分配问题(QAP)的理论框架及其NP完全性带来的挑战,并详细描述了基于线性近似的现有启发式方法的局限性。针对这些问题,提出了一种改进的新方法,通过调整凸凹正则化方案,在无需初始化的前提下获得更优的局部最小值,显著提升了准确性和计算效率。该方法在化学信息学等实际应用中表现出色,展现出良好的应用前景。未来可进一步探索

linux的博客 160

详解编辑距离算法-Levenshtein Distance

目录 •写在前面 •什么是编辑距离? •思路 •思路可视化 •代码实现 •写在前面 编辑距离算法被数据科学家广泛应用,是用作机器翻译和语音识别评价标准的基本算法。最简单的方法是检查所有可能的编辑序列,从中找出最短的一条。但这个序列总数可能达到指数级,但完全不需要这么多,因为我们只要找到距离最短的那条而不是所有可能的序列。这个概念是由俄罗斯科学家Vladimir Levenshtein...

BoCong-Deng的博客 3万+

54、图编辑距离计算方法解析与比较

本文详细解析了多种图编辑距离(GED)的计算方法,并对它们的性能进行了分析。重点介绍了基于二进制线性规划的精确计算方法、将GED近似为二次分配问题的方法以及基于GNCCP的近似方法。通过实验对比发现,不同方法适用于不同类型和规模的图,研究者可根据具体需求选择合适的方法。此外,文章还提供了方法选择的流程图,便于快速决策。

wasm7browser的博客 119

【动态规划】求解编辑距离问题

编辑距离问题是求解将⼀个字符串转换为另⼀个字符串所需的插⼊、删除、替换的最小次数。

恭仔的博客 1万+

编辑距离算法(Edit Distance)

目录 概念 算法过程 Python实现 概念 编辑距离的作用主要是用来比较两个字符串的相似度的 基本的定义如下所示: 编辑距离,又称Levenshtein距离(莱文斯坦距离也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数,如果它们的距离越大,说明它们越是不同。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。 这个概念是由俄罗斯科学家Vladimir Levenshtein在1965年提出来的,所以也叫 Levens.

Python,数据分析,机器学习,深度学习 7996

智驾系统分层架构:从传感器到执行器的全链路解析

本文深入解析了智能驾驶系统的分层架构,从传感器数据采集融合、应用层决策到车辆管理层执行,完整呈现了从感知到控制的全链路工作流程。文章重点阐述了架构设计的核心优势在于接口标准化与模块解耦,以ACC和LKA协同场景为例,说明了各层级如何通过清晰分工与高效协作,实现复杂系统的可靠、灵活与易于升级。

weixin_29219189的博客 399

编辑距离及编辑距离算法

编辑距离概念描述:编辑距离,又称Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。例如将kitten一字转成sitting:sitten (k→s)sittin (e→i)sitting (→g)俄罗斯科学家Vladimir Levenshtein在1965年提出这个概念。 问题:找出字符...

田野中的锋芒 3640

滞回比较器电路详细分析

滞回比较器是一种用于检测两个不同电压值并使比较器输出高电平或低电平的电路。滞回比较器的特点是具有迟滞特性,即当输入电压高于某一阈值时,比较器输出高电平,当输入电压低于另一阈值时,比较器输出低电平,而在这两个阈值之间,比较器的输出保持不变。比较器通常有两个模拟电压输入端UIN+和UIN-以及一个数字状态输出端UOUT。当UIN+大于UIN-时,UOUT为高电平;当UIN+小于UIN-时,UOUT为低电平。根据具体的系统定义,这两种电位的具体数值可以有所不同。

LuDvei的博客 2万+

Levenshtein Distance (LD算法) 编辑距离算法原理

莱文斯坦距离,又称Levenshtein距离,是编辑距离的一种。指两个字串之间,由一个转成另一个所需的最少编辑操作次数。允许的编辑操作包括:将一个字符替换成另一个字符,插入一个字符,删除一个字符。 LD算法原理: 算法目的:计算出两字符序列的编辑距离,同时也能求出两序列的匹配序列 假设: 比对的俩序列为: 则两序列的长度分别为len(A) = n,Len(B)=m; LD(A,B):字符...

自律带来自由 7068

Vscode远程免密连接Linux虚拟机,并配置C/C++运行环境

目前想要深入学习在Linux,也为了方便编写C/C++程序。Linux的环境里一般自带有c++的编译环境,如果没有安装gcc和g++等编译器也比较便利。但是在虚拟机里用vim编写C++程序又不得劲,因此打算使用vscode远程连接Linux虚拟机进行学习。为了防止自己以后还要再配置,重复踩坑,因此写下这篇博客用做记录。环境:windows11、VMware17、rocky linux9.1 ( 开源的CentOS9 )

m0_56779872的博客 8677

统信UOS服务器上,达梦DM8数据库安装避坑全记录(附大小写敏感设置)

本文详细介绍了在统信UOS服务器版上部署达梦DM8数据库的全过程,包括环境准备、安装流程、数据库实例初始化及关键参数配置,特别是大小写敏感设置的注意事项。提供了从系统配置到性能优化的完整指南,帮助用户避免常见问题,确保数据库稳定运行。

weixin_30647423的博客 332

NLP-编辑距离求解

文章目录一、简介二、原理三、求解分析四、递归求解五、动态规划求解 一、简介 编辑距离在NLP中是一种比较比较实用,且原理简单的一种算法,一般用与拼写纠错,相似度计算等,特别是在搜索领域,可以一定量的帮助用户进行拼写纠错。 二、原理 本文没有屌炸天的数学公式,读起来不需要那么费劲! 假设你正在百度输入框中想搜索编辑距离,结果手残输成了遍地距离,坐在你身边的女朋友哈哈大笑说你不行,然后她飞快的输入,...

Huoyo 646

Matlab信号处理

Matlab信号处理 需要安装的APP: Signal Analyzer app:提供一个可以在时域和频域可视化、测量、分析和比较信号的工具; Filter Builder和Filter Designer app:可以很方便通过下拉菜单和填写参数的方式来设计和分析数字滤波器; 对于小波分析,Matlab提供了: 1.Wavelet Signal Denoise app:利用离散小波变换对信号去噪; 2.Signal Multiresolution Analyzer app:对信号进行多分辨率的分析和可视化

Huichin_Min的博客 4399

动态规划求解编辑距离(Leetcode转载)

动态规划求解编辑距离问题,来自leetcode转载

weixin_43650171的博客 838

Java 类与对象 -- Java 语言的类与对象、构造器、static、final、包和 JAR

本篇文章我们将深入了解 Java 语言中的类与对象,探讨构造器、`static`、`final`、包和 JAR 文件。这些概念是面向对象编程的核心,对于理解和掌握 Java 至关重要。

栗筝i的博客 5036

Python之aaindex包语法、参数和实际应用案例

`aaindex`是一个专为生物信息学设计的Python包,主要用于处理氨基酸指数(AAindex)数据库。该数据库收集了各种氨基酸的物理化学性质和统计特性,涵盖疏水性、电荷、体积等500多种特性。`aaindex`包提供了便捷的接口,让用户能够快速访问这些数据,并应用于蛋白质序列分析、结构预测、功能推断等领域。

王国平的博客 1037

C语言实现编辑距离的求解

动态规划 假设source有n个字符,target有m个字符,问题可定义为source[1...n]到target[1...n]的编辑距离。子问题可以定义为source前[1...i]到target前[1...j]的编辑距离(最优子结构)。因此,可以定义状态d[i,j]为从子串source[1...i]到子串target[1...j]之间的编辑距离。 状态递推关系方式分为两种情况,分别是sou...

Try My Best! 1888

YOLOv8改进 | 细节涨点篇 | DySample一种超级轻量的动态上采样算子(效果完爆CARAFE)

本文给大家带来的改进机制是一种号称超轻量级且有效的动态上采样器——DySample。与传统的基于内核的动态上采样器相比,DySample采用了一种基于点采样的方法,相比于以前的基于内核的动态上采样器,DySample具有更少的参数、浮点运算次数、GPU内存和延迟。此外,DySample在包括语义分割、目标检测、实例分割、全景分割和单目深度估计在内的五个预测任务中,性能均优于其他上采样器(截至目前最有效的上采样算子)。

Snu77的博客 1万+

编辑距离算法

转:https://www.jianshu.com/p/a617d20162cf 概述 编辑距离(Minimum Edit Distance,MED),由俄罗斯科学家 Vladimir Levenshtein 在1965年提出,也因此而得名 Levenshtein Distance。 在信息论、语言学和计算机科学领域,Levenshtein Distance 是用来度量两个序列相似程度的指标。通俗地来讲,编辑距离指的是在两个单词<w1,w2><w_1, w_2><w1​,w2​

sunghosts的专栏 3192

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

动态规划法求解编辑距离问题

问题描述 设A和B是两个字符串。现在要用最少的字符操作次数,将字符串A转换为字符串B。这里所说的字符操作共有3种: (1)删除一个字符。 (2)插入一个字符。 (3)将一个字符替换另一个字符。 例如,A=“sfdqxbw”,B=“gfdgw”,结果为4。 问题求解 设字符串A、B的长度分别为m、n,分别用字符串a、b存放。 设计一个动态规划二维数组dp,其中dp[i][j]表示将a[0…i-1](...

LixDemon的博客 2209

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: 图挖掘的基本概述 以后写文献综述
下一篇: c语言编程
RunningBComeOn
博客等级 码龄10年 133粉丝 161原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RunningBComeOn

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值