形式化3:NP问题的概念及上下文无关文法

NP问题

指的是如果要求问题的解,时间复杂度至少为 O ( 2 n ) O(2^n) O(2n),而验证解的时间复杂度仅为 O ( n k ) O(n^k) O(nk)这一类的问题。(求解难,验证易)

上下文无关文法

乔姆斯基文法体系

乔姆斯基起初为研究自然语言而构造了一系列数学工具,但其最终却广泛应用于计算机程序语言

[[[[正则表达式]上下文无关文法]上下文有关文法]任意文法]

从内向外文法的表达能力越来越强,其中正则表达式应用于词法,无关文法应用于程序语言的语法规则,有关文法和任意文法在计算机中未得到广泛应用。

定义

上下文无关文法G是一个四元组:

G = ( T , N , P , S ) G=(T,N,P,S) G=(T,N,P,S)

  • T T T:终结符集合,本课中都用小写符号表示
  • N N N:非终结符集合,本课中都用大写符号表示
  • P P P:一组产生式规则,每条规则形式为: X → β 1 β 2 . . . β n ,   X ∈ N ,   β i ∈ ( T ⋃ N ) X \rightarrow \beta_1 \beta_2...\beta_n,\ X \in N,\ \beta_i \in (T \bigcup N) Xβ1β2...βn, XN, βi(TN)
  • S S S:唯一的开始符号(非终结符),它总是产生式规则的第一个非终结符。 S ∈ N S \in N SN

例如一句话要求的结构为【主语,谓语,宾语】

G = (N, T, P, S)        // 非终结符,终结符,产生式规则,开始
N = (S, N, V)           // 开始, 名词, 动词
T = (s, t, g, w, e, d)  // sheep,tiger,grass,water,eat,drink
P = X -> N V N          // 名词 动词 名词

产生式规则展开如下
S -> N V N
N -> s
   | t
   | g
   | w
V -> e
   | d

由于以上大小写字符的区分,和开始符号的位置规定,仅通过产生式规则我们就可以确定 N   T   P   S N\ T\ P\ S N T P S四个集合

推导

给定文法G,从G的开始符号S开始,用产生式的右部替换左侧的非终结符,此过程不断重复,直到不出现非终结符为止。最终的串称为句子

  • 最左推导:每次总是选择最左侧的符号进行替换
  • 最右推导:每次总是选择最右侧的符号进行替换
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值