5 פתרון תרגיל – מודלים חישוביים

Transcription

5 פתרון תרגיל – מודלים חישוביים
‫עידן דויטש‬
u.multinet.co.il
5 ‫מודלים חישוביים – פתרון תרגיל‬
.Σ={a,b} ‫ כתוב אוטומט דטרמיניסטי לשפות הבאות מעל הא"ב‬.1
Σ*
a,b
q0
.‫ב‬
{ε}
.‫ג‬
{w | |w| mod 3 = 0}
.‫ד‬
a,b
q0
a,b
a,b
q1
a,b
q2
.‫א‬
q0
a,b
q1
q0
a,b
{w | w does not contain the substring 'abba'}
.‫ה‬
a,b
q4
a
q3
b
b
q2
a
b
a
q1
q0
b
a
‫ כתוב אוטומט דטרמיניסטי ותרגם אותו לאוטומט לא דטרמיניסטי לשפות הבאות מעל‬.2
.Σ={a,b} ‫הא"ב‬
{w | w contains the substring 'aa' or does not contain the substring 'bab'}
NFA
a,b
b
q14
b
q13
a
a
b
q12
q23
a
b
a
q22
b
1
u.multinet.co.il
ε
q0
a
a,b
q11
q21
ε
.‫א‬
‫עידן דויטש‬
u.multinet.co.il
DFA
a
a
b
a
q11,
q22
b
q11,
q23
a
q12,
q23
q13,
q23
b
a,b
a
q0
b
a
b
a
q12,
q21
q13,
q22
q14,
q23
b
b
a
q14,
q21
b
q14,
q22
a
b
{w∈{a,b}* | There exists a partitioning of w to w=xy s.t. x contains an even
number of 'a's and y contains an even number of 'b's}
NFA
b
b
ε
q1
a
q0
a
a
a
b
q2
q3
b
DFA
a
q0
b
b
2
u.multinet.co.il
a
q1,
q2
q0,
q3
q0,
q2
b
a
q1,
q3
.‫ב‬
‫עידן דויטש‬
‫‪u.multinet.co.il‬‬
‫‪ .3‬כתוב ביטוי רגולרי לכל אחת מהשפות הבאות מעל }‪Σ={0,1‬‬
‫א‪.‬‬
‫*])‪{w | |w| mod 4 = 0} = [(0+1)(0+1)(0+1)(0+1‬‬
‫ב‪.‬‬
‫*‪{w | w contains exactly four '1's} = 0*∙1∙0*∙1∙0*∙1∙0*∙1∙0‬‬
‫‪ .4‬עבור כל אחת מהשפות הבאות‪ ,‬הוכח שאם ‪ L‬רגולרית‪ ,‬גם '‪ L‬רגולרית‪:‬‬
‫א‪.‬‬
‫}‪L'={ xy | x∉L and y∈L‬‬
‫הוכחה‪:‬‬
‫נניח שהשפה ‪ L‬רגולרית‪ ,‬ונבנה אוטומט אי דטרמיניסטי '‪ A‬שיכריע את '‪ .L‬כיוון‬
‫ש‪ L-‬רגולרית‪ ,‬קיים אוטומט סופי דטרמיניסטי ‪ A‬המכריע אותה‪.‬‬
‫)'‪A' = (Σ, Q x {1,2}, <q0,1>, F x {2}, δ‬‬
‫נגדיר את '‪:A‬‬
‫כאשר‬
‫‪ 1# $‬‬
‫&‬
‫‪ 2# $‬‬
‫‪1# # ∉%‬‬
‫‬
‫ ‪ , ,1‬‬
‫ ‪! , , 2‬‬
‫ ‪ " , 2‬‬
‫ ‪ , ∈ 1,2,‬‬
‫הוכחת נכונות‪:‬‬
‫' נניח שקיימת מילה '‪ .wϵL‬מכאן‪ ,‬שקיימת חלוקה ‪ w=xy‬כך ש‪ x∉L-‬ו‪.y∈L-‬‬
‫נקודת ההתחלה של האלגוריתם שלנו היא במצב ההתחלה של ‪ .A‬כיוון ש‪,x∉L-‬‬
‫לאחר התו האחרון שלו נגיע למצב ‪ t‬שאינו אחד ממצבי הסיום ב‪ .A-‬כיוון ש‪t-‬‬
‫אינו מצב סיום )ונמצא בעותק הראשון של ‪ ,(A‬קיים מעבר ‪ ε‬ממנו למצב‬
‫ההתחלה של העותק השני של ‪ .A‬מצבי הסיום שהגדרנו באוטומט שבנינו הם‬
‫מצבי הסיום ‪ A‬אך בעותק השני בלבד‪ .‬כיוון ש‪ ,y∈L-‬לאחר בדיקתו ב"עותק"‬
‫השני של ‪ ,A‬נגיע למצב סיום של ‪ A‬ומכאן גם למצב מסיים של '‪.A‬‬
‫ נניח שקיימת מילה כך ש‪ .wϵL(A')-‬מכאן‪ ,‬שקיים הרצף‪:‬‬‫‬
‫‪<q0,1>⟶…⟶<qk,1>⟶<q0,2>⟶…⟶qf,2‬‬
‫נגדיר את רצף האותיות עד המעבר ‪ ε‬להיות ‪ x‬ואת רצף האותיות לאחר מכן‬
‫להיות ‪ x .y‬מתקבל ע"י רצף אותיות המתחיל ב‪ <q0,1>-‬ומסתיים ב‪.<qk,1>-‬‬
‫נשים לב‪ ,‬כי ‪ qk‬אינו מצב מקבל באוטומט המקורי כיוון שיש ממנו מעבר ‪.ε‬‬
‫מעברים אלו לא קיימים באוטומט המקורי היות והוא דטרמיניסטי‪ ,‬ועל כן זהו‬
‫מעבר שנוסף בעת בניית '‪ .A‬הוספנו מעברים אלו רק ממצבים שהוגדרו להיות‬
‫"לא מקבלים" באוטומט ‪ .A‬מכאן‪ ,‬שהרצת ‪ x‬ב‪ A-‬תסתיים במצב לא מקבל ולכן‬
‫‪ y .x∉L‬מתחיל במצב התחלה של העותק השני של ‪ A‬ומסתיים במצב >‪.<qk,2‬‬
‫כיוון ש‪ w-‬שייך לשפה‪ ,‬זהו מצב מקבל‪ .‬לכן‪ ,‬גם ‪ qk‬הוא מצב מקבל ומכאן‬
‫שהרצת ‪ y‬באוטומט ‪ A‬תסתיים במצב מקבל‪ .‬מכאן‪ ,‬ש‪.y∈L-‬‬
‫ב‪.‬‬
‫}‪L’={x2x4…x2n| x2,x4,…,x2n∈Σ, ∃x1,x3,x2n-1∈Σ s.t. x1x2…x2n-1x2n∈L‬‬
‫הוכחה‪:‬‬
‫נניח שהשפה ‪ L‬רגולרית‪ ,‬ונבנה אוטומט אי דטרמיניסטי '‪ A‬שיכריע את '‪ .L‬כיוון‬
‫ש‪ L-‬רגולרית‪ ,‬קיים אוטומט סופי דטרמיניסטי ‪ A‬המכריע אותה‪.‬‬
‫)'‪A' = (Σ, Q x {1,2}, <q0,1>, F x {1}, δ‬‬
‫נגדיר את '‪:A‬‬
‫‪3‬‬
‫‪u.multinet.co.il‬‬
‫עידן דויטש‬
‫‪u.multinet.co.il‬‬
‫כאשר‬
‫& ‪1 #‬‬
‫‪2# $‬‬
‫ ‪ , ,2 | ∈ Σ‬‬
‫ ‪ , , 1‬‬
‫‬
‫‪3‬‬
‫ ‪ , ∈ 1,2,‬‬
‫הוכחת נכונות‪:‬‬
‫' נניח שקיימת מילה '‪ .wϵL‬מכאן‪ ,‬שב‪ A-‬קיים רצף מצבים ‪q0→q1→…→q2n‬‬
‫מקבל‪ .‬לכן‪ ,‬לפי הבנייה‪ ,‬באוטומט '‪ A‬קיים עבור המילה ‪ x2x4…xn‬רצף מצבים‬
‫‬
‫‬
‫>‪.<q0,1>⟶<q1,2>→…⟶<q2n-1,2>→<q2n,1‬‬
‫כיוון ש‪ q2n-‬הוא מצב מסיים ב‪ <q2n,1> ,A-‬הוא מצב מסיים ב‪ .A'-‬כלומר‪,‬‬
‫האוטומט '‪ A‬יקבל את ‪ w‬כנדרש‪.‬‬
‫ נניח שקיימת מילה כך ש‪ .wϵL(A')-‬מכאן‪ ,‬שקיים הרצף‪:‬‬‫‬
‫‬
‫>‪<q0,1>⟶<q1,2>→…⟶<q2n-1,2>→<q2n,1‬‬
‫לפי הבנייה‪ ,‬עבור כל מעבר ‪ ε‬בין ‪ qi‬ל‪ qi+1-‬ברצף זה‪ ,‬קיים מעבר בין מצבים אלו‬
‫באמצעות אות השייכת לא"ב‪ .‬נגדיר אות זו להיות ‪ yi‬ונקבל מילה‬
‫‪) w'=y1x2…y2n-1x2n‬כך ש‪ x2i‬מסמל את האות ה‪ i-‬ב‪ .(w-‬עבור מילה זו קיים ב‪A-‬‬
‫רצף המצבים ‪ .q0→q1→…→q2n‬כיוון ש‪ <q2n,1>-‬הוא מצב מקבל ב‪ ,A'-‬מצב ‪q2n‬‬
‫הוא מצב מקבל ב‪ .A-‬כלומר‪ A ,‬יקבל את '‪ w‬ולכן‪ w ,‬אכן שייך ל‪.L'-‬‬
‫‪ .5‬הוכח אם השפות הבאות רגולריות‪.‬‬
‫א‪.‬‬
‫}‪) L1=(w | w∈{0,1}*, w=wR‬שפת כל הפולינומים מעל ‪.(0,1‬‬
‫פתרון‪ :‬זו אינה שפה רגולרית‪.‬‬
‫הוכחה‪:‬‬
‫נניח בשלילה ש‪ L1‬רגולרית ו‪ p-‬הוא קבוע הניפוח שלה‪ .‬נבחר ‪w .w=1p01p‬‬
‫מורכב מהא"ב }‪ {0,1‬וכן מתקיים ‪ w) w=wR‬הוא פולינדרום( לכן‪ .w∈L1 ,‬כמו כן‬
‫מתקיים ‪ .|w|=2p+1>p‬עבור כל חלוקה ‪ w=xyz‬כך ש‪ |xy|≤p-‬מתקיים כי ‪y=1k‬‬
‫כך ש‪ .1≤k≤p-‬נבחר ‪ i=0‬ונקבל ‪ .w'=1p-k01p‬זהו אינו פלינדרום ולכן ‪w'∉L1‬‬
‫בסתירה ללמת הניפוח‪.‬‬
‫ב‪.‬‬
‫‪ x,y,z) Σ 0,1,#, L2 x#y#z | x,y,z∈0,1*, x+y z‬מיוצגים בינארית(‬
‫פתרון‪ :‬זו אינה שפה רגולרית‪.‬‬
‫הוכחה‪:‬‬
‫נניח בשלילה ש‪ L2‬רגולרית ו‪ p-‬הוא קבוע הניפוח שלה‪ .‬נבחר ‪w .w=1p#0p#1p‬‬
‫מורכב מהא"ב }‪ {0,1‬וכן מתקיים ‪ z=1p ,y=0p ,x=1p‬כך ש‪ .x+y=z-‬לכן‪.w∈L2 ,‬‬
‫כמו כן מתקיים ‪ .|w|=3p>p‬עבור כל חלוקה ‪ w=xyz‬כך ש‪ |xy|≤p-‬מתקיים כי‬
‫‪ y=1k‬כך ש‪ .1≤k≤p-‬נבחר ‪ i=0‬ונקבל ‪ .w'=1p-k#0p#1p‬נשים לב שקיבלנו כי‬
‫‪ .x+y=1p-k+0p=1p-k$1p=z‬לכן‪ w'∉L2 ,‬בסתירה ללמת הניפוח‪.‬‬
‫ג‪.‬‬
‫}‪Σ={0,1}, L3=(x1y1z1…xnynzn | x=x1x2…xn, y=y1y2…yn, z=z1z2…zn, x+y=z‬‬
‫פתרון‪ :‬זו שפה רגולרית‪.‬‬
‫‪4‬‬
‫‪u.multinet.co.il‬‬
‫עידן דויטש‬
‫‪u.multinet.co.il‬‬
‫הוכחה‪:‬‬
‫נראה אוטומט דטרמיניסטי המכריע את השפה‪.‬‬
‫‪0,1‬‬
‫‪0,1‬‬
‫‪0‬‬
‫‪01‬‬
‫‪0‬‬
‫‪1‬‬
‫‪f1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪q0‬‬
‫‪1‬‬
‫‪10‬‬
‫‪f2‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪00‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪11‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0,1‬‬
‫‪0,1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪C00‬‬
‫‪0‬‬
‫‪0‬‬
‫‪f3‬‬
‫‪C0‬‬
‫‪1‬‬
‫‪C10‬‬
‫‪1‬‬
‫‪C1‬‬
‫‪C‬‬
‫‪f4‬‬
‫‪1‬‬
‫‪0‬‬
‫‪C01‬‬
‫‪1‬‬
‫‪C11‬‬
‫‪1‬‬
‫‪0‬‬
‫הוכחת נכונות‪:‬‬
‫האוטומט פועל למעשה כמו רכיב ‪ .FA‬הסדר המיוחד של הקלט מאפשר לבצע‬
‫את החיבור תו אחר תו‪ .‬במצב כזה‪ ,‬יש "לזכור" בכל שלב האם קיים קרי או לא‪.‬‬
‫פרט לכך‪ ,‬מתבצעת בדיקה שחיבור כל ‪ 2‬הביטים מתבצע כראוי )בהתחשב גם‬
‫בקרי בכל שלב(‪ .‬במידה שאכן בוצע חיבור כראוי‪ ,‬האוטומט חוזר למצב‬
‫ההתחלתי ‪ q0‬ומקבל את המילה כנדרש‪ .‬במידה ובשלב כלשהו בוצע חיבור‬
‫שגוי‪ ,‬האוטומט מגיע למצב "ללא מוצא" ולא מקבל את המילה‪.‬‬
‫ד‪.‬‬
‫}‪Σ={0,1}, L4={w | the number of ‘01’s in w is equal to the number of '10's‬‬
‫פתרון‪ :‬זו שפה רגולרית‪.‬‬
‫הוכחה‪:‬‬
‫נראה אוטומט דטרמיניסטי המכריע את השפה‪.‬‬
‫‪1‬‬
‫‪01‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪10‬‬
‫‪q0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪5‬‬
‫‪u.multinet.co.il‬‬
‫עידן דויטש‬
‫‪u.multinet.co.il‬‬
‫הוכחת נכונות‪:‬‬
‫נשים לב תחילה‪ ,‬שבכל עת‪ ,‬ההבדל מספר ההופעות של '‪ '10‬ו‪ '01'-‬הוא לכל‬
‫היותר ‪ .1‬הסיבה לכך היא כיוון שלאחר כל ‪ ,01‬יכול להופיע '‪ '1‬מספר רב של‬
‫פעמים )מבלי להוסיף לאף אחד מהצירופים( וברגע שמופיע '‪ ,'0‬נוצרת‪,‬‬
‫למעשה‪ ,‬הופעה של ‪) 10‬כלומר מספר ההופעות משתווה וההפרש בין‬
‫הצירופים חוזר להיות ‪ .(0‬המצב מתקיים בצורה דומה גם עבור הצירוף ‪.10‬‬
‫האוטומט שבנינו מבצע בדיוק בדיקה זו‪ .‬לאחר התו הראשון‪ ,‬האוטומט שומר‬
‫האם קיים יתרון יחסי לאחד הצירופים )מצבים ‪ 10‬ו‪ .(01-‬כל עוד קיים יתרון כזה‪,‬‬
‫הוא לא מקבל את המילה‪ .‬במידה ומספר ההופעות משתווה‪ ,‬האוטומט מקבל‬
‫את המילה )מצבים ‪ 0‬ו‪.(1-‬‬
‫‪ .6‬סבוכיות מקום‬
‫א‪.‬‬
‫הוכח שבעיית ‪ Clique‬נמצאת ב‪ PSPACE-‬ע"י תאור אלגוריתם שפותר את הבעיה‬
‫במקום פולינומי‪.‬‬
‫תאור האלגוריתם‪:‬‬
‫‪ .i‬נבנה מערך ‪ A‬בגודל |‪ .|V‬בכל תא במערך יהיה מצביע לקודקוד ייחודי‬
‫)אין שני מצביעים לאותו הקודקוד( ודגל ‪) 0/1‬במונחי מחשב ניתן‬
‫לתאר כ'ביט'(‪.‬‬
‫‪ .ii‬נאתחל את כל הדגלים במערך להיות ‪ ,0‬פרט לדגל הראשון‪ ,‬אותו‬
‫נאתחל להיות ‪.1‬‬
‫‪ .iii‬נאתחל אינדקס ספירה ‪ s‬ל‪ .0-‬נעבור על המערך‪ ,‬ונספור באמצעות ‪s‬‬
‫בכמה תאים מופיע ‪ .1‬אם מספר הפעמים גדול מ‪ k-‬נעבור לשלב ‪.v‬‬
‫אחרת‪ ,‬נבצע את שלב ‪.iv‬‬
‫‪ .iv‬נקדם את הדגלים במערך ב‪ .1-‬הכוונה היא להסתכל על הדגלים של‬
‫המערך כמספר בינארי )מתחילים ממצב בו הדגלים הוא ‪– 0…01‬‬
‫כלומר המספר הוא ‪ 1‬ובכל קידום מוסיפים למונה זה ‪ .1‬למשל‪ ,‬בקידום‬
‫הראשון של המונה מ‪ 1-‬לשלב השני‪ ,‬ישתנה מצב הדגלים מ‪ 0…01‬אל‬
‫‪ 0…10‬וכך הלאה(‪ .‬לאחר קידום המונה‪ ,‬אם הגענו למצב ‪) 0…0‬כלומר‬
‫היינו במצב ‪ 1…1‬וקידמנו פעם נוספת את המונה(‪ ,‬נחזיר ‪ .F‬אחרת‪,‬‬
‫נבצע שוב את שלב ‪.iii‬‬
‫‪ .v‬אם ‪ s‬גדול או שווה ל‪ ,k-‬נרוץ על המערך באמצעות ‪ 2‬אינדקסים‪ i :‬ו‪.j-‬‬
‫נוודא שכל צומת ‪ i‬במערך שהדגל שלו ‪ ,1‬מחובר לכל צומת אחר ‪j‬‬
‫במערך שהדגל שלו הוא גם ‪ .1‬אם מצאנו ‪ 2‬צמתים שדגליהם הוא ‪1‬‬
‫ואין קשת ביניהם נחזור לשלב ‪ .iv‬אחרת נקדם את ‪ j‬ב‪ 1-‬עד שנגיע‬
‫לצומת האחרון במערך )ואז נאפס את ‪ j‬ונקדם את ‪ i‬ב‪ .(1-‬אם ‪ i‬הגיע‬
‫לצומת האחרון במערך‪ ,‬נחזיר ‪.T‬‬
‫הוכחת נכונות‪:‬‬
‫באמצעות המערך אנו מוודאים שנבדוק כל צרוף אפשרי של הצמתים‪ .‬לכן‪ ,‬אם‬
‫עבור כל הצרופים שבדקנו‪ ,‬לא מצאנו צירוף מתאים‪ ,‬בוודאות לא קיים צרוף‬
‫כזה ולכן נחזיר ‪ F‬כנדרש‪ .‬אם במהלך הבדיקות‪ i ,‬הגיע לסוף המערך‪ ,‬הרי שכל‬
‫הצמתים במערך נבדקו ומצאנו שכל הצמתים שהדגל שלהם הוא ‪ 1‬מחובר לכל‬
‫צומת אחר‪ .‬כלומר‪ ,‬זהו אכן קליק‪ .‬בשלב ‪ iii‬ווידאנו שגודל הקליק הוא לפחות‬
‫כגודל ‪ k‬ולכן נחזיר ‪ T‬כנדרש‪.‬‬
‫‪6‬‬
‫‪u.multinet.co.il‬‬
‫עידן דויטש‬
‫‪u.multinet.co.il‬‬
‫סבוכיות מקום‪:‬‬
‫‪ .i‬גודל המערך הוא כגודל מספר הקודקודים )והוא כולל מצביע ודגל‬
‫בלבד עבור כל התא( ולכן – )|‪.O(|V‬‬
‫‪ .ii‬המונה ‪ s‬והאינדקסים ‪ i‬ו‪ j-‬יכולים למנות לכל היותר‬
‫כמספר הקודקודים ולכן עבור כל אחד מהם ידרש מקום – )|‪O(log|V‬‬
‫סה"כ סבוכיות מקום – )|‪O(|V‬‬
‫הראנו שניתן לפתור את הבעיה בסבוכיות מקום ליניארית ולכן זו בעיה‬
‫ב‪.PSpace‬‬
‫ב‪.‬‬
‫הוכח ש‪ QSAT-‬היא בעייה ‪-NP‬קשה‪.‬‬
‫הוכחה‪:‬‬
‫נגדיר רדוקצית מיפוי ‪ :3SAT<mQSAT‬נגדיר ‪ ,F‬פונקציה המקבלת נוסחה ‪.φ‬‬
‫הפונקציה ‪ F‬תסרוק את הנוסחה‪ ,‬ועבור כל ליטרל‪ ,‬תבדוק האם פגשנו בו קודם‬
‫)באמצעות רשימה שנתחזק(‪ .‬אם לא פגשנו בליטרל קודם‪ ,‬נוסיף בתחילת‬
‫הנוסחה כמת "קיים" עם הליטרל שבדקנו‪ ,‬נוסיף אותו לרשימת הליטרלים בהם‬
‫נתקלנו ונמשיך לליטרל הבא )לדוגמה‪ ,‬אם הגענו אל ‪ x‬ולא פגשנו בו קודם‪,‬‬
‫נוסיף לתחילת הנוסחה '‪ .('∃x.‬אם פגשנו בליטרל בעבר‪ ,‬נמשיך לליטרל הבא‪.‬‬
‫בסיום הסריקה של הנוסחה‪ ,‬תחזיר ‪ F‬את הנוסחה המעודכנת‪.‬‬
‫הוכחת נכונות‪:‬‬
‫עבור כל נוסחה )‪ F ,(x1∨x2∨x3)#… # (xn-2∨xn-1∨xn‬תחזיר את הנוסחה‬
‫)‪ .∃x1….∃xn.(x1∨x2∨x3)#… # (xn-2∨xn-1∨xn‬נוסחה זו תועבר ל‪ .QSAT‬במידה ויש‬
‫הצבה שמספקת את הנוסחה המקורית‪ ,‬הרי שקיימים ‪ x1…xn‬שמספקים את‬
‫הנוסחה ולכן ‪ QSAT‬תחזיר ‪ T‬כנדרש‪ .‬אחרת‪ ,‬לא קיימים הצבות ‪ x‬כאלו ולכן‬
‫‪ QSAT‬תחזיר ‪ F‬כנדרש‪.‬‬
‫סבוכיות‪:‬‬
‫נניח שאורך הנוסחה הוא ‪ n‬ליטרלים )לאו דווקא שונים(‪ .‬עבור כל ליטרל‪ ,‬אנו‬
‫בודקים האם נתקלנו בו בעבר באמצעות רשימת צבירה‪ .‬בדיקה זו מבוצעת‬
‫בזמן )‪) O(n‬סריקה פשוטה של הרשימה(‪ .‬במידה ולא נתקלנו בו בעבר‪ ,‬אנו‬
‫מוסיף כמת עבורו בתחילת הנוסחה ומוסיפים אותו לרשימת הליטרלים בהם‬
‫נתקלנו‪ 2 .‬פעולות אלו מבוצעות ב‪ .O(1)-‬סה"כ כל טיפול בליטרל לוקח )‪.O(n‬‬
‫אנו מבצעים זאת עבור ‪ n‬ליטרלים בנוסחה ולכן סבוכיות זמן ריצה של ‪ F‬הינה‬
‫)‪.O(n2‬‬
‫הראנו כי קיימת רדוקציה פולינומית מ‪ 3SAT -‬אל ‪ 3SAT .QSAT‬היא ‪ NP‬שלמה‬
‫ולכן בפרט ‪ NP‬קשה‪ .‬מכאן‪ ,‬שגם ‪ QSAT‬היא בעיה ‪ NP‬קשה‪.‬‬
‫‪7‬‬
‫‪u.multinet.co.il‬‬