没有合适的资源?快使用搜索试试~ 我知道了~
基于展开的模糊逻辑程序转换
理论计算机科学电子笔记137(2005)69-103www.elsevier.com/locate/entcs基于展开的模糊逻辑程序改进(1)PascualJ ulia'n2DEP.计算机科学,ESI,卡斯蒂利亚-拉曼恰大学Gin'esMoreno2DEP.计算机科学,EPSA,卡斯蒂利亚-拉曼查大学校园Jaime Penabad2DEP.数学,EPSA,卡斯蒂利亚-拉曼查大学校园摘要展开是一种保持语义的程序转换技术,它包括使用自己的定义扩展程序的子表达式。在本文中,我们定义了两个基于展开的转换规则,将展开规则的经典定义(对于纯逻辑程序)扩展到模糊逻辑设置。我们使用Prolog的模糊变体,其中每个程序子句可以在不同的(模糊)逻辑下解释。我们适应的概念的计算规则,一个映射,选择一个目标的子表达式中涉及的计算步骤,我们证明了独立的计算规则。 我们还定义了一个基本的转换系统,并证明了它的强正确性,即原始程序和转换后的程序计算相同的模糊计算结果。最后,我们证明了我们的转换规则总是产生一个改进的效率的剩余程序,通过减少成功的模糊SLD导子的长度。保留字:模糊逻辑程序设计,程序转换。1本工作部分由MCYT资助,资助号为TIN 2004-07943-C 04 -03。2电子邮件:{Pascual.Julian,Gines.Moreno,Jaime.Penabad}@ uclm.es1571-0661 © 2005 Elsevier B. V.在CC BY-NC-ND许可下开放访问。doi:10.1016/j.entcs.2005.01.04070P. Julián等人理论计算机科学电子笔记137(2005)691介绍逻辑程序设计[12]在过去被广泛用于解决问题和知识表示。然而,传统的逻辑程序设计语言并没有结合技术或结构,以处理显式的不确定性和近似推理。模糊逻辑为不确定性和/或不确定性建模提供了数学背景。模糊逻辑依赖于模糊集的概念、模糊连接词(t-范数、t-余范数等)的理论。以及将二值经典谓词逻辑推广到公式可以在[0,1]实区间范围内求值的逻辑(关于这个主题的全面介绍,见[22]或[13模糊集[23]是为了处理我们在现实世界中发现的模糊性或模糊性而引入的对象,当我们试图描述没有明确定义边界的现象时给定一个集合U,U的一个普通子集A可以用它的特征函数χA(x)来定义(如果x∈A,则返回1,否则返回0),该特征函数巧妙地指定了一个元素x是否在A中。另一方面,U的模糊子集A是函数A:U→[0,1]。 函数A被称为隶属函数,值A(x)表示x在模糊集A中的隶属度(它并不意味着传达x具有某些特定属性(如“年轻”)的可能性不同的函数A可以被认为是一个模糊的概念,一般来说,它们将呈现一个柔软的形状,而不是普通集合的特征函数模糊逻辑程序设计是一个有趣的和仍在发展的研究领域,它凝聚了将模糊逻辑引入逻辑程序设计的努力。在过去的几十年中,已经开发了几个模糊逻辑编程系统,其中SLD-分辨率的经典推理机制被替换为能够处理部分真理和不确定性的模糊变体。这些系统中的大多数实现了Lee在[10]中介绍的模糊归结原理,如Prolog-Elf系统[4]、Fril Prolog系统[2]和F-Prolog语言[11]。另一方面,也没有协议的模糊逻辑必须使用模糊化Prolog时。大多数系统使用最小-最大逻辑(用于建模合取和析取运算),但其他系统仅使用Lukasiewicz逻辑[7]。其他方法在模糊连接词的解释方面是参数化的,让它们不被指定以获得更一般的框架[21]。最近,在[20]中出现了一个模糊逻辑规划的理论模型,该模型涉及许多值的含义。最后,在[19]中,我们发现了一个极其灵活的方案,除了引入否定和处理区间值模糊集[8]之外,给定程序上的每个子句都可以用不同的逻辑来解释本文主要P. Julián等人理论计算机科学电子笔记137(2005)6971以一种非常自然的方式跟随最后的延伸折叠/展开变换方法(也称为“规则+策略”方法[ 15 ])首先这种方法是基于构造,通过一种策略,一个序列的等效程序-称为转换序列,通常表示为P0,. ..,Pi-1,通过使用初等变换规则。基本规则是折叠和展开,即,的收缩和扩展使用这个程序(或前一个程序)的定义的程序的子表达式。已考虑的其他规则是,例如,定义引入/消除和代数替换。在展开中,该程序转换操作的目标是用在所选规则的主体上应用符号计算步骤(以其所有可能的形式)之后获得的规则集替换程序规则[15]。根据所考虑的具体范例(函数[3],逻辑[17]或集成在本文中,我们研究了两个基于展开的变换到模糊上下文的扩展。 特别是,除了定义一个模糊的变体,在[17]的展开变换的基础上,我们还引入了一个新的变换,称为T-范数置换,它对表达式的模糊分量进行运算,它与[3]的代数置换有一些相似之处。正如我们将看到的,如果我们真的想用自然的方式定义它,那么将展开规则从经典LP适应到模糊LP不能以一种天真的方式进行。正确的方式。特别是,我们需要考虑到的“功能”的模糊组件的尺寸,更重要的是,它是至关重要的是引入一个中间语言(不需要在LP,也不FP)的编码过程中涉及的程序的转换过程。除了[5],到目前为止,这是文献中描述的第一种引入模糊变换规则的方法。本工作在以下几点上大大改进了[5]:i)语言:我们使用了[21]中描述的模糊逻辑语言的更丰富的扩展,它直接影响了所有随后的定义,结果和证明。ii)转换:现在我们通过提供两个基于展开的转换规则来提供更清晰的转换方案,每个规则都集中在一个语言组件中:而模糊展开规则集中在逻辑部分,T-Norm替换规则处理模糊组件。此外,通过该方法72P. Julián等人理论计算机科学电子笔记137(2005)69T-范数替换运算的第四种变形不能用[5]中引入的单一变换规则来实现。iii)属性:除了正确性结果,我们证明了成功的模糊SLD-推导的长度减少(当它们在变换后的程序中计算本文的提纲如下。在下一节中,我们总结了[21]中描述的模糊Prolog方言的扩展在我们称之为f-Prolog的新扩展中,每个程序子句都可以在不同的逻辑下解释。第3节介绍了我们的语言的操作语义此外,在第4节中,我们还采用了计算规则的概念,并证明了一个结果,它是[12]中证明的计算规则独立性定理的模糊对应。在第5节中,我们为f-Prolog的标记变体定义了两个基于展开的变换规则,而在第6节中,我们证明了它的主要理论/实践性质。最后,我们在第7节中给出了我们的结论。2模糊Prolog程序在文献中的各种模糊逻辑编程语言中,[21]中描述的一种特别适合于定义模糊逻辑程序的展开概念。 在本节中,我们将介绍这种语言的一个扩展,我们称之为f-Prolog(模糊Prolog),并允许我们以[ 19]介绍的风格对逻辑连接词进行更灵活的解释。设L是一个一阶语言,包含变量、函数符号、谓词符号、常量、数量词和,以及连接词<$、seq、et1和et2(意为seq是一个蕴涵--左箭头的版本写为qes-,et1是一个用seq评估肯定前件的合取,et2是一个通常出现在子句主体中的合取虽然et1和et2是二元连接词,但我们通常将它们推广为具有任意数量参数的函数。我们写的,因为-stance,et 2(x1,.,xn),而不是et 2(x1,et 2(x2,..,et 2(xn−1,xn).. . )).一个(definite)子句是一个公式(A qes et 2(B1,.,Bn)),并且(定义的)目标是公式(qes et2(B1,.,Bn)),其中A和每个Bi是原子式。 一般来说,我们称它们为(seq, et2)-公式或简单的公式,如果在它们的写作中使用的 连接词 的种类 不重要或 可以通 过上下 文推断 出来。 另外, 我们写A←B1,...,Bn作为的句法糖A qes et 2(B1,.,Bn))等。通常,A被认为是从句的开头,而(B1,.,Bn)身体。具有空主体的子句称为事实,而具有头部和主体的子句称为规则。一种退化子句是空子句,用Q表示P. Julián等人理论计算机科学电子笔记137(2005)6973连接词seq的意义函数,用[seq]]表示,是剩余蕴涵,定义为:[seq]](x,y)=sup{z∈[0, 1]:[[et1]](x,y)≤y}。因此[[seq]是一个R-蕴涵,因为它只是从一个t-范数开始定义的,但它不一定是一个S-蕴涵,也不是一个QM-蕴涵[18]。然而,本文中我们使用的连接词seq的意义函数是[21]提出的,其中[[seq]与[et1]]以这样一种方式联系在一起,即肯定前件是一个合理的规则,这对于证明模糊SLD-归结演算的正确性是必不可少的。还要注意的是,在上面的讨论中,连通项et1和et2的意义函数被不指定为任意t-范数3[[eti]]:[0, 1]2→[0, 1],适当地扩展为多个值函数,并且它们旨在固定在整个程序的范围内。然而,正如在[19]中所说的,从实践的角度来看,在程序子句的上下文中为每个运算符et1或et2关联一个具体的解释,而不是为整个程序环境关联一个固定的解释,可能是有用的。特别是,注意,合取是由Zadeh通过min运算符定义的,但人们普遍认为,没有一个合取运算符可以模拟形式化所需的各种表达式例2.1给定一个子句p(x)←−q(x),r(x),如果我们把p(x)解释为在这种情况下,body的连词et2通常被理解为min。类似地,如果q(x)和r(x)被解释为独立或非交互谓词。但是,如果q(x)被解释为为了解决这个问题,我们可以重新定义[21定义2.2A模糊理论是一个应用三元组的部分映射T其中(0, 1]是真度的域,Sem是分别表示et1和et2的相关含义的语义标签集合。实数α是一个真度,它表示系统的使用者对子句C的真性的信心。真度α= 1意味着用户相信子句C是真的;另一方面,真度小于[3]它们在两个参数中都是交换的、结合的和单调的,并且[eti]](x,1)=x(因此,它们继承了经典合取{0,1}2→ {0,1})[16]。还要注意的是,一般来说,eti连接词的意义功能不是分配的。74P. Julián等人理论计算机科学电子笔记137(2005)691表示不确定性的程度或对信念的真实性失去信心;接近0的真实度表示对信念的真实性缺乏信心。我们可以使用标签来指示分配给子句C中的et1或et2运算符的含义。例 如,标签lei= lukasiewicz将算子et i解释为Lukasiewicz t范数,即[[et i]](x,y)= max(0,x + y− 1)。其他可能的标签是:min,如果[et i]](x,y)= min(x,y); product,如果[[et i]](x,y)=x·y;等等。注意,在操作上,由于void必须与t范数相关联,void(1,x)=void(x,1)=x。定义2.3A 定义的f-Prolog程序P是一个模糊理论,使得:(i) Dom(P)是一组(seq, et2)-定义的程序子句或事实,(ii) 对于C1,C2∈Dom(P),我们称C1<$C2当且仅当C1是C2的变体P(C1)=P(C2),(iii) Dom(P)/m是有限的。粗略地说,一个程序可以被看作是一组对(C; r,l1,l2 r),其中C是一个子句,r是子句C的真度,l1,l2是与该子句的运算符et1和et1相然而,我们更倾向于将C写成r,l1,l2,或者更简单地说:Cα =r,le1=l 1,le2 =l 2。 如果子句C是一个事实,则le1和le2是空的,我们简单地写:C withα=r;省略le1和le2的值。类似地,一个目标G只与et2的语义标签相关联,但没有与et1的初始真度或语义标签相关联,我们写为:G,其中le2=l 2。3运算语义与标号模糊Prolog给定一个目标G,它的真度α是通过评估一系列导致空子句的模糊SLD-归结步骤来获得的。在续集中,我们形式化模糊SLD-分辨率,模糊SLD-推导和模糊计算机答案的概念,与[21]中出现的定义有一些变化。设P是一个程序,G是一个目标。 由于Dom(P)/m是一个经典的定义,程序,经典的SLD分辨率应该仍然有效。因此,主要的操作问题是定义评估真度的机制。表达式的真度是一个语义概念,必须使用意义函数进行评估。考虑程序规则C ≡ A←B1,.,Bm,其中α = q,目标G <$AJ,其中AJ与C的头A一致,可能有一个SLD-分解步骤导致预解式GJ<$(B1,.,Bm)。如果我们要评价G的真度,我们必须计算真度度r1,...,所有子目标B1,.,Bm之前的真度qP. Julián等人理论计算机科学电子笔记137(2005)6975R(q,[[et1]],[[et2]])L(q,[[et1]],[[et2]])可以应用规则来获得[[et 1]](q,[[et 2]](r1,.,rn)),目标G的真度。我们需要一种机制来记住在前面的步骤中应用了程序规则,因为有必要区分何时应用[[et1]]或[et2]]。在[21]中,引入了上下文文法来解决这个问题。这语法包含左和右标记(和)标记为实数值,以记住应用α=q规则的确切点因此先前的解析步骤可以注释为:B1,. ,Bm. 为在我们的例子中,为了在扩展我们语言的表达能力的同时正确地管理解析过程,还需要扩展标签机制来区分必须使用的意义运算符[et1]]或[[et2]]。被应用。因此,我们引入了符号和。我们称lf-Prolog为通过在f-Prolog字母表中添加标记和实数而获得的扩展语言。一个lf表达式是一个原子,一个实数序列,或一个包含在标记符号之间的实数下面的定义在模糊SLD-归结的形式化中使用了lf-Prolog(我们将o写为可能为空的语法对象序列o1,. ,n)。定义3.1设G ←Q,其中le2= [[et 2]]是一个lf-Prolog目标,且是一个替换,一个lf-Prolog状态是一对Q;。设E是lf-Prolog状态的集合.给定一个f-Prolog程序P,我们定义Fuzzy SLD-归结为一个状态转移系统,其转移关系→FR(E ×E)是满足以下规则的最小关系:第1条. (条款决议规则)X,Am,Y;(i) Am是所选原子,(ii) θ是Am和A的mgu,B1,...,Bl,Y)θ;<$θ<$如果(iii)C(A←B1,.,Bl,其中<$q,[[et 1]],[[et 2]]<$)∈ P且l≥ 1.第2条. (事实解决规则)<$X,Am,Y;<$X →FR<$(X,r,Y)θ;<$θ <$如果(i) Am是所选原子,(ii) θ是Am和A的mgu,并且(iii) C(A← 其中r)∈P。第3条. ([[et 1]] Resolution Rule)44在[21]中,[et1]归结规则被表示为我们的第三和第四规则的组合,但是当标签le1和le2在整个程序中固定时,我们的重新表述完全等价于原始规则。LQRQLQRQR(q,[[et1]],[[et2]])L(q,[[et1]],[[et2]])76P. Julián等人理论计算机科学电子笔记137(2005)69R(q,[[et1]],[[et2]])L(q,[[et1]],[[et2]])R(q,[[et1]],[[et2]])L(q,[[et1]],[[et2]])X,r,Y;X→FRX,[[et1]](q,r),Y;如果(i)r是实数。第4条. ([[et2]]Resolution Rule)X,r,Y;X,[[et2]]R(q,[[et1]],[[et2]]),Y;(i)第1条,.,rn,其中n > 1,是实数。所有熟悉的逻辑编程概念都可以扩展到模糊的情况下,假设还涉及模糊SLD计算步骤的条款在使用之前被重命名。 在下文中,符号一FR1、一FR2、一FR3和→FR4可以用于明确地引用四个模糊分解规则中的每一个的应用。当需要时,在对应步骤中使用的确切的lf表达式和/或子句也将被注释为→FR符号。为了在我们的模糊设置中扩展计算机答案的概念,在下面的定义中,我们使用id来指代空替换,Var(s)表示句法对象s中出现的不同变量的集合,θ[Var(s)]对应于通过将其域Dom(θ)限制为Var(s)而从θ定义3.2设P是一个f-Prolog程序,G ∈ ←Q,其中le2= [[et 2]]是一个lf-Prolog目标。由实数r和代换θ组成的一对rr;θr是一个模糊计算答案(f.c.a.)如果存在序列E0,.,En(称为f-导数),使得:1. E0=0,Q,;ID:2. 对每个0≤i n,Gi→FRGi+1是模糊SLD-归结步,3. En= θR;θ j =θJ[Var(Q)]。我们通过下面的例子来说明最后一个定义例3.3设P是f-Prolog程序,C1:p(X)←q(X,Y),r(Y) ,其中r = 0。8,prod,min = C2:q(a,Y)←s(Y),其中n = 0. 7,prod,void C3:q(Y,a)←r(Y)with 0. 8,luka,void C4:r(Y)←with 0.7C5:s(b)←0。9L(q,[[et1]],[[et2]])R(1,void,[[et2]])L(1,void,[[et2]])P. Julián等人理论计算机科学电子笔记137(2005)6977下面是一个成功的f-推导程序P和目标78P. Julián等人理论计算机科学电子笔记137(2005)69s(Y2)R2R1“← 与min“与f.c.a. 100美元。504;{X/a}显示:N2 →F R1C1(a);σ1σ→C2F R1(Y2)(b)100美元。7100美元。7r(a)r(a);σ2π →F R2C5;σ3→F R2C4;σ4→F R2C4;σ5→FR3//因为product(0.9,0.7)=0.63⟨100美元。70的情况。7;σ5→FR4//因为min(0.63,0.7)=0.63;σ5→FR3//因为product(0.63,0.8)=0.504σ5→FR4//因为min(0.504,0.7)=0.504σ5→FR3//因为void(1,0.504)=0.504100美元。504 ;σ5其中,100 101,void,min,101 100。8,prod,min,和102,000。7,prod,max,是与原始目标和子句C1和C2相关的三元组。此外,置换σ0=id,σ1={X/X1},σ2={X/a,X1/a,Y1/Y2},σ3={X/a,X1/a,Y1/b,Y2/b},σ4={X/a,X1/a,Y1/b,Y2/b,Y3/b}和σ5={X/a,X1/a,Y1/b,Y2/b,Y3/b,Y4/a}。在[21]中,作者建立了Fuzzy SLD- Resolution操作机制的正确性结果(遵循与Lloyd在[12]中提出的经典逻辑编程类似的技术),但用真度处理扩展了所有结果。这些正确性结果可以是r(a)R1R1R0R0R0R0R1R0R1R0R0L0p(X),r(a) R<$0;σ0<$L0L1q(X1,Y1),r(Y1)L0L1L-2L0L1L-20的情况。9R2L0L1L-2R2L0L1L-2R2L0L10的情况。R1L0L10的情R1L00的情况。504,0。R0L00的情况。R0P. Julián等人理论计算机科学电子笔记137(2005)6979L0θL0θθ21θθ12θ1θ22FR很容易适应我们的情况。至于经典的SLD-解析演算,我们假设存在一个固定的选择函数,也称为模糊计算规则,对于给定的目标,决定在下一个模糊SLD-解析步骤中要利用的选择的LF表达式。例如,在构建例3.3中所示的f-推导时,我们使用了类似于Prolog的从左到右选择规则的计算规则,但延迟了[[et1]]和[[et2]]解析规则的应用,直到所有原子都被解析。给定一个模糊计算规则R,如果每一步中所选的LF-表达式是通过将R映射到该步中相应的目标而得到的,则称模糊SLD-导出是通过R的。在下面的部分中,我们在我们的模糊集合中建立了在[12]中证明的纯逻辑编程情况下的计算规则的独立性。4模糊计算规则在开始本文的核心之前,我们介绍一些技术注释和概念,这将有助于我们发展我们的证明。在下文中,我们使用CP来表示在lf-Prolog程序P中的一个clause的一个被认为是新变量的状态,使得C不包含先前在计算期间遇到代换的等式表示θ={x1/t1,.,xn/tn}是方程组 ^={x1= t1,.,Xn =tn}。设mgu(E)表示方程组E的最一般的单位元(参见[9]对这个概念的正式定义)。 子代数的平行合成[14]对应于推广到子代数的统一概念。选项。 给定两个幂等替换θ1和θ2,θ1<$θ2= mgu(^^)。以下属性将在以后使用。引理4.1[14]设θ1和θ2是幂等置换,θ1<$θ2= θ1mgu(^ )= θ2mgu(^ )。为了证明模糊计算规则的独立性,我们需要以下辅助引理。第一个重点是在f.c.a.'替换的保存。的两步模糊SLD-推导利用两个不同的原子的一个给定的目标,与独立的顺序,他们被利用。引理4.2设 P 被 一 lf-Prolog 程序 让G←Q,le2= [[et2]]0是一个lf-Prolog目标,使得A和AJ是Q和≡ ⟨1, void,[[et]] 0⟩.那么,;θ0θ →Aθ Q1;θ0θ1R0R0080P. Julián等人理论计算机科学电子笔记137(2005)69L0R0L0L0L0R0L0L0L011FR0120FR0FR01→AJθ1Q;θi;θ →AJQJ;θ0θJθ →Aθ'J1个季度;θ0θJ Θ Jθj,其中θ0θ1θ2 = θ0θJθJ。1 1FR2 1 2 1 2证据(3)在所考虑的f-1,H1和H2分别是C1,C2P两个条款的头,用于推导:;θ→AQ;θθ →AJθ1第二季度;θ0θ1θ2θ 1,其中θ1=mgu({A=H1})和θ2=mgu({AJθ1=H2})。此外,由于θ0θ1θ2fail,特别是θ2失败,因此θJ= mgu({AJ= H2})/= fail. 现在,以下等式成立:θ1θ2θ1mgu({AJθ1=H2})=(由于Dom(θ1)<$Var(C2)=<$)θ1mgu(mgu({AJ=H2})θ1)=θ1mgu(^J1)=(根据引理4.1)θ1θθ1θJ(根据引理4.1)θJmgu(^J)=1θ1θ 1θJmgu(mgu({A=H1})θJ)=(sinceDom(θJ)<$Var(C1)=ε)1 1 1θJmgu({AθJ=H1})1 1此外,由于θ1θ2failthenθJmgu({AθJ=H1})/=失败,并且,在部分情况下-1 1ular,θJ=mgu({AθJ=H1})/=fail.因此,θ1θ2=θJθJ这意味着2 1 1 2θ0θ1θ2=θ0θJθJ,正如我们想要证明的。1 2(1)本案可以很容易地以类似于前一个案件的方式证明,也利用了θ1θ2和θJθJ之间的等价性。Q1 2下面的引理在两个不同的层次上推广了前面的引理:• 通过暗示在导出状态中保留两个元素即,不仅替换,而且部分评估的真度,• 通过考虑定义3.1的整个归结规则集(而不是唯一的第一对),当对所考虑的推导应用两个归结步骤时。引理4.3(切换引理)设P是一个lf-Prolog程序,G是一个←Q,其中le2= [[et 2]] 0是一个lf-Prolog目标,使得E和EJ是Q中的不同lf表达式,并且0 1,void,[[et2]] 0。然后,R0R0R0R0R021FRP. Julián等人理论计算机科学电子笔记137(2005)6981LR'L'L'RLR0RR0L0L0R0L0L0L0R0L0222Q;θ0FR;θ1θ→'E θ1- Q2;θ2我的埃吉FR'J J JQ;θ0;θ1θ→Eθ1- Q2;θ2θ,其中Q2=QJFR且θ2= θJ。证据 在我们的证明中,我们假设Q <$X,E1,Y,E2,Z,其中X,Y和Z是有效的lf表达式的任意序列(例如X以且Z以)和E1和E2结尾,即, lf表达式se-在第一和第二f-推导步骤中选择的是原子(用A或AJ表示),实数序列(如r或n)或实数en-在标记的标记之间闭合(例如,r或n得[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19],[19]出于可读性的原因,我们在每个推导步骤中使用的所选lf表达式下现在我们详尽地处理所有可能的情况中的每一种。幸运的是,请注意,E1是在E2的左边还是右边并不相关,而且,第一步用规则i完成,第二步用规则j完成的情况完全类似于第一步用规则j完成,第二步用规则i完成的情况,这大大减少了备选方案的数量。(i) 第一步是规则1,第二步是规则1。假设eth a t:C1<$(H1<$B1;)<
下载后可阅读完整内容,剩余1页未读,立即下载
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)