Anda di halaman 1dari 4

Buscandouncaamino

1. Planteamien
P to

Conteexto: Estamo
os planifican
ndo una travvesa por el Pirineo, con
n la intenci
n de que pparticipe el mayor nmero
posiblledecompa
erosdeclase.
Proble
ema:Debem
mosescogeru
uncaminoparallegardeesdeundete
erminadopun
ntodepartiddaaotrodellegada.
Ejemp
plo:Queremosirdelrefu
ugiodeEstssaldeViads:

Pue
erto de Gistan

E
Ests
Viad
ds
Posets



Algunasposibilidadesparaeltrayeectoson:
IrenlnearectaatravsdelmmacizodelPoosets
Irporuncollado,porejemplo,porelpuerrtodeGistann
Elcaminomscorto, lalnearecta
a,nosiemprreesaconsejableyaqueesudesnivelpuedeserp
prohibitivop
para
muchos.A
Alatravesarunmacizoesspreferiblehhacerloporu
uncollado,a
aunqueelcamminoseam slargo
Modelizacin
M :
Estamoseenunaasign naturadeInfformtica,y lasolucind
debepoderaplicarseauutomticame enteacualqu uier
relieve.
En esta ttarea supond
dremos el paisaje
p mod elizado del siguiente modo:
m a cadaa punto del plano (x,y)) le
correspon ndeunaalturrazdadapo
or
3 cos y
z x, y coss x y
2 1 x
Ennuestraatareaquerremosirdelpuntodecooordenadas((x=1,y=0)a(x=1,y=0).
Puedesveerlarepresentacindeesterelieveeenlafigura1:


Figura1:relieveconsiderado
oenelejempllo.Aladerech
hasemuestra aelrelievevisttodesdearrib
ba:
cua
antomsvivo eselcolor,m
mayoreslaaltura.
1

Observa que existen un pico en el punto de coordenadas (x=0, y=0), dos collados en (0, 0.5) y (0, 0.5) y
cuatropozoscuyosfondosestnaproximadamenteenpuntos(0.75,0.5).
Solucin:
Toma, como primera aproximacin para la ruta, la resultante de trazar un segmento en el plano entre los
puntosinicialyfinal.
Acontinuacin,vedeformandopocoapocolarutademodoquevayadescendiendoeldesnivelacumulado.
Ensayaremoscaminosenquelacoordenadayseaunafuncinpolinomialdex:
y=(1x)(1+x)(a0+a1x+a2x2).Conestaexpresinnosaseguramosdequeelitinerariopasaporlospuntos
(1,0)y(1,0).Inicialmenteloscoeficientesa0,a1,a2valen0.Modificaremosaleatoriamentelosvaloresdelos
coeficientes. Daremos por buenos esos nuevos valores si el camino resultante tiene menor desnivel
acumulado.Elprogramaterminacuandollevemosunciertonmeroensayossinhaberconseguidomejorar
lasolucin.

Consecuencias:
Ventajas:
o hemosencontradouncaminoque,engeneral,esmejorqueelinicial.
o lasolucinsigueunalgoritmosencillo.Esrelativamentefcildeprogramar.
Inconvenientes:
o nuestrasolucinesptimalocalmente:enelmejordeloscasos,elcaminoencontradoesmejorque
cualquierotrocaminoprximoal,peronopodemosgarantizarquelasolucinsealamejorposible.
Hay dos caminos finales posibles, (mostrados en la figura 2), y tenemos la misma probabilidad de
acabar en cualquiera de ellos. Cada uno pasa por un collado, pero uno tiene menos desnivel
acumulado.
Ello se debe a que nuestro algoritmo es avaricioso (greedy algorithm): slo da por buenas
modificacionesquemejorenlasolucin(quehagandisminuireldesnivelacumulado).Supongamos,
porejemplo,quepartimosdeunatrayectoriaprximaalcolladosituadoenelpuntodecoordenadas
(x=0,y=0.5);paraacabarencontrandoelotrocollado(quealtenermenosalturaarrojaundesnivel
acumulado menor y, por tanto, es un paso ms deseable) sera necesario antes poder remontar el
picosituadoen(0,0).Nuestrasolucinnopermitehacereso.

o Esnecesariocuantificarcmodepequeasdebenserlassucesivasmodificacionesdelatrayectoria
inicial.Sislosonposiblesmodificacionesinfinitesimalesesnecesariounaltonmerodeiteraciones
para mejorar sustancialmente la trayectoria inicial. Si permitimos modificaciones de cualquier
magnitud,laaplastantemayoradeellasdarlugaratrayectoriasdisparatadas(comoirdeEstsa
ViadspasandoporBerln)ylaprobabilidaddeencontrarunabuenasolucinserdespreciable.

2
2. Desarrollodelatarea

DiseayprogramaenC/C++lossiguientessubalgoritmos.

numeroAleatorio:dadounreal,,devuelveunnmeroaleatorioenelintervalo[]

calculaY:Dadosunpuntoxyloscoeficientesa0,a1,a2devuelveelvalordelpolinomio
(1x)(1+x)(a0+a1x+a2x2)
Observaqueestaexpresingarantizaqueelcaminopaseporlospuntosinicial(x=1,y=0)yfinal(x=1,y=0)

altura:dadaslascoordenadasx,ydevuelvelaalturazcorrespondienteaunpuntodeesascoordenadas.En
nuestrocaso:
3 cos y
z cos
2 1

analizaCamino
Dadoscincoreales,a0,a1,a2(queparametrizanunatrayectoria),x0,xf(coordenadasxdelospuntosinicial
y final del camino) y un entero N (en el prrafo siguiente se explica su significado), calcula y devuelve al
algoritmoqueloinvocalalongitudyeldesnivelacumuladototalparaesatrayectoria.

Paracalcularlalongituddelatrayectoria,laaproximaremoscomounasucesindeNsegmentos,cadauno
deloscualesquedacaracterizadoporunenteron 0, N 1 .
Losextremosdelintervaloson(xn,yn,zn),(xn+1,yn+1,zn+1),donde
xn=x0+n*x,dondex=(xfx0)/N.
yneselvalordeycorrespondienteaxn:paracalcularloseutilizaelsubalgoritmocalculaY.
zneslaalturacorrespondientealpuntodecoordenadas(xn,yn).
Observaqueelextremofinaldeunsegmentocoincideconelinicialdelsiguiente.

Lalongituddelintervaloes:
l x y y z z
yeldesnivel:
d |z z |

Portanto,lalongitudtotaldelatrayectoriaes:

L l
Eldesnivelacumuladoes:
desnivel d
optimizaCamino
Dadosseisreales,a0,a1,a2(queparametrizanunatrayectoria),x0,xf(coordenadasxdelospuntosinicialy
final del camino), delta (que acota el rango de aleatorios) y dos enteros, N (nmero de segmentos) y
maximoFallidos,ajustalatrayectoriasiguiendoelsiguientealgoritmo:
i) Ensaya nuevos valores para cada uno de los coeficientes ai, sumndole a cada uno un nmero
aleatorioenelintervalo[deltadelta]:ainai+numeroAleatorio(),donde 0,2 .Elnmero
aleatorioserdistintoparacadacoeficiente.
ii) Siconlanuevatrayectoria(definidaporloscoeficientesain)eldesnivelacumuladoesmenorqueel
de la trayectoria inicial, se acepta el cambio de coeficientes: ai ain. Si no, se considera que el
intentohasidofallidoyloscoeficientesmantienensusvaloresiniciales.
iii) Los pasos i), ii) previos se repiten hasta que el programa lleve realizados maximoFallidos intentos
fallidosconsecutivossinmejorarlatrayectoria.

