![]() |
| |||||||
| Registrarse | Preguntas Frecuentes | Lista de Foreros | Calendario | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
| | LinkBack | Herramientas | Desplegado |
| |||
| On 3 abr, 09:03, nec556 <nec...***gmail.com> wrote: > On 3 abr, 01:33, "Eduardo" <abdula...***gmail.com> wrote: > > > > > "nec556" <nec...***gmail.com> escribió en el mensajenews:55400228-b249-4ac4-abd8-daa70a918b12***n58g2000hsf.googlegroups.com... > > > > Muy buenas todos. > > > .......... Por ejemplo, una de las ecuaciones > > > dice: > > > > 1 = (P1 AND Q2) XOR (Q2 AND P3) > > > > donde P1, Q2, P3 son incognitas. Otras tiene mas terminos. Como puedo > > > despejar y poner una en funcion de las otras? Me refiero a que quede > > > una cosa asi: > > > > P1 = P3 AND Q2 > > > No podes. > > Por la similitud de simbologia es tentador querer usar los mismos metodos y > > las mismas conclusiones que para sistemas de ecuaciones "normales", perono > > se puede... aca podes tener solucion unica con una sola ecuacion. > > > El ejemplo que pusiste es equivalente a esto: > > 1 = (P1 · Q2) xor (Q2 · P3) = P1·Q2·P3' + P1'·Q2·P3 Donde tenes las > > variables y sus complementos ( ' ). > > > La "resolucion" de esos sistemas es equivalente a la simplificacion, busca > > mapas de Karnaugh y metodo de McCluskey. > > Si, los mapas de karnaugh si que conozco para simplificar sistemas > logicos y minimizar el nmero de puertas logicas/operaciones logicas se > necesitan para calcular una funcion, pero sirven tambien para resolver > ecuaciones? En los ejemplos he puesto solo unas pocas variables, pero > en el problema final tengo en torno a 300-400 ecuaciones con mismo > numero de incognitas. > > Mirare el metodo McCluskey, que no lo conozco. > > Muchas gracias a todos. Bueno, ya estoy aqui de nuevo. He estado consultando en la web y en libros y ya he encontrado como hacer la simplificacion del sistema logico mediante metodos heuristicos, que si me permite usar gran cantidad de ecuaciones e incognitas. http://en.literateprograms.org/Quine...thm_%28Java%29 http://www.seattlerobotics.org/encod...06/qmccmin.htm La duda que me queda es la misma que al principio, pero en un sistema con las ecuaciones simplificadas. Siguiendo con el ejemplo, 1 = (P1 · Q2) xor (Q2 · P3) = P1·Q2·P3' + P1'·Q2·P3 , como hago para resolver el sistema? Como hago para calcular los valores de P1, Q2 y Q3? Puedo usar la aritmetica modular 2 propuesta por Julian arriba? Por ejemplo, un sistema que sale para magnitud de problema 4 es: Variables A1,A2,B1,B2 1=A1 XOR B1 0=(A1·B1)XOR(A2·B2) 1=(A1·B1·A2·B2)XOR(A2·A1) 1=(A1·B2)XOR(A2·B1) Seguro que no puede aplicarse ninguna forma normal para resolverlas? Gracias |
| | ||||
| ||||
| |
| |||
| On 3 abr, 15:25, nec556 <nec...***gmail.com> wrote: > On 3 abr, 09:03, nec556 <nec...***gmail.com> wrote: > > > > > On 3 abr, 01:33, "Eduardo" <abdula...***gmail.com> wrote: > > > > "nec556" <nec...***gmail.com> escribió en el mensajenews:55400228-b249-4ac4-abd8-daa70a918b12***n58g2000hsf.googlegroups.com... > > > > > Muy buenas todos. > > > > .......... Por ejemplo, una de las ecuaciones > > > > dice: > > > > > 1 = (P1 AND Q2) XOR (Q2 AND P3) > > > > > donde P1, Q2, P3 son incognitas. Otras tiene mas terminos. Como puedo > > > > despejar y poner una en funcion de las otras? Me refiero a que quede > > > > una cosa asi: > > > > > P1 = P3 AND Q2 > > > > No podes. > > > Por la similitud de simbologia es tentador querer usar los mismos metodos y > > > las mismas conclusiones que para sistemas de ecuaciones "normales", pero no > > > se puede... aca podes tener solucion unica con una sola ecuacion. > > > > El ejemplo que pusiste es equivalente a esto: > > > ***1 = (P1 · Q2) xor (Q2 · P3) ***= ***P1·Q2·P3' + P1'·Q2·P3 *** ***Donde tenes las > > > variables y sus complementos ( ' ). > > > > La "resolucion" de esos sistemas es equivalente a la simplificacion, busca Hola otra vez, > La duda que me queda es la misma que al principio, pero en un sistema > con las ecuaciones simplificadas. > > Siguiendo con el ejemplo, 1 = (P1 · Q2) xor (Q2 · P3) ***= ***P1·Q2·P3' + > P1'·Q2·P3 , como hago para resolver el sistema? Como hago para > calcular los valores de P1, Q2 y Q3? Puedo usar la aritmetica modular > 2 propuesta por Julian arriba? > > Por ejemplo, un sistema que sale para magnitud de problema 4 es: > > Variables A1,A2,B1,B2 > > 1=A1 XOR B1 > 0=(A1·B1)XOR(A2·B2) > 1=(A1·B1·A2·B2)XOR(A2·A1) > 1=(A1·B2)XOR(A2·B1) Este sistema se puede resolvver a mano. De la primera ecuación resulta que A1 y B1 tienen qie tener valores "opuestos", es decir A1·B1=0. La segunda queda entonces A2·B2=0, o sea que A2 ó B2 es 0. La tercera quedaría A2·A1=1, luego A1=A2=1 y por lo anterior B1=B2=0 La cuarta ecuación es entonces 1=0. Por lo tanto no hay solución. En Mathematica, el input Reduce[ {a1+b1==1, a1 b1+a2 b2==0, a1 a2 b1 b2+a1 a2==1, a1 b2+a2 b1==1}, (*ecuaciones*) {a1, a2, b1, b2}, (*incógnitas) Modulus -> 2 (* aritmética módulo 2*) ] devuelve FALSE Para comprobación de que lo que hago tiene sentido, cambiando la segunda ecuación, Reduce[ {a1+b1==1, a1 b1+a2 b2==1, a1 a2 b1 b2+a1 a2==1, a1 b2+a2 b1==1}, (*ecuaciones*) {a1, a2, b1, b2}, (*incógnitas) Modulus -> 2 (* aritmética módulo 2*) ] devuelve a1 == 1 && a2 == 1 && b1 == 0 && b2 == 1 Con 300 ecuaciones, no sé si será posible. Julián |
| |||
| On 3 abr, 15:25, nec556 <nec...***gmail.com> wrote: > On 3 abr, 09:03, nec556 <nec...***gmail.com> wrote: > > > > > On 3 abr, 01:33, "Eduardo" <abdula...***gmail.com> wrote: > > > > "nec556" <nec...***gmail.com> escribió en el mensajenews:55400228-b249-4ac4-abd8-daa70a918b12***n58g2000hsf.googlegroups.com... > > > > > Muy buenas todos. > > > > .......... Por ejemplo, una de las ecuaciones > > > > dice: > > > > > 1 = (P1 AND Q2) XOR (Q2 AND P3) > > > > > donde P1, Q2, P3 son incognitas. Otras tiene mas terminos. Como puedo > > > > despejar y poner una en funcion de las otras? Me refiero a que quede > > > > una cosa asi: > > > > > P1 = P3 AND Q2 > > > > No podes. > > > Por la similitud de simbologia es tentador querer usar los mismos metodos y > > > las mismas conclusiones que para sistemas de ecuaciones "normales", pero no > > > se puede... aca podes tener solucion unica con una sola ecuacion. > > > > El ejemplo que pusiste es equivalente a esto: > > > ***1 = (P1 · Q2) xor (Q2 · P3) ***= ***P1·Q2·P3' + P1'·Q2·P3 *** ***Donde tenes las > > > variables y sus complementos ( ' ). > > > > La "resolucion" de esos sistemas es equivalente a la simplificacion, busca Hola otra vez, > La duda que me queda es la misma que al principio, pero en un sistema > con las ecuaciones simplificadas. > > Siguiendo con el ejemplo, 1 = (P1 · Q2) xor (Q2 · P3) ***= ***P1·Q2·P3' + > P1'·Q2·P3 , como hago para resolver el sistema? Como hago para > calcular los valores de P1, Q2 y Q3? Puedo usar la aritmetica modular > 2 propuesta por Julian arriba? > > Por ejemplo, un sistema que sale para magnitud de problema 4 es: > > Variables A1,A2,B1,B2 > > 1=A1 XOR B1 > 0=(A1·B1)XOR(A2·B2) > 1=(A1·B1·A2·B2)XOR(A2·A1) > 1=(A1·B2)XOR(A2·B1) Este sistema se puede resolvver a mano. De la primera ecuación resulta que A1 y B1 tienen qie tener valores "opuestos", es decir A1·B1=0. La segunda queda entonces A2·B2=0, o sea que A2 ó B2 es 0. La tercera quedaría A2·A1=1, luego A1=A2=1 y por lo anterior B1=B2=0 La cuarta ecuación es entonces 1=0. Por lo tanto no hay solución. En Mathematica, el input Reduce[ {a1+b1==1, a1 b1+a2 b2==0, a1 a2 b1 b2+a1 a2==1, a1 b2+a2 b1==1}, (*ecuaciones*) {a1, a2, b1, b2}, (*incógnitas) Modulus -> 2 (* aritmética módulo 2*) ] devuelve FALSE Para comprobación de que lo que hago tiene sentido, cambiando la segunda ecuación, Reduce[ {a1+b1==1, a1 b1+a2 b2==1, a1 a2 b1 b2+a1 a2==1, a1 b2+a2 b1==1}, (*ecuaciones*) {a1, a2, b1, b2}, (*incógnitas) Modulus -> 2 (* aritmética módulo 2*) ] devuelve a1 == 1 && a2 == 1 && b1 == 0 && b2 == 1 Con 300 ecuaciones, no sé si será posible. Julián |
| |||
| On 3 abr, 19:09, Julian <julian.agui...***ehu.es> wrote: > On 3 abr, 15:25, nec556 <nec...***gmail.com> wrote: > > > > > On 3 abr, 09:03, nec556 <nec...***gmail.com> wrote: > > > > On 3 abr, 01:33, "Eduardo" <abdula...***gmail.com> wrote: > > > > > "nec556" <nec...***gmail.com> escribió en el mensajenews:55400228-b249-4ac4-abd8-daa70a918b12***n58g2000hsf.googlegroups.com... > > > > > > Muy buenas todos. > > > > > .......... Por ejemplo, una de las ecuaciones > > > > > dice: > > > > > > 1 = (P1 AND Q2) XOR (Q2 AND P3) > > > > > > donde P1, Q2, P3 son incognitas. Otras tiene mas terminos. Como puedo > > > > > despejar y poner una en funcion de las otras? Me refiero a que quede > > > > > una cosa asi: > > > > > > P1 = P3 AND Q2 > > > > > No podes. > > > > Por la similitud de simbologia es tentador querer usar los mismos metodos y > > > > las mismas conclusiones que para sistemas de ecuaciones "normales", pero no > > > > se puede... aca podes tener solucion unica con una sola ecuacion. > > > > > El ejemplo que pusiste es equivalente a esto: > > > > 1 = (P1 · Q2) xor (Q2 · P3) = P1·Q2·P3' + P1'·Q2·P3 Donde tenes las > > > > variables y sus complementos ( ' ). > > > > > La "resolucion" de esos sistemas es equivalente a la simplificacion,busca > > Hola otra vez, > > > > > La duda que me queda es la misma que al principio, pero en un sistema > > con las ecuaciones simplificadas. > > > Siguiendo con el ejemplo, 1 = (P1 · Q2) xor (Q2 · P3) = P1·Q2·P3' + > > P1'·Q2·P3 , como hago para resolver el sistema? Como hago para > > calcular los valores de P1, Q2 y Q3? Puedo usar la aritmetica modular > > 2 propuesta por Julian arriba? > > > Por ejemplo, un sistema que sale para magnitud de problema 4 es: > > > Variables A1,A2,B1,B2 > > > 1=A1 XOR B1 > > 0=(A1·B1)XOR(A2·B2) > > 1=(A1·B1·A2·B2)XOR(A2·A1) > > 1=(A1·B2)XOR(A2·B1) > > Este sistema se puede resolvver a mano. > De la primera ecuación resulta que A1 y B1 tienen qie tener valores > "opuestos", es decir A1·B1=0. > La segunda queda entonces A2·B2=0, o sea que A2 ó B2 es 0. > La tercera quedaría A2·A1=1, luego A1=A2=1 y por lo anterior B1=B2=0 > La cuarta ecuación es entonces 1=0. > Por lo tanto no hay solución. > > En Mathematica, el input > > Reduce[ > {a1+b1==1, a1 b1+a2 b2==0, a1 a2 b1 b2+a1 a2==1, a1 b2+a2 b1==1}, > (*ecuaciones*) > {a1, a2, b1, b2}, (*incógnitas) > Modulus -> 2 (* aritmética módulo 2*) > ] > > devuelve FALSE > > Para comprobación de que lo que hago tiene sentido, cambiando la > segunda ecuación, > > Reduce[ > {a1+b1==1, a1 b1+a2 b2==1, a1 a2 b1 b2+a1 a2==1, a1 b2+a2 b1==1}, > (*ecuaciones*) > {a1, a2, b1, b2}, (*incógnitas) > Modulus -> 2 (* aritmética módulo 2*) > ] > > devuelve > > a1 == 1 && a2 == 1 && b1 == 0 && b2 == 1 > > Con 300 ecuaciones, no sé si será posible. > > Julián Eso es lo que estaba buscando. Por construccion el sistema de ecuaciones solo tiene una solucion y ninguna de la ecuaciones es combinacion lineal de las otras. Supongo que si las simplifico antes de decirle a Mathematica que lo solucione supongo que lo hara mas rápido. Muchas gracias a todos y (/coña mode on) os amenazo con que seguire preguntando cosas (/coña mode off). Un saludo. |
| |||
| On 3 abr, 19:09, Julian <julian.agui...***ehu.es> wrote: > On 3 abr, 15:25, nec556 <nec...***gmail.com> wrote: > > > > > On 3 abr, 09:03, nec556 <nec...***gmail.com> wrote: > > > > On 3 abr, 01:33, "Eduardo" <abdula...***gmail.com> wrote: > > > > > "nec556" <nec...***gmail.com> escribió en el mensajenews:55400228-b249-4ac4-abd8-daa70a918b12***n58g2000hsf.googlegroups.com... > > > > > > Muy buenas todos. > > > > > .......... Por ejemplo, una de las ecuaciones > > > > > dice: > > > > > > 1 = (P1 AND Q2) XOR (Q2 AND P3) > > > > > > donde P1, Q2, P3 son incognitas. Otras tiene mas terminos. Como puedo > > > > > despejar y poner una en funcion de las otras? Me refiero a que quede > > > > > una cosa asi: > > > > > > P1 = P3 AND Q2 > > > > > No podes. > > > > Por la similitud de simbologia es tentador querer usar los mismos metodos y > > > > las mismas conclusiones que para sistemas de ecuaciones "normales", pero no > > > > se puede... aca podes tener solucion unica con una sola ecuacion. > > > > > El ejemplo que pusiste es equivalente a esto: > > > > 1 = (P1 · Q2) xor (Q2 · P3) = P1·Q2·P3' + P1'·Q2·P3 Donde tenes las > > > > variables y sus complementos ( ' ). > > > > > La "resolucion" de esos sistemas es equivalente a la simplificacion,busca > > Hola otra vez, > > > > > La duda que me queda es la misma que al principio, pero en un sistema > > con las ecuaciones simplificadas. > > > Siguiendo con el ejemplo, 1 = (P1 · Q2) xor (Q2 · P3) = P1·Q2·P3' + > > P1'·Q2·P3 , como hago para resolver el sistema? Como hago para > > calcular los valores de P1, Q2 y Q3? Puedo usar la aritmetica modular > > 2 propuesta por Julian arriba? > > > Por ejemplo, un sistema que sale para magnitud de problema 4 es: > > > Variables A1,A2,B1,B2 > > > 1=A1 XOR B1 > > 0=(A1·B1)XOR(A2·B2) > > 1=(A1·B1·A2·B2)XOR(A2·A1) > > 1=(A1·B2)XOR(A2·B1) > > Este sistema se puede resolvver a mano. > De la primera ecuación resulta que A1 y B1 tienen qie tener valores > "opuestos", es decir A1·B1=0. > La segunda queda entonces A2·B2=0, o sea que A2 ó B2 es 0. > La tercera quedaría A2·A1=1, luego A1=A2=1 y por lo anterior B1=B2=0 > La cuarta ecuación es entonces 1=0. > Por lo tanto no hay solución. > > En Mathematica, el input > > Reduce[ > {a1+b1==1, a1 b1+a2 b2==0, a1 a2 b1 b2+a1 a2==1, a1 b2+a2 b1==1}, > (*ecuaciones*) > {a1, a2, b1, b2}, (*incógnitas) > Modulus -> 2 (* aritmética módulo 2*) > ] > > devuelve FALSE > > Para comprobación de que lo que hago tiene sentido, cambiando la > segunda ecuación, > > Reduce[ > {a1+b1==1, a1 b1+a2 b2==1, a1 a2 b1 b2+a1 a2==1, a1 b2+a2 b1==1}, > (*ecuaciones*) > {a1, a2, b1, b2}, (*incógnitas) > Modulus -> 2 (* aritmética módulo 2*) > ] > > devuelve > > a1 == 1 && a2 == 1 && b1 == 0 && b2 == 1 > > Con 300 ecuaciones, no sé si será posible. > > Julián Eso es lo que estaba buscando. Por construccion el sistema de ecuaciones solo tiene una solucion y ninguna de la ecuaciones es combinacion lineal de las otras. Supongo que si las simplifico antes de decirle a Mathematica que lo solucione supongo que lo hara mas rápido. Muchas gracias a todos y (/coña mode on) os amenazo con que seguire preguntando cosas (/coña mode off). Un saludo. |
| |||
| Hola Nec556. Releyendo los mensajes veo que entendi cualquier cosa y escribi cualquier cosa. Vuelvo con un ejemplo de resolucion v2.0 En un sistema de dos ecuaciones asi: eq1: 1 = AB eq2: 0 = AC + AD' + DE' A ojo se ve que la primera ecuacion solo se cumple si A=B=1 y con esto, para que se cumpla la segunda debe ser D=E=1 y C=0 Una forma analitica de resolver un sistema de ecuaciones logicas es fusionarlas en una sola ecuacion. Que se cumplan las dos ecuaciones es equivalente a escribir (' es el complemento) eq1'+eq2 = 0 o sea (AB)' + AC + AD' + DE' = 0 Usando las leyes de De Morgan (AB)' = A'+B' y relaciones como A+A'·B = A+B llegas a que eso es igual a: A' + B' + C + D' + E' = 0 Que para que se cumpla debe ser A=B=D=E=1 y C=0 Este es un caso particular, lo esperado para un sistema grande escrito al azar es que no tenga solucion o tenga una enormidad de soluciones. En el ultimo caso se tiene que aplicar un Karnaugh o McCluskey para simplificar la expresion. En tu ejemplo con la funcion xor, tenes que reemplazarla por su expresion equivalente A xor B = A·B'+A'·B , tambien (A xor B)' = A·B+A'·B' Las ecuaciones eq1 = 1 eq2 = 0 eq3 = 1 eq4 = 1 Las escribis como eq1'+eq2+eq3'+eq4' = 0 (o como eq1·eq2'·eq3·eq4 = 1 ) Si vas combinando las ecuaciones de a dos, si en algun paso la ecuacion queda igual a 1 se termina todo porque no existe solucion ( o 0 si se usa producto de ecuaciones). El gran problema es que como en un caso general el numero de terminos crece exponencialmente, no es aplicable una resolucion a mano, y al tener que hacerlo por software, para sistemas con menos de 22 variables (por decir algo) puede hacerse directamente una verificion por fuerza bruta de las ecuaciones (mas facil de programar) |
| |||
| Hola Nec556. Releyendo los mensajes veo que entendi cualquier cosa y escribi cualquier cosa. Vuelvo con un ejemplo de resolucion v2.0 En un sistema de dos ecuaciones asi: eq1: 1 = AB eq2: 0 = AC + AD' + DE' A ojo se ve que la primera ecuacion solo se cumple si A=B=1 y con esto, para que se cumpla la segunda debe ser D=E=1 y C=0 Una forma analitica de resolver un sistema de ecuaciones logicas es fusionarlas en una sola ecuacion. Que se cumplan las dos ecuaciones es equivalente a escribir (' es el complemento) eq1'+eq2 = 0 o sea (AB)' + AC + AD' + DE' = 0 Usando las leyes de De Morgan (AB)' = A'+B' y relaciones como A+A'·B = A+B llegas a que eso es igual a: A' + B' + C + D' + E' = 0 Que para que se cumpla debe ser A=B=D=E=1 y C=0 Este es un caso particular, lo esperado para un sistema grande escrito al azar es que no tenga solucion o tenga una enormidad de soluciones. En el ultimo caso se tiene que aplicar un Karnaugh o McCluskey para simplificar la expresion. En tu ejemplo con la funcion xor, tenes que reemplazarla por su expresion equivalente A xor B = A·B'+A'·B , tambien (A xor B)' = A·B+A'·B' Las ecuaciones eq1 = 1 eq2 = 0 eq3 = 1 eq4 = 1 Las escribis como eq1'+eq2+eq3'+eq4' = 0 (o como eq1·eq2'·eq3·eq4 = 1 ) Si vas combinando las ecuaciones de a dos, si en algun paso la ecuacion queda igual a 1 se termina todo porque no existe solucion ( o 0 si se usa producto de ecuaciones). El gran problema es que como en un caso general el numero de terminos crece exponencialmente, no es aplicable una resolucion a mano, y al tener que hacerlo por software, para sistemas con menos de 22 variables (por decir algo) puede hacerse directamente una verificion por fuerza bruta de las ecuaciones (mas facil de programar) |
| |||
| On Sat, 5 Apr 2008, Eduardo wrote: > El gran problema es que como en un caso general el numero de terminos crece > exponencialmente, no es aplicable una resolucion a mano, y al tener que > hacerlo por software, para sistemas con menos de 22 variables (por decir > algo) puede hacerse directamente una verificion por fuerza bruta de las > ecuaciones (mas facil de programar) > Algunas variables más en un PC moderno. No obstante hay un prg comercial que puede ser adecuado, el ILOG CP ya que de unas ecuaciones se derivan más restricciones y se puede acortar mucho la fuerza bruta. Saludos -- http://www.telecable.es/personales/gamo/ perl -E 'say 111_111_111**2;' |
| |||
| On Sat, 5 Apr 2008, Eduardo wrote: > El gran problema es que como en un caso general el numero de terminos crece > exponencialmente, no es aplicable una resolucion a mano, y al tener que > hacerlo por software, para sistemas con menos de 22 variables (por decir > algo) puede hacerse directamente una verificion por fuerza bruta de las > ecuaciones (mas facil de programar) > Algunas variables más en un PC moderno. No obstante hay un prg comercial que puede ser adecuado, el ILOG CP ya que de unas ecuaciones se derivan más restricciones y se puede acortar mucho la fuerza bruta. Saludos -- http://www.telecable.es/personales/gamo/ perl -E 'say 111_111_111**2;' |
| |
| |
![]() |
| Herramientas | |
| Desplegado | |
| |
Temas Similares | ||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Álgebra pura! | Javier Esquinas | Newsgroup es.ciencia.matematicas | 12 | 25-06-2008 02:20:22 |
| algebra lineal | er2mat@gmail.com | Newsgroup es.ciencia.matematicas | 2 | 29-03-2008 18:36:27 |
| Suspiros de Álgebra.... | Luis | Newsgroup es.ciencia.matematicas | 2 | 11-01-2008 01:44:39 |
| algebra lineal | Antonia | Newsgroup es.ciencia.matematicas | 5 | 10-01-2008 09:41:21 |
| Trazado geométrico y algebra | León-Sotelo | Newsgroup es.ciencia.matematicas | 12 | 29-11-2007 10:51:01 |