העברת נוסחאות לצורת CNFשלב 1: הסרת סימני הגרירה כדי לבצע זאת, נשתמש בשקילות: דוגמא: יהפוך ל- שלב 2: הקטן את טווח השלילות לפסוקים אטומיים כדי לעשות זאת, נשתמש בשקילויות הבאות:
דוגמא:
שלב 3: שנה את שמות המשתנים כך שלא יופיע אותו שם בשני כמתים לדוגמא, הנוסחה שלב 4: העבר את כל הכמתים לתחילת הנוסחה תוך שמירה על סדר הופעתם
שלב 5: הסר את הכמתים הישיים בתהליך סקולומיזציה: כמת ישי =
שלב 6: הסר את כל הכמתים הכוללים בשלב זה קיימים רק כמתים כוללים. מסירים אותם וזוכרים שכל המשתנים הינם של כמתים כוללים.
שלב 7: הפוך את הנוסחה לקוניונקציה של דיסיונקטים נשתמש בשקילות:
שלב 8: נקרא לכל דיסיונקציה בשם clause. שנה שמות משתנים כך שבכל clause יהיו שמות אחרים. נשתמש בשקילות הבאה:
|
תוכן העניינים:
קישורים רלוונטיים:שיתוף: |


.![plot:\[A \to B \equiv \neg A \vee B\]](/documentResources/208/plot_234.png)
![plot:\[\forall s\forall t\left[ {\forall x\left[ { \in \left( {x,s} \right)
\to \in \left( {x,t} \right)} \right] \to \subseteq \left( {s,t} \right)}
\right]\]](/documentResources/208/plot_235.png)
.![plot:\[\neg \left( {\neg A} \right) \equiv A\]](/documentResources/208/plot_237.png)
![plot:\[\neg \left( {A \wedge B} \right) =
\neg A \vee \neg B\]](/documentResources/208/plot_238.png)
![plot:\[\neg \left( {A \vee B} \right) = \neg A \wedge \neg B\]](/documentResources/208/plot_239.png)
![plot:\[\neg \exists X\left[
{P\left( X \right)} \right] \equiv \forall X\left[ {\neg P\left( X \right)}
\right]\]](/documentResources/208/plot_240.png)
![plot:\[\neg \forall X\left[
{P\left( X \right)} \right] \equiv \exists X\left[ {\neg P\left( X \right)}
\right]\]](/documentResources/208/plot_241.png)
![plot:\[\begin{gathered}
\forall s\forall t\left[ {\neg \forall
x\left[ {\neg \in \left( {x,s} \right) \vee \in \left( {x,t} \right)} \right]
\vee \subseteq \left( {s,t} \right)} \right] \Rightarrow \hfill \\
\forall s\forall t\left[ {\exists
x\neg \left[ {\neg \in \left( {x,s} \right) \vee \in \left( {x,t} \right)}
\right] \vee \subseteq \left( {s,t} \right)} \right] \Rightarrow \hfill \\
\forall s\forall t\left[ {\exists
x\left[ {\neg \neg \in \left( {x,s} \right) \wedge \neg \in \left( {x,t}
\right)} \right] \vee \subseteq \left( {s,t} \right)} \right] \Rightarrow
\hfill \\
\forall s\forall t\left[ {\exists
x\left[ { \in \left( {x,s} \right) \wedge \neg \in \left( {x,t} \right)}
\right] \vee \subseteq \left( {s,t} \right)} \right] \hfill \\
\end{gathered} \]](/documentResources/208/plot_242.png)
תהפוך ל-
.![plot:\[\begin{gathered}
\forall s\forall t\left[ {\exists
x\left[ { \in \left( {x,s} \right) \wedge \neg \in \left( {x,t} \right)}
\right] \vee \subseteq \left( {s,t} \right)} \right] \Rightarrow \hfill \\
\forall s\forall t\exists x\left[
{\left[ { \in \left( {x,s} \right) \wedge \neg \in \left( {x,t} \right)}
\right] \vee \subseteq \left( {s,t} \right)} \right] \hfill \\
\end{gathered} \]](/documentResources/208/plot_245.png)
.
מספר הכמתים הכוללים משמאל לכמת הישי. הנוסחה
עם הכמת הישי נמצאת בטווח
הכמתים. יהיו
המשתנים של הכמתים הללו.
ארגומנטים
. הפונקציה הזו נקראת פונקצית
סקולם. לדוגמא,
תהפוך ל-
כאשר
הינו שם פונקציה חדש.![plot:\[\begin{gathered}
\forall s\forall t\exists x\left[
{\left[ { \in \left( {x,s} \right) \wedge \neg \in \left( {x,t} \right)}
\right] \vee \subseteq \left( {s,t} \right)} \right] \Rightarrow \hfill \\
\forall s\forall t\left[ {\left[ { \in
\left( {F(s,t),s} \right) \wedge \neg \in \left( {F(s,t),t} \right)} \right]
\vee \subseteq \left( {s,t} \right)} \right] \hfill \\
\end{gathered} \]](/documentResources/208/plot_255.png)
![plot:\[\begin{gathered}
\forall s\forall t\left[ {\left[ { \in
\left( {F(s,t),s} \right) \wedge \neg \in \left( {F(s,t),t} \right)} \right]
\vee \subseteq \left( {s,t} \right)} \right] \Rightarrow \hfill \\
\left[ {\left[ { \in \left( {F(s,t),s}
\right) \wedge \neg \in \left( {F(s,t),t} \right)} \right] \vee \subseteq
\left( {s,t} \right)} \right] \hfill \\
\end{gathered} \]](/documentResources/208/plot_256.png)
![plot:\[\left( {A \wedge B} \right) \vee C \equiv \left( {A \vee C} \right) \wedge
\left( {B \vee C} \right)\]](/documentResources/208/plot_257.png)
![plot:\[\begin{gathered}
\left[ {\left[ { \in \left( {F(s,t),s}
\right) \wedge \neg \in \left( {F(s,t),t} \right)} \right] \vee \subseteq
\left( {s,t} \right)} \right] \Rightarrow \hfill \\
\left[ { \in \left( {F(s,t),s} \right)
\vee \subseteq \left( {s,t} \right)} \right] \wedge \left[ {\neg \in \left(
{F(s,t),t} \right) \vee \subseteq \left( {s,t} \right)} \right] \hfill \\
\end{gathered} \]](/documentResources/208/plot_258.png)
![plot:\[\forall X\left[ {P\left( X \right) \wedge Q\left( X \right)} \right]
\equiv \forall X\left[ {P\left( X \right)} \right] \wedge \forall X\left[
{Q\left( X \right)} \right]\]](/documentResources/208/plot_259.png)
![plot:\[\begin{gathered}
\left[ { \in \left( {F(s,t),s} \right)
\vee \subseteq \left( {s,t} \right)} \right] \wedge \left[ {\neg \in \left(
{F(s,t),t} \right) \vee \subseteq \left( {s,t} \right)} \right] \hfill \\
\Downarrow \hfill \\
\left[ { \in \left( {F({x_1},{x_2}),{x_1}}
\right) \vee \subseteq \left( {{x_1},{x_2}} \right)} \right] \wedge \hfill \\
\left[ {\neg \in \left(
{F({x_3},{x_4}),{x_3}} \right) \vee \subseteq \left( {{x_3},{x_4}} \right)}
\right] \hfill \\
\end{gathered} \]](/documentResources/208/plot_260.png)
עם פונקציה קבילה ל-Uniform Cost Search:
אבל הוא עדיין לא נפתח...