Operational Transformation算法图解

Operational Transformation算法解决的问题是如何merge基于相同的状态产生的不同的操作序列。如下图所示,从上往下看,基于相同的起点,左右有两个操作OP1和OP2.为了merge两个操作为一体,我们可以从两个方向入手,一个方向是从OP1入手,在执行完OP1后,执行OP2;另一个方向是从OP2入手,在执行完OP2后,执行OP1.但是,简单的将操作执行,并不正确,以OP1为例,在执行完OP1后,数据的状态发生了变化,而OP2是基于初始的状态,所以不能直接执行OP2,而需要将操作做一个变换,以OT(OPA,OPB)作为记号。使用OT算法后,必须保证,左边的执行序列OP1,OT(OP2,OP1)执行后的结果,与右边的执行序列OP2,OT(OP1,OP2)执行后的结果相同。

上图是对一个【元操作】的定义。真是的场景中,左边和右边不可能仅仅有一个操作,而是有多个操作。我们先考虑左边有两个操作,右边只有一个操作。如下图所示。


OP1和OP3最先merge。图中到达中轴线的节点。之后,需要将OP2merge进去,必须执行OT(OP2,OP3‘)== OT(OP2, OT(OP3, OP1))

再考虑左边有三个操作,右边只有一个操作。如下图所示。


按照左上-右下的辅助线,把merge过程切割成若干步骤。第一步是在右操作为OP4时mergeOP1,第二步是在

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值