NTA算法讲解



问题描述:
       NTA(Non-deterministic Tree Automata)是一种有多棵树组成的装置。这个装置有一套操作规则。根据这些规则产生一些信号,就形成了一些信号系统。在这个系统里,有一个信号是起始信号,有些信号是合法的,其余的都是辅助信号。若一对信号中两个都是合法的,则有它们组成的一堆信号就是合法的。
      在此只讨论完全二叉树,它的每个非叶子节点都有两棵里,每个节点都有一个信号发射单元。当信号传入节点时,与信号发射单元相遇,激发信号反应,发射单元产生多对信号。然后装置随机选择一组信号发送给子树节点,第一个送给左子树,第二个送给右子树。
NTA的整个操作流程如下:
      装置首先发送起始信号到根节点。由根节点信号发射介质产生多对信号,随即产选择一对信号,将第一个信号发送给左子树,第二个信号发送给右子树,在每个节点都重复这个过程,直到叶子节点。

      若信号达到了一个叶子节点,并且该叶子节点也产生一对合法,则该叶子节点是“可颤动的”.如果搜游叶子节点都是这样,就说这棵树是有效的。若所有的发射信号都是无效,则这棵树是无效的。

                样例数据的信号发射表

        T         

            a             

             b             

                    c  

0

(1,2)

(2,1)

(1,0)

1

(2,2)

(0,2),(1,0)

(3,2)

2

(2,2)

(2,3)

(1,2)

3

(1,2)

(2,1)

(3,2)

 
输入样例:
4 2 3     //4是信号的个数(用0,1,2,3),2是有效信号的个数(即2,3),3是发射单元个数(a,b,c)
1 2
2 1
1 0
2 2
0 2 1 0
3 2
2 2
2 3
1 2
1 2
2 1
3 2                            //发射表按行输入
3          //树的深度(即行数-1)
a
b c
a b c b
b a b a c a * *
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值