<rss version="2.0"
     xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:dc="http://purl.org/dc/elements/1.1/">
        <channel>
        <title>Magazine - np-completo</title>
        <link>https://www.xatakaciencia.com</link>
        <description>Publicación de noticias sobre gadgets y tecnología. Últimas tecnologías en electrónica de consumo y novedades tecnológicas en móviles, tablets, informática, etc</description>
        <pubDate>Thu, 11 Jun 2026 06:38:11 +0000</pubDate>
        <generator>https://www.xatakaciencia.com</generator>
        <atom:link href="https://www.xatakaciencia.com/tag/np-completo/rss2.xml" rel="self" type="application/rss+xml" />
                                        <item>
                <title><![CDATA[Problema de satisfacibilidad (SAT)]]></title>
                <link>https://www.xatakaciencia.com/computabilidad/problema-de-satisfacibilidad-sat</link>
                <guid>https://www.xatakaciencia.com/computabilidad/problema-de-satisfacibilidad-sat</guid>
                <pubDate>Tue, 10 Oct 2006 12:01:14 +0000</pubDate>
                                <description>
                    <![CDATA[
                              <p>
      <img src="https://i.blogs.es/190fd4/bombilla/1024_2000.jpg" alt="Problema&#x20;de&#x20;satisfacibilidad&#x20;&#x28;SAT&#x29;">
    </p>
    <p>Los problemas NP-completo son los más complicados de la clase NP, en el sentido que si Q' es un problema de decisión en NP y Q es un problema NP-completo, entonces todas las instancias de Q' son polinomialmente reducibles a una instancia de Q. <strong>El problema de satisfacibilidad (SAT)</strong> fue el primer problema identificado como perteneciente a la clase de complejidad <strong>NP-completo</strong> por Stephen Cook en el año 1971.</p>
<!-- BREAK 1 -->
<p>Comenzamos con una lista de variables booleanas x<sub>1</sub>, …, x<sub>n</sub>. Un <em>literal</em> es una de las variables x<sub>i</sub> (o la negación de una de las variables ¬x<sub>i</sub>).  Hay <em>2n</em> literales posibles. Una <em>cláusula</em> es un conjunto de literales.</p>
<!-- BREAK 2 -->
<p>Las reglas del juego son las siguientes: Asignamos valores booleanos <em>Verdadero</em> (V) o <em>Falso</em> (F) a cada una de las variables. De este modo a cada uno de los literales se le asigna un valor booleano. Finalmente una cláusula tiene valor V si y sólo si al menos uno de los literales de la cláusula tiene un valor V, en otro caso tendrá un valor F. </p>
<!-- BREAK 3 -->
<p>Un conjunto de cláusulas es satisfactible si existe una asignación de valores booleanos a las variables que <em>hagan</em> que todas las cláusulas sean ciertas. Consideramos <em>or</em> entre cada unos de los literales en una cláusula y <em>and</em> entre las cláusulas.</p>
<!-- BREAK 4 --><!--more--><p><strong>El problema de satisfacibilidad (SAT).</strong> <em>Dado un conjuntos de cláusulas. ¿Existe un conjunto de valores booleanos para una determinada expresión que la haga verdadera?</em></p>
<!-- BREAK 5 -->
<p><strong>Ejemplo: </strong> Consideramos el conjunto de variables x<sub>1</sub>, x<sub>2</sub>, x<sub>3</sub>. Podemos construir la siguiente lista de cláusulas.</p>

<p align="center">{x<sub>1</sub>, ¬x<sub>2</sub>}  {x<sub>1</sub>, x<sub>3</sub>} {x<sub>2</sub>, ¬x<sub>3</sub>} {¬x<sub>1</sub>, x<sub>3</sub>}</p>

<p>Si elegimos los valores (V,V,F) para las variables (x<sub>1</sub>, x<sub>2</sub>, <sub>3</sub>) respectivamente, entonces los valores de las cuatro cláusulas será (T,T,T,F), así que no podría ser una asignación válida para satisfacer el conjunto de cláusulas. Existen 8 posibles asignaciones (2<sup>n=3</sup>). Al final obtenemos como asignación satisfactoria a (T,T,T).</p>
<!-- BREAK 6 -->
<p>El ejemplo nos deja la sensación de que SAT debe ser un complicado problema computacional, porque hay 2<sup>n</sup> posibles conjuntos de valores que pueden resolver el problema. Está absolutamente claro, sin embargo, el problema pertenece a la clase de complejidad NP. Efectivamente, es un problema de decisión. Además podemos asignar fácilmente un certificado a todos los conjuntos de cláusulas para cual la respuesta a SAT es <em>'Sí, las cláusulas son satisfactibles'</em>. El certificado contiene un conjunto de valores, uno por cada variable, que satisface todas las cláusulas. Una máquina de Turing que recibe un conjunto de cláusulas, apropiadamente codificadas, como entrada, acompañadas del certificado tendría que verificar solamente que si los valores son asignados a las variables como se muestra en el certificado entonces efectivamente cada cláusula contiene al menos un literal de valor V. Esa verificación se realiza en tiempo polinómico.</p>
<!-- BREAK 7 -->
<p>Referencias | <a rel="noopener, noreferrer" href="http://es.wikipedia.org/wiki/Problema_de_satisfacibilidad_booleana">SAT en Wikipedia</a>
Referencias | H.S.Wilf, <em>Algorithms and Complexity</em>, 1994</p>
<script>
 (function() {
  window._JS_MODULES = window._JS_MODULES || {};
  var headElement = document.getElementsByTagName('head')[0];
  if (_JS_MODULES.instagram) {
   var instagramScript = document.createElement('script');
   instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js';
   instagramScript.async = true;
   instagramScript.defer = true;
   headElement.appendChild(instagramScript);
  }
 })();
</script>

                    ]]>
                </description>
            </item>
            </channel>
</rss>
