diff options
| author | Juan Marin Noguera <juan@mnpi.eu> | 2022-09-06 17:17:23 +0200 |
|---|---|---|
| committer | Juan Marin Noguera <juan@mnpi.eu> | 2022-09-06 17:17:23 +0200 |
| commit | 622f9bc866dce734f69444abad21fa7c515321fe (patch) | |
| tree | d655377a0869b4b64f334b9df6417ba49ea6b080 /logic/n3.lyx | |
| parent | e073f8096a6c56c70cbf428281f869d22ec815ad (diff) | |
Actualizado README
Diffstat (limited to 'logic/n3.lyx')
| -rw-r--r-- | logic/n3.lyx | 1512 |
1 files changed, 0 insertions, 1512 deletions
diff --git a/logic/n3.lyx b/logic/n3.lyx deleted file mode 100644 index f720c27..0000000 --- a/logic/n3.lyx +++ /dev/null @@ -1,1512 +0,0 @@ -#LyX 2.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 544 -\begin_document -\begin_header -\save_transient_properties true -\origin unavailable -\textclass book -\use_default_options true -\maintain_unincluded_children false -\language spanish -\language_package default -\inputencoding auto -\fontencoding global -\font_roman "default" "default" -\font_sans "default" "default" -\font_typewriter "default" "default" -\font_math "auto" "auto" -\font_default_family default -\use_non_tex_fonts false -\font_sc false -\font_osf false -\font_sf_scale 100 100 -\font_tt_scale 100 100 -\use_microtype false -\use_dash_ligatures true -\graphics default -\default_output_format default -\output_sync 0 -\bibtex_command default -\index_command default -\paperfontsize default -\spacing single -\use_hyperref false -\papersize default -\use_geometry false -\use_package amsmath 1 -\use_package amssymb 1 -\use_package cancel 1 -\use_package esint 1 -\use_package mathdots 1 -\use_package mathtools 1 -\use_package mhchem 1 -\use_package stackrel 1 -\use_package stmaryrd 1 -\use_package undertilde 1 -\cite_engine basic -\cite_engine_type default -\biblio_style plain -\use_bibtopic false -\use_indices false -\paperorientation portrait -\suppress_date false -\justification true -\use_refstyle 1 -\use_minted 0 -\index Index -\shortcut idx -\color #008000 -\end_index -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation indent -\paragraph_indentation default -\is_math_indent 0 -\math_numbering_side default -\quotes_style swiss -\dynamic_quotes 0 -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\html_math_output 0 -\html_css_as_file 0 -\html_be_strict false -\end_header - -\begin_body - -\begin_layout Section -Algoritmos que no requieren cláusulas -\end_layout - -\begin_layout Subsection -Tablas de verdad -\end_layout - -\begin_layout Standard -Construimos una tabla de verdad por filas, y si en una fila obtenemos que - la oración es cierta para dicha interpretación, la oración es satisfacible. - Si no es cierta en ninguna, la oración es insatisfacible. -\end_layout - -\begin_layout Subsection -Árboles semánticos -\end_layout - -\begin_layout Standard -Una hoja de un árbol semántico es un -\series bold -nodo fallo -\series default - si su etiqueta es -\begin_inset Formula $F$ -\end_inset - -, y -\series bold -nodo éxito -\series default - si es -\begin_inset Formula $V$ -\end_inset - -. - Representamos el árbol como -\begin_inset Formula $\vernal$ -\end_inset - -, y observamos que, para comprobar la satisfacibilidad, basta con encontrar - un nodo éxito, y entonces no es necesario seguir desarrollando. -\end_layout - -\begin_layout Subsection -Tableaux semánticos -\end_layout - -\begin_layout Standard -Un -\series bold -tableaux semántico -\series default - es un árbol en el cual cada nodo está formado por una lista de oraciones - (sin paréntesis de ningún tipo), y su raíz es la lista formada por la oración - -\begin_inset Formula $\phi$ -\end_inset - - a desarrollar. - Una oración puede tener -\series bold -comportamiento conjuntivo -\series default - (se le puede aplicar una -\begin_inset Formula $\alpha$ -\end_inset - --fórmula) o -\series bold -disyuntivo -\series default - (se le puede aplicar una -\begin_inset Formula $\beta$ -\end_inset - --fórmula), o ser un literal. - Para cada rama del árbol: -\end_layout - -\begin_layout Enumerate -Seleccionamos una oración que no sea un literal, preferiblemente con comportamie -nto conjuntivo. -\end_layout - -\begin_layout Enumerate -Si no encontramos ninguna, el nodo es un nodo hoja. - Lo marcamos como -\series bold -cerrado -\series default - si contiene un literal y su contrario, de lo contrario como -\series bold -abierto -\series default -. -\end_layout - -\begin_layout Enumerate -Si tiene comportamiento conjuntivo, aplicamos la -\begin_inset Formula $\alpha$ -\end_inset - --fórmula correspondiente y dibujamos una rama con la etiqueta -\begin_inset Formula $\alpha:\text{(nom. de fórmula)}$ -\end_inset - - y el nodo resultado de sustituir -\begin_inset Formula $\alpha,\phi_{1},\dots,\phi_{n}$ -\end_inset - - por -\begin_inset Formula $\alpha_{1},\alpha_{2},\phi_{1},\dots,\phi_{n}$ -\end_inset - -. -\end_layout - -\begin_layout Enumerate -Si tiene comportamiento disyuntivo, aplicamos la -\begin_inset Formula $\beta$ -\end_inset - --fórmula correspondiente y dibujamos dos ramas. - La división se marca con la etiqueta -\begin_inset Formula $\beta:\text{(nom. de fórmula)}$ -\end_inset - - y los nodos son los resultantes de sustituir -\begin_inset Formula $\beta,\phi_{1},\dots,\phi_{n}$ -\end_inset - - por -\begin_inset Formula $\beta_{1},\phi_{1},\dots,\phi_{n}$ -\end_inset - - y -\begin_inset Formula $\beta_{2},\phi_{1},\dots,\phi_{n}$ -\end_inset - -. -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular -<lyxtabular version="3" rows="7" columns="6"> -<features tabularvalignment="middle"> -<column alignment="center" valignment="top"> -<column alignment="center" valignment="top"> -<column alignment="center" valignment="top"> -<column alignment="center" valignment="top"> -<column alignment="center" valignment="top"> -<column alignment="center" valignment="top"> -<row> -<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\alpha$ -\end_inset - --fórmulas -\end_layout - -\end_inset -</cell> -<cell multicolumn="2" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset -</cell> -<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset -</cell> -<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\beta$ -\end_inset - --fórmulas -\end_layout - -\end_inset -</cell> -<cell multicolumn="2" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset -</cell> -<cell multicolumn="2" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset -</cell> -</row> -<row> -<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\alpha$ -\end_inset - - -\end_layout - -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\alpha_{1}$ -\end_inset - - -\end_layout - -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\alpha_{2}$ -\end_inset - - -\end_layout - -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\beta$ -\end_inset - - -\end_layout - -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\beta_{1}$ -\end_inset - - -\end_layout - -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\beta_{2}$ -\end_inset - - -\end_layout - -\end_inset -</cell> -</row> -<row> -<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\neg\neg\alpha$ -\end_inset - - -\end_layout - -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\alpha$ -\end_inset - - -\end_layout - -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout - -\end_layout - -\end_inset -</cell> -</row> -<row> -<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\alpha\land\beta$ -\end_inset - - -\end_layout - -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\alpha$ -\end_inset - - -\end_layout - -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\beta$ -\end_inset - - -\end_layout - -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\neg(\alpha\land\beta)$ -\end_inset - - -\end_layout - -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\neg\alpha$ -\end_inset - - -\end_layout - -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\neg\beta$ -\end_inset - - -\end_layout - -\end_inset -</cell> -</row> -<row> -<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\neg(\alpha\lor\beta)$ -\end_inset - - -\end_layout - -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\neg\alpha$ -\end_inset - - -\end_layout - -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\neg\beta$ -\end_inset - - -\end_layout - -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\alpha\lor\beta$ -\end_inset - - -\end_layout - -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\alpha$ -\end_inset - - -\end_layout - -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\beta$ -\end_inset - - -\end_layout - -\end_inset -</cell> -</row> -<row> -<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\neg(\alpha\rightarrow\beta)$ -\end_inset - - -\end_layout - -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\alpha$ -\end_inset - - -\end_layout - -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\neg\beta$ -\end_inset - - -\end_layout - -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\alpha\rightarrow\beta$ -\end_inset - - -\end_layout - -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\neg\alpha$ -\end_inset - - -\end_layout - -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\beta$ -\end_inset - - -\end_layout - -\end_inset -</cell> -</row> -<row> -<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\alpha\leftrightarrow\beta$ -\end_inset - - -\end_layout - -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\alpha\rightarrow\beta$ -\end_inset - - -\end_layout - -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\beta\rightarrow\alpha$ -\end_inset - - -\end_layout - -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\neg(\alpha\leftrightarrow\beta)$ -\end_inset - - -\end_layout - -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\neg(\alpha\rightarrow\beta)$ -\end_inset - - -\end_layout - -\end_inset -</cell> -<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Formula $\neg(\beta\rightarrow\alpha)$ -\end_inset - - -\end_layout - -\end_inset -</cell> -</row> -</lyxtabular> - -\end_inset - - -\end_layout - -\begin_layout Standard -Un -\series bold -tableaux completado -\series default - o -\series bold -completo -\series default - es aquel cuya construcción ha terminado. - Decimos que es -\series bold -cerrado -\series default - cuando todas las hojas son cerradas, y -\series bold -abierto -\series default - cuando hay alguna abierta. - Así, -\begin_inset Formula $\phi$ -\end_inset - - es satisfacible si y sólo si su tableau completado es abierto. - Este método no detecta tautologías, pero podemos determinar que -\begin_inset Formula $\phi$ -\end_inset - - es tautológica cuando -\begin_inset Formula $\neg\phi$ -\end_inset - - es insatisfacible. -\end_layout - -\begin_layout Section -Algoritmos que requieren cláusulas -\end_layout - -\begin_layout Standard -Una fórmula -\begin_inset Formula $\xi$ -\end_inset - - está en -\series bold -forma normal conjuntiva -\series default - si es una cláusula o conjunción de cláusulas. - Una -\series bold -cláusula -\series default - es un literal o disyunción de dos o más literales (quitando todos los paréntesi -s). -\end_layout - -\begin_layout Itemize - -\series bold -Cláusula unitaria: -\series default - Con un solo literal. -\end_layout - -\begin_layout Itemize - -\series bold -Cláusula vacía: -\series default - Sin literales. - Se denota por -\begin_inset Formula $\square$ -\end_inset - - y es insatisfacible. -\end_layout - -\begin_layout Itemize - -\series bold -Cláusula de Horn: -\series default - Aquella que tiene como máximo un literal positivo. -\end_layout - -\begin_layout Standard -Llamamos -\series bold -conjunto clausal -\series default - o -\series bold -clausulado -\series default - al conjunto de dichas cláusulas, y decimos que está en -\series bold -forma clausal -\series default -. -\end_layout - -\begin_layout Subsection -Obtención de FNC -\end_layout - -\begin_layout Enumerate -Aplicar las reglas de eliminación de -\begin_inset Formula $\leftrightarrow$ -\end_inset - - y -\begin_inset Formula $\rightarrow$ -\end_inset - - hasta tener solo -\begin_inset Formula $\neg$ -\end_inset - -, -\begin_inset Formula $\land$ -\end_inset - - y -\begin_inset Formula $\lor$ -\end_inset - -. -\end_layout - -\begin_layout Enumerate -Aplicar De Morgan hasta que las negaciones solo afecten a átomos. -\end_layout - -\begin_layout Enumerate -Eliminar las negaciones múltiples ( -\begin_inset Formula $\neg\neg$ -\end_inset - -). -\end_layout - -\begin_layout Enumerate -Aplicar distributividad de -\begin_inset Formula $\lor$ -\end_inset - - sobre -\begin_inset Formula $\land$ -\end_inset - -. -\end_layout - -\begin_layout Enumerate -Reducir la cantidad de paréntesis. -\end_layout - -\begin_layout Standard -Si queremos simplificar: -\end_layout - -\begin_layout Enumerate -Eliminar literales opuestos: -\begin_inset Formula $\ell\lor\neg\ell\equiv V$ -\end_inset - -; -\begin_inset Formula $\ell\land\neg\ell\equiv F$ -\end_inset - -. -\end_layout - -\begin_layout Enumerate -Eliminar constantes y expresiones repetidas: -\begin_inset Formula $V\lor\alpha\equiv V$ -\end_inset - -; -\begin_inset Formula $F\lor\alpha\equiv V\land\alpha\equiv\alpha$ -\end_inset - -; -\begin_inset Formula $F\land\alpha\equiv F$ -\end_inset - -; -\begin_inset Formula $\alpha\lor\alpha\equiv\alpha\land\alpha\equiv\alpha$ -\end_inset - -. -\end_layout - -\begin_layout Enumerate -Quedarnos con expresiones subsumidas: -\begin_inset Formula $(\alpha\lor\beta)\land\alpha\equiv\alpha$ -\end_inset - -. -\end_layout - -\begin_layout Subsection -Algoritmo DPLL -\end_layout - -\begin_layout Standard -Al propagar un literal en una expresión en FNC, lo que hacemos es eliminar - las cláusulas en las que aparezca ( -\series bold -cláusula cancelada -\series default -) y las ocurrencias de literales complementarios ( -\series bold -ocurrencia eliminada -\series default -). - Al aplicar DPLL, representamos el conjunto clausulado como un conjunto - de conjuntos. - Por ejemplo, si -\begin_inset Formula $\phi\equiv p\land(q\lor\neg r)$ -\end_inset - -, entonces su conjunto clausal es -\begin_inset Formula $\Omega_{\phi}=\{p,q\lor\neg r\}$ -\end_inset - -, y lo representamos como -\begin_inset Formula $\Omega_{\phi FNC}=\{p,\{q,\neg r\}\}$ -\end_inset - -. - Entonces consideramos 5 reglas: -\end_layout - -\begin_layout Enumerate - -\series bold -Regla de la cláusula unitaria: -\series default - Si hay una cláusula unitaria, propagar su literal. -\end_layout - -\begin_layout Enumerate - -\series bold -Regla del literal puro: -\series default - Si hay un literal para el que no se da su complementario, propagarlo. -\end_layout - -\begin_layout Enumerate - -\series bold -Regla de la tautología: -\series default - Eliminar las cláusulas que contengan literales complementarios. -\end_layout - -\begin_layout Enumerate - -\series bold -Regla de la inclusión: -\series default - Si existen conjuntos clausales -\begin_inset Formula $C_{1},C_{2}\in\Omega_{\phi}$ -\end_inset - - tales que -\begin_inset Formula $C_{1}\subseteq C_{2}$ -\end_inset - -, eliminar -\begin_inset Formula $C_{2}$ -\end_inset - - de -\begin_inset Formula $\Omega_{\phi}$ -\end_inset - -. -\end_layout - -\begin_layout Enumerate - -\series bold -Regla de ramificación: -\series default - Considerar un literal -\begin_inset Formula $l$ -\end_inset - - (normalmente el que aparece más veces) y propagar -\begin_inset Formula $l$ -\end_inset - - por un lado y -\begin_inset Formula $\neg l$ -\end_inset - - por otro. -\end_layout - -\begin_layout Standard -El algoritmo consiste en: -\end_layout - -\begin_layout Enumerate -Si -\begin_inset Formula $\Omega_{\phi}=\{\}$ -\end_inset - -, devolver -\family typewriter -true -\family default - (se indica mediante una flecha de la expresión derivada a la original etiquetad -a -\begin_inset Quotes cld -\end_inset - -true -\begin_inset Quotes crd -\end_inset - -), indicando que es satisfacible. -\end_layout - -\begin_layout Enumerate -Si -\begin_inset Formula $\square\in\Omega_{\phi}$ -\end_inset - -, devolver -\family typewriter -false -\family default -. -\end_layout - -\begin_layout Enumerate -En caso contrario, aplicar la primera de las reglas que sea aplicable y - devolver su va -\begin_inset ERT -status open - -\begin_layout Plain Layout - - -\backslash -- -\end_layout - -\end_inset - -lor. - Para la regla de ramificación: Si la primera rama devuelve -\family typewriter -true -\family default -, devolverlo. - Si no, proceder con la segunda rama y devolver el valor devuelto. - Esto es lo que se denomina -\begin_inset Quotes cld -\end_inset - - -\lang american -backtracking -\lang spanish - -\begin_inset Quotes crd -\end_inset - - (a partir de un algoritmo recursivo). -\end_layout - -\begin_layout Standard -Lo representamos con un grafo, similar al del árbol semántico. -\end_layout - -\begin_layout Subsection -Método de resolución -\end_layout - -\begin_layout Standard -La -\series bold -resolvente -\series default - de dos cláusulas -\begin_inset Formula $\psi\equiv l_{1}\lor\dots\lor l_{n}\lor j$ -\end_inset - - y -\begin_inset Formula $\text{\phi}\equiv k_{1}\lor\dots\lor k_{m}\lor\neg j$ -\end_inset - - es la cláusula -\begin_inset Formula $R_{j}(\psi,\phi)\equiv l_{1}\lor\dots\lor l_{n}\lor k_{1}\lor\dots\lor k_{m}$ -\end_inset - -. - -\begin_inset Formula $\psi$ -\end_inset - - y -\begin_inset Formula $\phi$ -\end_inset - - son las -\series bold -cláusulas padres -\series default - de -\begin_inset Formula $R_{j}(\psi,\phi)$ -\end_inset - -, y -\begin_inset Formula $\{\psi,\phi\}$ -\end_inset - - es satisfacible si y sólo si -\begin_inset Formula $R_{j}(\psi,\phi)$ -\end_inset - - lo es. - Para resolver por resolución: -\end_layout - -\begin_layout Enumerate -Definimos el conjunto -\begin_inset Formula ${\cal C}=\Omega_{\phi}$ -\end_inset - - y -\begin_inset Formula ${\cal C}_{0}^{*}={\cal C}$ -\end_inset - -. -\end_layout - -\begin_layout Enumerate -Por cada par de cláusulas -\begin_inset Formula $C_{1}=l\lor\alpha$ -\end_inset - - y -\begin_inset Formula $C_{2}=\neg l\lor\beta$ -\end_inset - - en -\begin_inset Formula ${\cal C}^{*}$ -\end_inset - -, obtenemos su resolvente y la añadimos a -\begin_inset Formula ${\cal C}^{*}$ -\end_inset - -. - Si obtenemos la resolvente -\begin_inset Formula $\square$ -\end_inset - -, el conjunto -\begin_inset Formula ${\cal C}^{*}$ -\end_inset - - es insatisfacible y por tanto -\begin_inset Formula ${\cal C}$ -\end_inset - - también. -\end_layout - -\begin_layout Enumerate -Una vez obtenidas todas las resolventes, si -\begin_inset Formula $\square\notin{\cal C}^{*}$ -\end_inset - -, entonces -\begin_inset Formula ${\cal C}^{*}$ -\end_inset - - es satisfacible y por tanto -\begin_inset Formula ${\cal C}$ -\end_inset - - también (solo en L0). -\end_layout - -\begin_layout Standard -Podemos expresar este algoritmo mediante un -\series bold -grafo de resolución -\series default -, en el que de cada par de cláusulas posible parte una línea hacia abajo - hacia su resolvente y tenemos cuidado de no incluir un resolvente igual - a una cláusula ya existente. -\end_layout - -\begin_layout Standard -En dicho grafo, las premisas se dice que están en el nivel 0 ( -\begin_inset Formula ${\cal C}$ -\end_inset - -), y si -\begin_inset Formula $C_{1}$ -\end_inset - - y -\begin_inset Formula $C_{2}$ -\end_inset - - están en los niveles -\begin_inset Formula $x_{1}$ -\end_inset - - y -\begin_inset Formula $x_{2}$ -\end_inset - -, su resolvente está en el nivel -\begin_inset Formula $\max\{x_{1},x_{2}\}+1$ -\end_inset - -, de forma que cada nivel se representa en una misma línea horizontal, y - los resolventes se numeran empezando por el nivel más alto (el nivel 0). -\end_layout - -\begin_layout Standard -Un grafo de resolución es -\series bold -básico -\series default - si solo muestra dos cláusulas y su resolvente; -\series bold -completo -\series default - si contiene la unión de todos los grafos de resolución básicos, y es un - -\series bold -grafo de refutación -\series default - si aparece -\begin_inset Formula $\square$ -\end_inset - -. -\end_layout - -\begin_layout Standard -Para la elección de los pares de cláusulas padres, existen principalmente - dos -\series bold -estrategias de resolución: -\end_layout - -\begin_layout Itemize - -\series bold -Búsqueda en anchura: -\series default - Se obtienen todas las resolventes de un nivel antes de pasar al siguiente. - Orden -\begin_inset Formula $(2,1)$ -\end_inset - -, -\begin_inset Formula $(3,1)$ -\end_inset - -, -\begin_inset Formula $(3,2)$ -\end_inset - -, -\begin_inset Formula $(4,1)$ -\end_inset - -, etc. -\end_layout - -\begin_layout Itemize - -\series bold -Búsqueda en profundidad: -\series default - Una vez obtenida una resolvente de nivel -\begin_inset Formula $i$ -\end_inset - -, intenta obtener una de nivel -\begin_inset Formula $i+1$ -\end_inset - - a partir de ella. - Orden -\begin_inset Formula $(2,1)\rightarrow i$ -\end_inset - -, -\begin_inset Formula $(i,1)$ -\end_inset - -, -\begin_inset Formula $(i,2)$ -\end_inset - -, -\begin_inset Formula $(i,3)\rightarrow j$ -\end_inset - -, -\begin_inset Formula $(j,1)$ -\end_inset - -, etc. - No es completa. -\end_layout - -\begin_layout Standard -En la práctica se utiliza la -\series bold -notación -\series default - o -\series bold -representación Fitting -\series default -: Se crea una lista numerada de las cláusulas de -\begin_inset Formula ${\cal C}$ -\end_inset - -, con la indicación -\begin_inset Quotes cld -\end_inset - -Premisa -\begin_inset Quotes crd -\end_inset - - o -\begin_inset Quotes cld -\end_inset - -C.E. -\begin_inset Quotes crd -\end_inset - - (conjunto de entrada) a la derecha de cada una. - Después, se van comprobando los pares de cláusulas en la lista, empezando - por -\begin_inset Formula $(2,1)$ -\end_inset - -, -\begin_inset Formula $(3,1)$ -\end_inset - -, -\begin_inset Formula $(3,2)$ -\end_inset - -, etc., y se va ampliando con los resolventes, que tendrán la indicación - -\begin_inset Formula $R_{l}(i,j)$ -\end_inset - -, siendo -\begin_inset Formula $i$ -\end_inset - - y -\begin_inset Formula $j$ -\end_inset - - los ordinales de las cláusulas padres. - Para optimizar, se pueden tachar cláusulas por los siguientes motivos: -\end_layout - -\begin_layout Itemize -Literal puro ( -\begin_inset Formula $l$ -\end_inset - -) [después de tachar ( -\begin_inset Formula $n$ -\end_inset - -)]. -\end_layout - -\begin_layout Itemize -Subsumida en ( -\begin_inset Formula $n$ -\end_inset - -). -\end_layout - -\begin_layout Itemize -Tautología ( -\begin_inset Formula $l\lor\neg l$ -\end_inset - -). -\end_layout - -\begin_layout Standard -El motivo debe indicarse a la derecha. - Si al final queda -\begin_inset Formula ${\cal C}^{*}=\{\}$ -\end_inset - -, la oración es satisfacible. -\end_layout - -\begin_layout Section -Razonamiento automático -\end_layout - -\begin_layout Standard -Un razonamiento es válido ( -\begin_inset Formula $\{\alpha_{1},\dots,\alpha_{n}\}\vDash\beta$ -\end_inset - -) cuando -\begin_inset Formula $\vDash\alpha_{1}\land\dots\land\alpha_{n}\rightarrow\beta$ -\end_inset - -, es decir, cuando -\begin_inset Formula $\alpha_{1}\land\dots\land\alpha_{n}\land\neg\beta$ -\end_inset - - es insatisfacible. - Así, mediante tablas de verdad o árboles semánticos, podemos determinar - la validez de un razonamiento demostrando que -\begin_inset Formula $\alpha_{1}\land\dots\land\alpha_{n}\rightarrow\beta$ -\end_inset - - es una tautología. - Para el resto de los métodos, comprobamos que -\begin_inset Formula $\alpha_{1}\land\dots\land\alpha_{n}\land\neg\beta$ -\end_inset - - es una contradicción. -\end_layout - -\begin_layout Standard -En el caso de demostración por resolución, las cláusulas de -\begin_inset Formula $\neg\beta$ -\end_inset - - se denominan -\begin_inset Quotes cld -\end_inset - -conjunto soporte de entrada -\begin_inset Quotes crd -\end_inset - -. - Se marcan con un -\begin_inset Formula $*$ -\end_inset - - a la izquierda del ordinal tanto estas como las resolventes de alguna cláusula - marcada con -\begin_inset Formula $*$ -\end_inset - -, de forma recursiva. -\end_layout - -\end_body -\end_document |
