GithubHelp home page GithubHelp logo

muia_prolog's Introduction

MUIA_Prolog

Supongamos que se dispone del casillero cuadriculado que puede verse en la figura, en la que se encuentra situado un androide en la casilla L7 y dos cajas en las casillas L5 y L6 respectivamente.

alt text

Se desea construir un programa que permita al androide trazar un plan para llevar las dos cajas (a las que llamaremos C1 y C2) a las casillas sombreadas, que como puede verse en la figura, son L8 y L9. Téngase en cuenta que en el estado meta se considerará irrelevante cual de las cajas esté ocupando cualquiera de las casillas destino siempre y cuando ambas casillas estén cubiertas con una de las cajas. Para realizar esta tarea, el androide puede realizar dos operaciones: moverse y empujar una caja. En lo que se refiere a la operación de desplazamiento, el androide sólo puede moverse cada vez a UNA casilla vacía que sea adyacente a la casilla correspondiente a su posición actual en una de las siguientes direcciones: (N)orte, (S)ur, (E)ste y (O)este. Para clarificar este supuesto, podríamos por ejemplo decir, que la casilla L2 es adyacente con la casilla L1 hacia el Oeste, y que L9 es adyacente con L6 hacia el Norte. De la misma forma, L6 sería adyacente con L9 hacia el Sur. Como se decía anteriormente, el androide también puede empujar una caja a una casilla adyacente vacía en una dirección determinada (N, S, E, O) siempre y cuando las casillas ocupadas por el androide, la caja, y la posición a la que se desea mover la caja sean adyacentes entre sí en la dirección de empuje. Por ejemplo, tal y como se muestra en la figura adjunta, si el androide desease empujar la caja que se encuentra en la casilla L5 hacia el Norte, entonces debería situarse en la casilla L8, mientras que si desease empujarla hacia el Sur, entonces debería ubicarse en L2. No podría, por ejemplo, empujar la caja L5 hacia el Este desde L4 dado que L6 está ocupada con otra caja. Por acción de la inercia, una vez el androide ha empujado una caja, este pasará a ocupar la posición que inicialmente ocupaba la caja. Se asumirá también que no puede haber más de un elemento en una casilla.

muia_prolog's People

Contributors

jucanbe avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.