【问题标题】:Repeated search replace until convergence重复搜索替换直到收敛
【发布时间】:2016-08-31 07:55:45
【问题描述】:

我正在搜索以下问题的名称和有效解决方案:假设我有一个字符串 s='abcdef' 和一组查找/替换规则 Pn

P1: ab -> xy
P2: xyc -> 123
P3: ef -> ab

依次将这些规则应用于s,我可以得到以下字符串:

1. xycdef
2. 123def
3. 123dab
4. 123dxy

我的目标是达到所有(大多数?)规则都已应用的“稳定”状态(此处:123dxy)。

所以我的问题是,是否有一种定义明确的方法来处理此类问题?规则上是否存在避免无限循环的一般限制(例如,ab -> xyxy -> ab)。有没有办法确定最大迭代次数的界限?

感谢任何指向相关概念/相关工作的指针。

【问题讨论】:

    标签: algorithm replace convergence


    【解决方案1】:

    我会将其转化为图形问题。
    在您的情况下,我将有一个名为 ab 的节点,另一个名为 xyxyc 等。
    根据规则,节点之间存在有向边。
    这里:V={ab, xy, xyc, 123, ef}; E={(ab,xy), (xyz.123), (ef, ab)}

    基本检查:
    如果在这个阶段你的图表中有循环,那么你就有一个真正的问题。

    前缀:
    ab -> xyxyc -> 123 的情况给了我们一个问题,除非给定的字符串是以某种方式构建的,否则两个规则都不是问题。 (abc 变为 xyc)。这可以通过以某种方式标记的有向边来检查。如果他们创建了一个循环,那么你会遇到某些字符串的问题,而其他字符串则不会。

    希望这会有所帮助。

    【讨论】:

    • 非常感谢您的回答。我希望有人已经偶然发现 - 并解决了 - 确切的问题。看起来不像,所以我会接受你的回答并开始编码。
    猜你喜欢
    • 2016-03-21
    • 1970-01-01
    • 2021-03-02
    • 2021-11-16
    • 2018-12-22
    • 1970-01-01
    • 2018-07-31
    • 2019-11-29
    • 1970-01-01
    相关资源
    最近更新 更多