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

鸿蒙读书笔记1:《鸿蒙操作系统设计原理与架构》

GUI、 语 音 控 制 方 式 的 VUI(Voice User Interface, 语 音 用 户 界。电话、多媒体、DFX、MSDP(Multimodal Sensor Data Platform,多。面)、手势/姿态控制的CVUI(Computer Vision User Interface,计算。KAL(Kernel Abstract Layer,内核抽象层)通过屏蔽多内核差异,JavaScript、C、C++等多语言的用户程序开发框架,以及UI框架、

jackyrongvip的专栏 2449

编辑距离及编辑距离算法

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

田野中的锋芒 3640

XC7K325T FPGA硬件设计实战:从板级原理图到高速接口优化

本文以XC7K325T FPGA为核心,详细阐述了从板级原理图设计到高速接口优化的完整硬件实战流程。内容涵盖芯片管脚与电源规划、时钟复位配置电路设计,并重点解析了DDR3内存子系统以及PCIe与光纤接口等高速电路的原理图与PCB设计要点,旨在帮助工程师构建稳定可靠的高性能硬件平台。

python9snake的博客 513

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

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

自律带来自由 7068

VirtualBox安装Win10虚拟机超详细教程(附微软官方镜像下载)

本文提供了一份详细的VirtualBox安装Win10虚拟机教程,涵盖从环境准备、工具下载到系统安装与初始配置的全过程。特别推荐使用微软官方镜像下载,确保系统纯净安全。此外,还分享了性能优化技巧和常见问题解决方案,帮助用户高效搭建稳定的Windows测试环境。

weixin_29243279的博客 919

ShardingSphere-JDBC-若依框架集成(SpringBoot)

ShardingSphere基础知识、ShardingSphere-JDBC如何集成进若依框架中 使用的是若依框架前后端版本、动态数据源,可自行切换,默认数据源为达梦8代理端,

编程小菜鸟的笔记 8168

NLP-编辑距离求解

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

Huoyo 646

PCB模块化设计24——DCDC电源模块PCB布局布线设计规范

PCB模块化设计24——DCDC电源模块PCB布局布线设计规范

qq_31444421的博客 2万+

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

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

weixin_43650171的博客 838

复旦微实现串口在线升级BOOT.BIN

将该 demo 生成的 app(升级用)和 fsbl、最简化 bit 文件(可选)打包成 BOOT.BIN,作为 golden image 烧写在 qspi flash 偏移 0 地址开始的位置,其中最简化 bit 文件为在线升级功能提供必要的物理通道(如果不需要,可以不打包该文件),golden image 一旦发布基本不需要进行升级,由该 golden image 负责和上位机进行通信交互,完成业务 app、业务 bit 文件、uboot 以及操作系统 image 等文件在线升级,在qspi flash

wangjie36的博客 3174

01-系统技术架构师必备——软件架构设计基础与核心概念

摘要 本文系统阐述了软件架构设计的核心概念与方法论,重点涵盖以下内容:1)软件架构的四大要素(构件、连接件、约束、配置)及其边界划分;2)Garlan & Shaw五大架构风格(数据流、调用/返回、独立构件、虚拟机、仓库)的典型应用场景;3)基于电商库存系统的架构选型实战案例,展示如何根据业务需求(高并发、最终一致性)选择事件驱动架构配合Saga模式;4)介绍ABSD、DSSA等主流架构方法论及ISO/IEEE标准体系。文章融合金融与互联网领域的架构实践经验,为技术架构师提供系统性的知识框架和决策参考。

模界 | AI工程化实践者 182

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

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

编辑距离算法

转: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

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

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

问题描述 设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

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

上一篇: 图挖掘的基本概述 以后写文献综述
下一篇: 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、付费专栏及课程。

余额充值