assignment-6_solution.doc

‫به نام خدا‬
‫جواب تمرینهاي سری ششم درس نظریه زبان ها و ماشین ها‬
‫‪ )1‬رشته ‪ ababa‬را درنظر بگیرید برای این رشته دو اشتقاق چپ گرد زیر متصور‬
‫است ‪:‬‬
‫‪S  SbS  abS  abSbS  ababS  ababa‬‬
‫‪S  SbS  SbSbS  abSbS  ababS  ababa‬‬
‫بنابراین گرامر مورد نظر مبهم است ‪.‬‬
‫خیر‪ ،‬زبانی که این گرامرمی سازد زبانی است که رشته های آن به صورت زیر باشند ‪:‬‬
‫‪(ab)*a‬‬
‫و می دانیم برای این زبان گرامری وجود دارد که هیچ رشته ای را به صورت مبهم‬
‫تولید نکند ‪ ،‬گرامر زیر همان گرامر است ‪:‬‬
‫‪S  aT‬‬
‫‪ T  bS | ‬‬
‫بدیهی است که گرامر فوق هیچ رشته ای را به صورت مبهم تولید نمی کند‬
‫‪)2‬‬
‫‪S  AB | C‬‬
‫‪A  0B | C | ε‬‬
‫‪B  1 | A0 | ε‬‬
‫‪C  AC | C1‬‬
‫‪D  AD | 0‬‬
‫‪S'  S‬‬
‫‪S  AB | C | A | B‬‬
‫‪A  0B | C | 0‬‬
‫‪B  1 | A0 | 0‬‬
‫‪C  AC | C1| C‬‬
‫‪D  AD | 0 | D‬‬
‫‪S'  AB | AC | C1| 0B | 0 | 1 | A0 | 0‬‬
‫‪S  AB | AC | C1| 0B | 0 | 1 | A0 | 0‬‬
‫‪A  0B | AC | C1 | 0‬‬
‫‪B  1 | A0 | 0‬‬
‫‪C  AC | C1‬‬
‫‪D  AD | 0‬‬
‫‪S'  AB | AC | CE| FB | 0 | 1 | AF‬‬
‫‪S  AB | AC | C1| FB | 0 | 1 | AF‬‬
‫‪A  FB | AC | C1 | 0‬‬
‫‪B  1 | AF | 0‬‬
‫‪C  AC | CE‬‬
‫‪D  AD | 0‬‬
‫‪E1‬‬
‫‪F0‬‬
‫‪ ) 3‬اگر ‪ G‬رشته ای را در ‪ 2b‬مرحله تولید کند یعنی عمق درخت اشتقاق آن رشته‬
‫حداقل ‪ b+1‬است و این یعنی درهر درخت اشتقاق آن مسیری از ریشه به یک ترمینال با‬
‫طول حداقل ‪ b+1‬وجود دارد و چون تعداد متغیرها ‪ b‬تا است پس در این مسیر حداقل‬
‫یک متغیر ‪ 2‬بار ظاهر شده است یعنی خواهیم داشت ‪:‬‬
‫… ‪A => * … A‬‬
‫این امر نشان می دهد که درست است که درخت اشتقاق در ظاهر درخت است اما در‬
‫واقع یک راس پس از طی مسیری به راسی با همان برچسب می رسد ‪ ،‬یعنی درخت‬
‫اشتقاق دور دارد ‪ .‬که دور داشتن آن باعث می شود که ‪ G‬بتواند رشته هایی را ایجاد کند‬
‫که در درخت اشتقاق آنها این دور هر چند بار بتواند ظاهر شود بنابراین ‪ G‬می تواند‬
‫بینهایت رشته را ایجاد کند پس )‪ L(G‬نامتناهی است ‪.‬‬
‫‪)4‬‬
‫الف )‬
‫ب)‬
‫پ)‬
‫‪)5‬‬
‫اگر گرامر مستقل از متن ‪ G‬هیچ متغیر خود ارجاع نداشته باشد همانند اثبات سوال ‪ 3‬در‬
‫می یابیم که این زبان تعداد متناهی رشته را می پذیرد ‪ ،‬هر زبانی که تعداد متناهی‬
‫رشته را بپذیرد (‪ )S0, S1, … ,Sn‬عبارت منظمی به صورت زیر وجود دارد که این‬
‫زبان را تولید کند ‪:‬‬
‫‪L = S0  S1  … Sn‬‬
‫بنابراین زبان مورد نظر زبانی منظم است ‪.‬‬
‫نکته ‪ :‬در عکس ها به جای ‪ S ، $‬گذاشته شده است‪.‬‬