Elsubalgoritmodevuelvelosvaloresfinalesdea0,a1,a2,ascomolalongitudyeldesnivelacumuladodela
trayectoriafinal.

3
Escrib
beunprogram maprincipalqueempieccesolicitandooalusuariolosvaloresdedelta,saltooXymaximooFallidos.
Aconttinuacin,ejjecutar10iteraciones.
Encaddaunadeellasloscoefiicientesa0, a1,a2seiniicializanace
ero,seinvocaelsubalgooritmooptim
mizaCaminoyyse
muesttranlosresultadosdedicchosubalgorritmo.


3.. Ejemplo


Como
opuedesob
bservar,elaalgoritmooptabsicam
mentepord
dosgruposd
decaminos::
unoagrup pacaminos unpocom mslargos(eentornoa 5.72)yconnundesnivvelacumulaadomayor (en
torno5.006).Soncam
minosqueppasanporellcolladomsalto(x=0,y=0.5).
elotroagrupacamin nosalgomscortos(eentornoa 4.43)ycon
nundesnivvelacumuladomenor (en
tornoa33.07).Soncaaminosque
epasanpor elcolladom
menosalto (x=0,y=0. 5).
En
nlafigurain
nferiorsem
muestra,enrojo,unca minotpico
odecadaun
nodeesosddosgrupos.


Figura2:P
Paisajemodelizadoenelejeemplob)con variastrayecttoriasquecon
nectanlospunntos(1,0)y(1
1,0).
Laazul,proyeectadaenelp
planoXY,esunalnearectaa.Lasrojascorrespondenaresultadosdeenuestroalgo oritmo.

Anda mungkin juga menyukai