Foro SofosAgora

Foro abierto a los intereses de sus usuarios. Debate, aprende y diviértete.
Fecha actual 16 Dic 2017, 05:23

Todos los horarios son UTC + 1 hora [ DST ]




Nuevo tema Responder al tema  [ 4 mensajes ] 
Autor Mensaje
 Asunto: ¿Evitar condiciones absurdas (matemáticas y programación)?
NotaPublicado: 11 May 2017, 23:36 
Desconectado
Avatar de Usuario

Registrado: 10 Ago 2011, 20:39
Mensajes: 7114
Por ejemplo
X > 1 y X > 2
es absurda porque alcanza con decir X > 2

En este otro caso
X == 3 y X == 4
es absurda porque es imposible que se cumpla, ergo ya se sabe que la respuesta será no, falsa, ergo no debería plantearse.

¿Cómo puedo hacer más o menos rápido una lista de las condiciones posibles, excluyendo las absurdas?

Téngase en cuenta que la lista ha de tener ciertas condiciones también, que explicaré.

Lista de las condiciones que implican 1 Candidato y 1 Fijo:
Citar:
F < C
F <= C
F == C
F != C
C < F
C <= F
Candidato es un número que irá variando hasta que cumpla las condiciones.
Fijo es un número que se establece al diseñar el programa, y que no varía.

Nota: Como norma para que me resulte más simple, en general al valor menor lo pondré del lado izquierdo.
Nota2: F > C y otros no los mencioné porque los considero igual que otros, en este caso C < F.

Lista de las condiciones que implican 2 Candidatos:
Citar:
C < C2
C <= C2
C == C2
C != C2
He quitado lo que sería C2 < C y C2 <= C, por motivos que no tiene mucho sentido que explique, no importa aquí.

Lista de las 2 condiciones AND que implican 1C y 1F:
Citar:
F < C y F <= C: Absurda por redundante (alcanza con decir F < C).
F < C y F == C: Absurda por imposible.
F < C y F != C: Redundante (F < C).
F < C y C < F: Imposible.
F < C y C <= F: I.
F <= C y F == C: R (F == C).
F <= C y F != C: R, al menos en cierto modo (F<C).
F <= C y C < F: I.
F <= C y C <= F: R (F==C).
F == C y F != C: I.
F == C y C < F: I.
F == C y C <= F: R (F == C).
F != C y C < F: I. R (C < F).
F != C y C <= F: R (C < F).
C < F y C <=F: R (C < F).
Puede que me haya equivocado, pero ninguna parece servir. Podríamos concluir que para que haya 2 condiciones AND con sentido debe haber 3 elementos mínimo (C y 2F, o 2C y 1F, o 3C).

Nota: Voy a cambiar el orden de aparición un poco:
F < C
C < F
F <= C
C <= F
F == C
F != C
...por aquello de "al valor menor lo pondré del lado izquierdo".

Lista de las 2 condiciones OR que implican 1C y 1F:
Citar:
F < C o C < F: R (F != C)
F < C o F <= C: R (F <= C)
F < C o C <= F: R (la condición se cumple siempre).
F < C o F == C: R (F <= C).
F < C o F != C: R (F != C).

C < F o F <= C: R (la condición se cumple siempre).
C < F o C <= F: R (C<=R).
C < F o F == C: R (C <= F).
C < F o F != C: R (F != C).

F <= C o C <= F: R (la condición se cumple siempre).
F <= C o F == C: R (F <= C).
F <= C o F != C: R (la condición se cumple siempre).

C <= F o F == C: R (C <= F).
C <= F o F != C: R (la condición se cumple siempre).

F == C o F != C: R (la condición se cumple siempre).
Tampoco aquí parece haber condiciones que tengan sentido.

Lista de las 2 condiciones AND que implican 1C y 2F:
Citar:
Lista de las 2 condiciones OR que implican 1C y 2F:
Citar:
En fin, podemos seguir, pero no se trata de hacer todas las listas, me remito a la pregunta en negrita, arriba.

_________________
Si no puedes hacerlo, intenta primero hacer algo más simple aunque similar.


Arriba
 Perfil  
Responder citando  
 Asunto: Re: ¿Evitar condiciones absurdas (matemáticas y programación
NotaPublicado: 12 May 2017, 04:33 
Desconectado
Avatar de Usuario

Registrado: 10 Jun 2011, 21:52
Mensajes: 4145
https://en.wikipedia.org/wiki/Constraint_programming

_________________
Spoiler: show
Imagen


Arriba
 Perfil  
Responder citando  
 Asunto: Re: ¿Evitar condiciones absurdas (matemáticas y programación
NotaPublicado: 15 May 2017, 22:13 
Desconectado
Avatar de Usuario

Registrado: 10 Ago 2011, 20:39
Mensajes: 7114
Actualización:
Se me ocurrió un método que me parece mejor pero aún no es suficiente.
Hago una regla, decimos que F es -5 y F2 es 5. En este caso funcionaría para casos donde hay 1C y 2Fs. A continuación lo que hacemos es ir ubicando Cs en diferentes posiciones en la regla. No haré los dibujos, pero por ejemplo la empezamos colocando luego de F2. ¿Cómo se describe eso? F2<C.
Luego la ubicamos en F2. F2==C
Luego, entre F y F2. F<C y C<F2.
Y así sucesivamente. El problema es que hay que pensar qué condición corresponde a cada dibujo, y me resulta molesto. Tampoco me dice a priori qué dibujos corresponden a condiciones que requieren AND o OR. Pero supongo que sí hay un método...

Knil (leedlo al revés):
Citar:
Se trata de un paradigma de programación basado en la especificación de un conjunto de restricciones, las cuales deben ser satisfechas por cualquier solución del problema planteado, en lugar de especificar los pasos para obtener dicha solución.
Recuerdo haber preguntado cómo era esto y no entendí. ¿Es diferente a fuerza bruta? Pero incluso en ese caso, sí se plantean los pasos a seguir para hallar una solución.
EJ: Quiero un número X tal que X+20*3+7=80
Probad el 1. ¿No sirve? Probad el 2. Etc.
El método para hallar la solución es probar distintos valores hasta que cumpla la condición.

Si lo que me has dado es eso, ya lo sé pero no cómo eso me ayudaría a resolver el tema. Si quieres intentamos hacer un programa que haga las listas, pero el tema no va por ahí.

Bueno puedo leer más pero básicamente no lo entendí.

Me resulta interesante el dibujito de acá:
https://es.wikipedia.org/wiki/Restricci ... C3%A1ticas)
Si dibujo estados de reglas de un lado, y condiciones de otro ¿habrá estados a los que les corresponda más de una regla o viceversa? Supongo que no. Estados en el mismo nivel de complejidad, digo (por ejemplo 1c y 2fs, pero claro que hay reglas con otra complejidad pero redundantes que pueden ser descritas con las mismas condiciones).

_________________
Si no puedes hacerlo, intenta primero hacer algo más simple aunque similar.


Arriba
 Perfil  
Responder citando  
 Asunto: Re: ¿Evitar condiciones absurdas (matemáticas y programación
NotaPublicado: 17 May 2017, 08:45 
Desconectado
Avatar de Usuario

Registrado: 10 Jun 2011, 21:52
Mensajes: 4145
No es fuerza bruta. Hay varias opciones. Aquí un ejemplo: https://en.wikipedia.org/wiki/Local_consistency

_________________
Spoiler: show
Imagen


Arriba
 Perfil  
Responder citando  
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 4 mensajes ] 

Todos los horarios son UTC + 1 hora [ DST ]


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro

Buscar:
Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO