Autor Tema: En un problema o duda ¿qué puede cambiar y qué no?

0 Usuarios y 1 Visitante están viendo este tema.

05 Febrero, 2024, 06:23 pm
Leído 569 veces

Tachikomaia

  • $$\Large \color{#5b61b3}\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 1,297
  • País: uy
  • Karma: +0/-0
  • Sexo: Masculino
Quiero aprender a hacer programas que resuelvan dudas/problemas mediante fuerza bruta o backtracking, no redes neuronales.

Ya hice uno extremadamente sencillo y alguno que otro más complejo. Ejemplo:
Código: [Seleccionar]
NumeroaAdivinar = 8
Candidato = 0
Repetir
  Candidato++
mientras Candidato != NumeroaAdivinar
Mostrar Candidato

Estoy viendo de qué formas se pueden complicar, y así enfrentar esas complicaciones una por una e irlas mezclando y enfrentándolas.

Las complicaciones creo que consisten en modificar (o quizá sólo aumentar) valores de variables.

Estoy pensando cuales son esas variables, lo cual me lleva a la pregunta del tema. No todo es variable en un problema o duda, por ejemplo las condiciones que debe cumplir la solución no lo es ¿no? ¿qué otra cosa no? Por si no se entiende lo de variable, piensen en el Ajedrez: Lo que se pide desde el inicio (dar mate en X movimientos, provocar que el rival parezca jugar bien, lo que sea) no varía (sino lo que se intentó no debió intentarse, el objetivo era otro), pero la situación sí, la posición de las piezas, y en cada una la acción conveniente varía, entonces es como si fuese un subproblema o una subduda: ¿Qué acción conviene ahora?

Por ahora tengo esta lista:

Parte 1: Variables de la situación:
Citar
- Cantidad inicial de variables tipo Entero de la situación.
- Mínima cantidad de variables tipo Entero de la situación.
- Máxima cantidad de variables tipo Entero de la situación.
- Posibles cantidades de variables tipo Entero de la situación.
- Cantidad inicial de variables tipo Decimal de la situación.
- Mínima cantidad de variables tipo Decimal de la situación.
- Máxima cantidad de variables tipo Decimal de la situación.
- Posibles cantidades de variables tipo Decimal de la situación.
- Cantidad inicial de variables tipo Texto de la situación.
- Mínima cantidad de variables tipo Texto de la situación.
- Máxima cantidad de variables tipo Texto de la situación.
- Posibles cantidades de variables tipo Texto de la situación.
- Mínimo rango de valores de las Variables de la situación.
- Máximo rango de valores de las Variables de la situación.
- Posibles cantidades de rangos de valores de las Variables de la situación.
Probablemente deba agregar de tipo Lista y Desconocido, veré. Por ahora no veo problema. Alguna cosa puede que sea irrelevante, se verá.

Parte 2: Variables sobre el Candidato:
Citar
- Cantidad inicial de partes tipo Entero del Candidato.
- Mínima cantidad de partes tipo Entero del Candidato.
- Máxima cantidad de partes tipo Entero del Candidato.
- Posibles cantidades de partes tipo Entero del Candidato.
- Cantidad inicial de partes tipo Decimal del Candidato.
- Mínima cantidad de partes tipo Decimal del Candidato.
- Máxima cantidad de partes tipo Decimal del Candidato.
- Posibles cantidades de partes tipo Decimal del Candidato.
- Cantidad inicial de partes tipo Texto del Candidato.
- Mínima cantidad de partes tipo Texto del Candidato.
- Máxima cantidad de partes tipo Texto del Candidato.
- Posibles cantidades de partes tipo Texto del Candidato.
- Mínimo rango de valores de las partes del Candidato.
- Máximo rango de valores de las partes del Candidato.
- Posibles cantidades de rangos de valores de las partes del Candidato.
Puede que en algunos problemas un candidato deba ser una lista de algo, pero las soluciones en mis programas son listas de candidatos así que no veo necesario que puedan ser de tipo lista (salvo que se requiera una lista de listas, que parece extraño). De tipo desconocido no pueden ser porque el candidato es lo que estamos usando a ver si funciona o no, debemos saber lo que estamos usando, aunque sea un material desconocido algo se sabrá de él como para distinguirlo de otros.
¿Puede en un problema o duda variarse cuántas partes tiene una acción o algo que debemos usar? No entiendo bien la pregunta, intentaré explicar más.
Las distintas acciones a veces pueden ser definidas simplemente mediante 1 número distinto cada una y a veces no o no conviene (aunque en la memoria creo que se hace así, 0s y 1s). Por ejemplo la acción 1 podría significar mover el rey hacia a las 12 (pensar en reloj), la 2 podría ser moverlo a las 1:30, etc, y así con cada pieza. Pero parece más fácil que la acción este compuesta de partes: Parte1: Qué pieza mover, parte 2: A qué lugar X, parte 3: A qué lugar Y. Lo que pregunto es si es posible que en alguna duda o problema la cantidad de partes así se modifique o si sería ilógico. Quizá un "ajedrez" que pueda convertirse de 3d a 2d dependiendo de si cierta pieza está en cierto lugar, de modo que a veces hay Z y a veces no... Pero eso sería lo mismo que asignar Z>0 a veces y a veces no. Según esto, la respuesta a la pregunta parece ser no, pero quizá hay algún caso en que sí.

Parte 3: Variables sobre las condiciones en que puede aplicarse el candidato:
Citar
- Mínima cantidad de Condiciones a chequear antes de aplicar al Candidato.
- Máxima cantidad de Condiciones a chequear antes de aplicar al Candidato.
- Posibles cantidades de Condiciones a chequear antes de aplicar al Candidato.
- Mínima complejidad de las Condiciones de la aplicación del Candidato.
- Máxima complejidad de las Condiciones de la aplicación del Candidato.
- Posibles cantidades de complejidades de las Condiciones  que los Candidatos deben cumplir.
Esto es parecido a medir los or y and de las condiciones, y en cuanto a la complejidad es si chequean al candidato como tal o se usa algo obtenido a partir de él, qué tan complejo es obtenerlo. No hice mucho una forma de medir eso. La cuestión aquí es que no puse "Cantidad inicial de Condiciones a chequear antes de aplicar al Candidato", y me pregunto si debo o no. Entiéndase que las 1eras 3 variables de este grupo se refieren a cuántas condiciones los candidatos deben pasar para ser aceptados, no sobre si algunas condiciones se eliminarán/agregarán. Eso me pregunto: ¿Las condiciones a chequearse deben variar? Eso suena como a alterar las reglas del juego, lo cual es como alterar demasiado el problema ¿o no? Imaginen que la aplicabilidad de una acción pudiera depender de muchísimas cosas, no es entonces una lista que vayamos a hacer a pr¡ori, las condiciones simplemente aparecen y desaparecen como si fuesen balas en una pantalla, sin que haya una cantidad límite conocida. ¿Pero cómo sería el contexto de eso? Eso no lo imagino. Tal vez un "ajedrez" en que se usen cartas que modifiquen reglas de modo que haya muchas posibles combinaciones, pero el nro de cartas presentes sería limitado, carta1, carta2, carta3... son variables, con la particularidad de influir en las reglas. Es similar a Final Fantasy Tactics Advance. El punto es que no es lo mismo un programa con 5 condiciones a chequear, por ejemplo, que uno en que haya 0~5 de 93982 posibles condiciones, no se debe hacer una lista de eso, serían condiciones variables, algo un tanto extraño. Pero supongo que sí, es válido.

En fin, me pregunto ese tipo de cosas. Aquí tienen más variables pero debo agregar algunas:
Citar
- Modo en que varían las partes del Candidatos.

- Mínima cantidad de modificaciones al aplicar al Candidato.
- Máxima cantidad de modificaciones al aplicar al Candidato.
- Posibles cantidades de modificaciones al aplicar el Candidato.
- Mínima complejidad de las modificaciones al aplicar al Cand.
- Máxima complejidad de las modificaciones al aplicar al Cand.
- Posibles cantidades de complejidades de mods al aplic al Cand.

- Mínima cantidad de conds a chequear antes de aplicar Efectos.
- Máxima cantidad de conds a chequear antes de aplicar Efectos.
- Posibles cantidades de conds a chequear antes de aplicar Efs.

- Mínima cantidad de Efectos.
- Máxima cantidad de Efectos.
- Posibles cantidades de Efectos.
- Mínima complejidad de los Efectos.
- Máxima complejidad de los Efectos.
- Posibles cantidades de complejidades de los Efectos.

- Complejidad del Azar (0 es que no hay).

- Rivales que deben aprender (si sus situaciones son distintas).

- Mínima cantid de Aplicaciones requeridas para resolver la duda.

- Complejidad de las Pistas (0 es que no hay).

Y estas son las que paece más seguro que no pueden cambiar en un mismo problema:
Citar
- Mínima cantidad de Condiciones que los Cands deben cumplir.
- Máxima cantidad de Condiciones que los Cands deben cumplir.
- Posibles cantidades de Condiciones que los Cands deben cumplir.
- Mínima complejidad de las Conds que los Cands deben cumplir.
- Máxima complejidad de las Conds que los Cands deben cumplir.
- Posibles cants de complejs d las Conds q los Cands deben cmplr.

Bah, me decidí a esto:
"Quizá todo puede variarse, menos el hecho de que debe/n cumplirse la/s condiciones que indican ciertas variables. El problema podría pedir ganar y de repente perder. Si se va ganando con mucha ventaja de repente se pediría perder y sino no, el jugador debería siempre ir ganando con poca ventaja xD".