auxiliares.tex 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. \subsection{Campo}
  2. % los aux del tipo campo
  3. $igualdadCampo(c,c':Campo):Bool= dimensiones(c)==dimensiones(c') \wedge (\forall i \leftarrow [0..fst(dimensionesCampo(c)),$\\ $j \leftarrow [0..snd(dimensionesCampo(c)) contenido(c,i,j)==contenido(c',i,j)) $
  4. parcelasCampo(c:Campo):$[(\ent , \ent)]$= \newline [(x,y) \textbar x $\leftarrow$ [0..prs(dimensiones(s))),y $\leftarrow$ [0..snd(dimensiones(s)))]
  5. \subsection{Drone}
  6. % los aux del tipo drone
  7. $igualdadDrone(d,d':Drone):Bool= id(d)==id(d') \wedge bateria(d)==bateria(d') \wedge enVuelo(d)==enVuelo(d') \wedge vueloRealizado(d)==vueloRealizado(d') \wedge mismos(productosDisponibles(d),productosDisponibles(d'))$
  8. mismosDrones(ds,xs:[Drone]):Bool= \textbar ds \textbar == \textbar xs \textbar $ \wedge ( \forall d \leftarrow ds)cantidadAparicionesD(d,ds)==cantidadAperecionesD(d,xs)$
  9. $cantidadAparicionesD(d:Drones,ds:[Drones])=$\textbar $[x $\textbar$ x \leftarrow ds, iguadadDrone(x,d)]$\textbar
  10. %│[x │ x\leftarrow ds, iguadadDrone(x,d)]│$
  11. escalera1(d:Drone):Bool= ($\forall i \leftarrow$ [0..\textbar vueloRealizado(d)\textbar -1) $prm(vueloRealizado(d)_{i}) \leq prm(vueloRealizado(d)_{i+1}$)\newline if \ $prm(vueloRealizado(d)_{i})== prm(vueloRealizado(d)_{i+1}$\ then $snd(vueloRealizado(d)_{i})+1== snd(vueloRealizado(d)_{i+1}$\ else $snd(vueloRealizado(d)_{i})== snd(vueloRealizado(d)_{i+1}$
  12. escalera2(d:Drone):Bool= ($\forall i \leftarrow$ [0..\textbar vueloRealizado(d)\textbar -1) $prm(vueloRealizado(d)_{i}) \geq prm(vueloRealizado(d)_{i+1}$)\newline if \ $prm(vueloRealizado(d)_{i})== prm(vueloRealizado(d)_{i+1}$\ then $snd(vueloRealizado(d)_{i})-1== snd(vueloRealizado(d)_{i+1})$\ else $snd(vueloRealizado(d)_{i})== snd(vueloRealizado(d)_{i+1}$
  13. escalera3(d:Drone):Bool= ($\forall i \leftarrow$ [0..\textbar vueloRealizado(d)\textbar -1) $prm(vueloRealizado(d)_{i}) \leq prm(vueloRealizado(d)_{i+1}$)\newline if \ $prm(vueloRealizado(d)_{i})== prm(vueloRealizado(d)_{i+1}$\ then $snd(vueloRealizado(d)_{i})-1== snd(vueloRealizado(d)_{i+1})$\ else $snd(vueloRealizado(d)_{i})== snd(vueloRealizado(d)_{i+1}$
  14. escalera4(d:Drone):Bool= ($\forall i \leftarrow$ [0..\textbar vueloRealizado(d)\textbar -1) $prm(vueloRealizado(d)_{i}) \geq prm(vueloRealizado(d)_{i+1}$)\newline if \ $prm(vueloRealizado(d)_{i})== prm(vueloRealizado(d)_{i+1}$\ then $snd(vueloRealizado(d)_{i})+1== snd(vueloRealizado(d)_{i+1})$\ else $snd(vueloRealizado(d)_{i})== snd(vueloRealizado(d)_{i+1}$
  15. parcelasConChoques(ds:[Drones]):[(($\ent,\ent),\ent$)]= \newline [(p,cantidadDronesenMomento(p,i,ds))\textbar d $\leftarrow$ ds, i $\leftarrow$ [0..\textbar vueloRealizado \textbar), p $\leftarrow$ vueloRealizado(d), \\ cantidadDronesEnMomento(p,i,ds) $\geq$ 2]
  16. cantidadDronesenMomento($p:(\ent, \ent),i:\ent,ds:[Drones]): \ent$ = \\ \textbar [p \textbar d $\leftarrow$ ds, $vueloRecorrido(d)_{i} $== p] \textbar
  17. quitarRepetidos(xs:[($\ent,\ent),\ent$)])=[$x_{i}$ \textbar i $\leftarrow$ [0.. \textbar xs \textbar), ($\forall$ j $\leftarrow$ [0.. \textbar xs \textbar), i $\leq$ j)$x_{i}$ $\lneq$ $x_{j}$]
  18. estaOrdenadoPorLaSugundaCoordenada(xs:[($\ent,\ent),\ent$)]):Bool = ($\forall$ x $\leftarrow$ xs)($\forall$ i,j $\leftarrow$ [0.. \textbar xs \textbar), i$\leq$j)$snd(x_{i})$ $\leq$ $snd(x_{j})$ $\vee$ $snd(x_{i})$ $\geq$ $snd(x_{j})$
  19. \subsection{Sistema}
  20. $parcelasAdyacentes(s:Sistema,i: \ent , j: \ent)): [(\ent , \ent)]$ = [p \textbar p $\leftarrow$ [(i+1,j), (i-1,j), (i,j+1),(i,j-1)], \newline enRango(dimensiones(campo(s)),prs(p),snd(p))]
  21. parcelaAdyacenteConPlaga(s:Sistema, i,j: $\ent$): Bool = $(\forall p \leftarrow parcelasAdyacentes(s,i,j), \newline contenido(campo(s),prs(p),snd(p))==Cultivo)$ estadoDelCultivo(s,prs(p),snd(p))==ConMaleza
  22. algunAdyacenteConPlaga(s:Sistema,i,j:$\ent$):Bool = $(\exists p \leftarrow parcelasAdyacentes(s,i,j),\newline contenido(campo(s),prs(p),snd(p))==Cultivo)$ estadoDelCultivo(s,prs(p),snd(p))==ConMaleza
  23. soloUnDrone(s:Sistema,p:$(\ent , \ent)$):Bool= \textbar [d \textbar d $\leftarrow$ enjambreDrones(s), posicionActual(d) == p ]\textbar == 1
  24. estaAdyacenteAlGranero(s:Sistema,d:Drone):Bool = \newline ($\exists$ (i,j) $\leftarrow$ parcelasAdyacentes(s,prs(posicionActual(d)),snd(posicionAlcual(s))))
  25. enRango(dimensiones(campo(s)),i,j) \newline $\wedge$ contenido(campo(s),i,j) $\neq$ Granero
  26. parcelaAdyacenteAlGraneroLibre(s:Sistema):Bool= \newline
  27. ($\exists$ (i,j),(n,m) $\leftarrow$ parcelasCampo(campo(s)))contenido(campo(s),i,j) $\neq$ Granero $\wedge$ contenido(campo(s),n,m)==Granero $\wedge$ (n,m) $\in$ parcelasAdyacentes(i,j)