Hackpads are smart collaborative documents. .

Hernelio Long

426 days ago
  •     private static Population<MyVector> createInitialPopulation(int populationSize)    { Population<MyVector> population = new Population<MyVector>();
 
 
Rosabell C Chicos teniendo en cuenta que argumento del perigeo(parámetro 7) está dado por la cantidad que representa el ángulo  en el plano orbital entre el nodi ascendente y el perigeo o periapsis y que el recto semi - latus , también llamado parámetro de la cónica , p y que la relación entre p, E y A está dada por la fórmula  p =a(1-e) cómo planteaba anteriormente el profesor,comparto un código en Basic donde se busca el parametro 7
 
Alex L bien, todo aporte es importante en estos momentos.
 
Johana L profesor tendra el link de la pagina que nos mostro ayer :3 gracias
Alex L http://www.aanda.org/articles/aa/full_html/2012/07/aa18408-11/aa18408-11.html  creo que te refieres a este, solo veras el abstract, te vas a la mano derecha y seleccionas full HTML
Johana L gracias :+1: :3
 
Rosabell C Seudo-Código en Basic para hallar parámetro 7 
Ariel V En basic... diabloas!!jajajaja 
Han trabajado bastante muchachos.  
Mañana acaba la competencia
pregunta?
 Hicieron un video de 30 segundos, explicando lo que quieren hacer. 
 Quien va a ir mañana al evento, al medio dia es la presentacion.
 
 
Alex L Aun no debido a que estamos tratando de tener toda la parte teorica y los valores que usaremos para poder explicar con mayor claridad en el video. Pense en mañana hacer un video explicando el algoritmo y de donde usaremos los valores y los parametros, pero aun no estamos claros en que poner en el video.
Johana L no todavia no , es lo que dijo xander XD
 
Ariel V Excelente  /100 puntos
Si, explicando el genetico y como lo usuaran. En la presentacion, es decir eso, y ademas hablar de como se coordinaron.
 
Johana L tu vas a hablar en el video alexander?
Alex L necesitaria algun programa de videos, o jorge yo creo que tiene uno, el camtasia
Johana L camtasia lo tengo en mi pc creo dejame revisar y te digo 
 
Alex L Profesor, pero no hay que tener un codigo o prototipo para presentar a los de la nasa? solo tenemos parte teorica, valores y bases de codigos, aun nos faltaria lo que es algun prototipo o diseño de diagramas.
 
Johana L no lo tengo el camtasia, pero hay un programa que se llama fraps (creo) que hace lo mismo 
Alex L Averiguo con jorge a ver si el hace el video, y nosotros le hacemos las ppt para que explique.
Johana L andreea hace muy bonitas la ppt creo que se puede asiganar eso no?
Alex L ok pero dejame ver con jorge y vemos que ponemos en la ppt, para coordinarnos en ese aspecto.
 
Ariel V El codigo no es tan importante, lo que yo quiero ver es como ustedes lo resolverian, el codigo base el la metahuristica genetica, y veo que todos ya tienen un approuch. Yo les di el github, para que subieran ahi el contenido, peor nadie me ha dicho si han tenido problemas para usarlo.
 
Veo que han usado, el genetico e intentado resolver el problema. Quiero ver como lo terminan de implementar. porque ya vi que tienene varios geneticos implementados y varias tecnicas ya definidas. 
 
 
Rosabell C ----------------------------Start of BASIC Program---------------------------10 REM ======================================================================20 REM Programa de Rastreo de Satélites en QBASIC de Education News30 REM Se permite el uso no comercial a Educadores y Radioaficionados40 REM Versión de fecha 28/2/9450 REM ======================================================================60 DEFDBL T: PI = 3.141592654#: DIM SAT(50, 9), CFG$(4), SN$(50)70 DEF FNRAD (F) = PI * F / 180: DEF FNDEG (F) = F * 180 / PI80 REM lee el fichero de configuración "EDNTRACK.CFG" y asigna las variables90 REM de la estación terrena100 GOSUB 1010110 GOSUB 910: REM traza la pantalla120 GOSUB 1220: REM carga los elementos orbitales130 GOSUB 1420: IF SEL = -1 THEN END: REM lista los satélites disponibles140 REM muestra la tabla de satélites150 SEL = VAL(SEL$): IF SEL = 0 THEN GOSUB 910: GOSUB 360: GOTO 130160 GOSUB 1090: REM carga elementos del satélite elegido170 GOSUB 190: REM datos de rastreo para un satélite180 GOTO 130190 REM presentación de datos de paso para el satélite elegido200 INPUT " ¿ Cuántos minutos entre cada cálculo de posición"; A$210 IF VAL(A$) = 0 THEN 200220 DT = 1440 / VAL(A$): GOSUB 620230 REM traza pantalla y encabezado para un satélite240 COUNT = 1: GOSUB 910: GOSUB 780250 U = 24 * (T - INT(T)) + .000138888#260 REM le sumó 0.000138... para salir en segunda vuelta270 GOSUB 830: REM cambia hora (U) a formato de cadena de tiempo (T$)280 GOSUB 1550: REM cálculo de los parámetros orbitales290 PRINT T$; TAB(13); RA; TAB(24); AZ; TAB(33); EL; TAB(47); LO;300 PRINT TAB(60); LA; TAB(70); MA310 T = T + 1 / DT: COUNT = COUNT + 1: IF COUNT = 20 THEN GOSUB 970320 IF (A$ = "Q") OR (A$ = "q") THEN 350330 IF COUNT = 20 THEN 240340 GOTO 250350 RETURN360 REM muestra la tabla de satélites disponibles370 REM traza pantalla y encabezado para lista de satélites380 GOSUB 910: GOSUB 570: FOR SEL = 1 TO SN390 GOSUB 1090: GOSUB 620: REM toma tiempo actual y asigna variables400 REM c
alcula la posición actual410 U = 24 * (T - INT(T)) + .000138888#: GOSUB 1550420 T1 = T: LOS = 0: IF EL > 0 THEN LOS = 1
430 PRINT SN$(SEL); TAB(12); RA; TAB(22); AZ; TAB(32); EL; TAB(43); LO;440 PRINT TAB(53); LA; TAB(61); MA; "  ";450 DT = 2880: GOSUB 700: T2 = (T - T1) * 24: REM calcula tiempo hasta AOS/LOS460 PRINT TAB(71);470 PRINT RIGHT$("00" + RIGHT$(STR$(INT(T2)) , LEN(STR$(INT(T2))) - 1) , 2);480 XX$ = STR$(INT((T2 - INT(T2)) * 60)) : PRINT ":";490 PRINT RIGHT$("00" + RIGHT$(XX$ , LEN(XX$) - 1) , 2)500 IF (SEL MOD 19) = 0 THEN GOSUB 970510 IF (A$ = "Q") OR (A$ = "q") THEN SEL = SN + 1: GOTO 560520 IF (SEL MOD 19) = 0 THEN GOSUB 910: GOSUB 570530 NEXT SEL540 GOSUB 970: IF (A$ = "Q") OR (A$ = "q") THEN 560550 GOTO 380560 RETURN570 REM traza encabezado580 PRINT "Satélite  Distancia  Acimut  Elevación  Long.Este  Latitud  ";590 PRINT " Fase   AOS o LOS "600 FOR X = 1 TO 79: PRINT "═"; : NEXT X: PRINT610 RETURN620 REM lectura del reloj-calendario de la PC y asignación de variables630 Y = VAL(RIGHT$(DATE$, 2)): D = VAL(MID$(DATE$, 4, 2))640 M = VAL(LEFT$(DATE$, 2))650 M = M + 1: IF M < 4 THEN Y = Y - 1: M = M + 12660 D = D + INT(Y * 365.25) + INT(M * 30.6) - 28553670 T = (VAL(LEFT$(TIME$, 2)) + VAL(CFG$(4)) + VAL(MID$(TIME$, 4, 2)) / 60)680 T = (T + VAL(MID$(TIME$, 7, 2)) / 3600) / 24 + D690 RETURN700 REM calcula AOS o LOS futuros más cercanos710 EL1 = EL: T = T + 1 / DT: U = 24 * (T - INT(T)) + .000138888#720 GOSUB 1550: REM Calcula nueva posición730 IF SGN(EL1) <> SGN(EL) THEN 770740 IF (ABS(EL) > 10) THEN DT = 360750 IF (ABS(EL1 - EL) > 5) THEN DT = 5600760 GOTO 710770 RETURN780 REM traza el encabezado790 PRINT "Hora UTC   Distancia  Acimut  Elevación  Longitud Este ";800 PRINT "  Latitud     Fase"810 FOR X = 1 TO 79: PRINT "═"; : NEXT X: PRINT820 RETURN830 REM cambia la hora (U) a formato de cadena de tiempo (T$)840 XX = 60 * (U - INT(U)): TH$ = STR$(INT(U)): TM$ = STR$(INT(XX))850 TS$ = STR$(INT(60 * (XX - INT(XX))))860 TH$ = RIGHT$("00" + RIGHT$(TH$, LEN(TH$) - 1), 2)870 TM$ = RIGHT$("00" + RIGHT$(TM$, LEN(TM$) - 1), 2)880 TS$ = RIGHT$("00" + RIGHT$(TS$, LEN(TS$) - 1), 2)890 
T$ = TH$ + ":" + TM$ + ":" + TS$900 RETURN910 REM trazado de pantalla920 CLS : PRINT "LICENCIA: "; CFG$(1);930 PRINT SPC(45 - (LEN(CFG$(1)) + LEN(CFG$(2)) + LEN(CFG$(3))));940 PRINT "Latitud: "; CFG$(2); "° Longitud: "; CFG$(3); "°"950 FOR X = 1 TO 79: PRINT "═"; : NEXT X: PRINT960 RETURN970 REM aguarda la pulsación de una tecla980 PRINT "Pulse Q para salir u otra tecla para continuar";990 A$ = INKEY$: IF A$ = "" THEN 9901000 RETURN1010 REM lectura del fichero de configuración "EDNTRACK.CFG"1020 X = 11030 OPEN "EDNTRACK.CFG" FOR INPUT AS #11040 A$ = INPUT$(1, 1): IF A$ <> "=" THEN 10401050 A$ = INPUT$(1, 1): IF A$ <> CHR$(13) THEN TEMP$ = TEMP$ + A$: GOTO 10501060 CFG$(X) = TEMP$: X = X + 1: TEMP$ = "": IF X < 5 THEN 10401070 B = FNRAD(VAL(CFG$(2))): L = FNRAD(VAL(CFG$(3)))1080 CLOSE #1: RETURN1090 REM datos para el satélite elegido1100 Y = SAT(SEL, 1): G = SAT(SEL, 2): I = SAT(SEL, 4): O = SAT(SEL, 5)1110 E = SAT(SEL, 6): REM AO-13 Smoothed1120 W = SAT(SEL, 7): M = SAT(SEL, 8): N = SAT(SEL, 9)1130 PD = 1440 / N: G = INT(365.25 * (Y - 1)) - 28125 + G - M / N / 3601140 N = N * 2 * PI1150 REM calcula el eje Semi-mayor en número de radios terrestres1160 A = 331.25 * (PD) ^ .666666667# / 6378 :Q = A(1-E) 1170 REM calcula relación de cambio del RAAN1180 V = 4.97 * A ^ -3.5 * (5 * COS(FNRAD(I)) ^ 2 - 1) / (1 - E ^ 2) ^ 21190 REM calcula relación de cambio del Argumento de Perigeo1200 Q = -9.95 * A ^ -3.5 * COS(FNRAD(I)) / (1 - E ^ 2) ^ 21210 RETURN1220 REM abre el fichero de elementos orbitales y extrae los datos de satélites1230 SN = 1: INPUT "Nombre del fichero de datos tipo NASA de 2 líneas: "; N$1240 IF N$ = "" THEN 12301250 OPEN N$ FOR INPUT AS #11260 A$ = INPUT$(1, 1): IF A$ <> "B" THEN 12601270 A$ = INPUT$(1, 1): IF A$ <> "T" THEN 12601280 A$ = INPUT$(4, 1)1290 A$ = INPUT$(3, 1): SN$(SN) = A$: IF A$ = "FIN" THEN SN = SN - 1: GOTO 14101300 A$ = INPUT$(1, 1): IF A$<> CHR$(13) THEN SN$(SN) = SN$(SN) + A$: GOTO 13001310 SN$(SN) = LEFT$(SN$(SN) + "       ", 8): A$ = INP
UT$(1, 1)1320 L1$ = INPUT$(69, 1): A$ = INPUT$(2, 1): L2$ = INPUT$(69, 1)1330 A$ = INPUT$(2, 1): REM carga líneas 1 y 2 hasta CR+LF
1340 SAT(SN, 1) = VAL(MID$(L1$, 19, 2)): SAT(SN, 2) = VAL(MID$(L1$, 21, 12))1350 SAT(SN, 3) = VAL(MID$(L1$, 35, 9)): SAT(SN, 4) = VAL(MID$(L2$, 10, 7))1360 SAT(SN, 5) = VAL(MID$(L2$, 18, 8))1370 SAT(SN, 6) = VAL("." + MID$(L2$, 27, 7))1380 SAT(SN, 7) = VAL(MID$(L2$, 35, 8)): SAT(SN, 8) = VAL(MID$(L2$, 44, 8))1390 SAT(SN, 9) = VAL(MID$(L2$, 53, 10))1400 SN = SN + 1: GOTO 12901410 CLOSE #1: RETURN1420 REM selección de satélites1430 GOSUB 910: PRINT : PRINT SPC(23); "** Satélites disponibles **": PRINT1440 FOR X = 1 TO SN1450 PRINT RIGHT$(" " + STR$(X) + ")", 3); SN$(X); SPC(5);1460 IF (X MOD 5) = 0 THEN PRINT1470 NEXT X: PRINT : PRINT1480 PRINT " Con < Q > sale, con cero o  calcula TODOS, uno por uno"1490 INPUT " ¿ Qué número de Satélite "; SEL$1500 IF (SEL$ = "Q") OR (SEL$ = "q") THEN SEL = -1: GOTO 15401510 SEL = VAL(SEL$): IF (SEL => 0) AND (SEL =< SN) THEN 15401520 PRINT "          ** ERROR -- Elección no válida"1530 FOR X = 1 TO 50000!: NEXT X: GOTO 14301540 RETURN1550 REM -------------------------------------------------------------------1560 REM Basado en algoritmos para SHARP PC1246 por Karl Meinzer (DJ4ZC)1570 REM -------------------------------------------------------------------1580 REM  con cambios menores por James Miller G3RUH 1989-19931590 REM -------------------------------------------------------------------1600 D = T - G: K = FNRAD(D * Q + O - 100.29 - T * 360.985647#) - L1610 M = D * N: R = E: P = M1620 GOSUB 1870: H = (M - P + Y) / (1 - X): P = P + H1630 IF ABS(H) > .001 THEN 16201640 R = 1: GOSUB 1870: Y = Y * SQR(1 - E * E): X = X - E1650 GOSUB 1810: R = A * R: P = P + FNRAD(W + D * V)1660 GOSUB 1870: H = X: R = Y: P = FNRAD(I)1670 GOSUB 1870: S = Y: Y = X: X = H1680 GOSUB 1810: P = P + K: K = P + L: U = R1690 GOSUB 1870: Z = S - SIN(B): X = X - COS(B)1700 H = Y: Y = Z: GOSUB 1810: P = P - B + PI / 21710 GOSUB 1870: J = Y: Y = H: GOSUB 18101720 C = PI - P: X = R: Y = J: GOSUB 18101730 M = M / (2 * PI): M = 256 * (M - INT(M))1740 H = T: RA = INT(R
 * 6378): AZ = INT(FNDEG(C) + .5)1750 EL = INT(FNDEG(P) + .5): MA = INT(M + .5)1760 K = K / 2 / PI: K = (K - INT(K)) * 2 * PI1770 X = U: Y = S: GOSUB 18101780 LA = INT(FNDEG(P) + .5): LO = INT(FNDEG(K) + .5)1790 REM T = T + 1 / DT1800 RETURN1810 REM DEF PROCrtp1820 R = SQR(X * X + Y * Y): IF X = 0 THEN P = PI / 2 * SGN(Y): GOTO 18601830 P = ATN(Y / X): IF X > 0 THEN 18601840 IF Y > 0 THEN P = P + PI: GOTO 18601850 P = P - PI1860 RETURN1870 REM DEF PROCptr1880 Y = R * SIN(P): X = R * COS(P)1890 RETURN1900 REM -------------------------------------------------------------------1910 IF ERL = 1250 AND ERR = 53 THEN PRINT "** Fichero o path no hallados **"1920 RESUME 12301930 IF ERL = 1310 AND ERR = 62 THEN RESUME 14101940 PRINT "**Error Número "; ERR; " en Línea Número "; ERL; "**": STOP1950 END
 
 Bien chicos....checkeen que en una de las líneas se le asigna el valor a Q que en este caso sería nuestra "p" para hallar el parámetro 7
 En estas líneas: 
 1110 E = SAT(SEL, 6): REM AO-13 Smoothed1120 W = SAT(SEL, 7): M = SAT(SEL, 8): N = SAT(SEL, 9)1130 PD = 1440 / N: G = INT(365.25 * (Y - 1)) - 28125 + G - M / N / 3601140 N = N * 2 * PI1150 REM calcula el eje Semi-mayor en número de radios terrestres1160 A = 331.25 * (PD) ^ .666666667# / 6378 :Q = A(1-E) 
 
 
Claro que sí.... lo comparto....vi ese seudo-codigo y me gustó.... lo veo factible...desde mi punto de vista...y más porque se ve claramente donde usan  fórmula para hallar el parámetro 7 que nos falta
 
Demetrio G Listo rosa,
Gracias por compartir
 
 
Ariel V Van bien chicos, sigan asi. ya casi terminan. Hagan los cromosomas del genetico geneando los datos de forma aleatoria, basado en lo que ya saben de la teoria.  
 
Ahi esta el link... repito..lo veo factible 
 
Profe...una duda...en la fórmula p =a(1-e) esa e no va al cuadrado?...pregunto
Mumm...ok..gracias 
Ariel V excentricidad
Alex L es solo la "e" debido a que es la excentricidad segun la ley 2 de kepler o algo asi por lo que vi xd
Ariel V Eso mismo
De aqui ya podran trabajar en un laboratorio de astrofisica, y hacer experimentos como estos.
 Si recuerden que que el modelo que se genera como chromosoma es lo que deben evolucionar
 Eso es crossover y mutacion y en el diagrama de flujo los matan a todos en la 30 ava generaciom, eso fue lo que concluimos en la intervencio d ela clase.
 
 
 
Ariel V Repitanme quien va mañana, a presentar?
Alex L Estamos coordinando en el grupo de whatsapp, perecto,
Ariel V me avisan.
Johana L quienes irán y a que hora hay que estar allá ?
Ariel V El concurso acaba a las 12, para presentar.
Yo estare a las 10 alla, por si necesitan algun apoyo en algo.
 
 
Alex L A todos los que estamos conectados, ya tenemos bastantes cosas las empiezo a enumerar:
  1. Se utilizara python2.7 con deap y astroyd.
  1. Tenemos un código base o ejemplo proporcionado por Judith de algoritmo genetico en python y funciona correctamente.
  1. La tematica del diagrama de flujo con el algoritmo proporcionado por el profesor.
  1. Los 7 parametros con el que manejaremos para el asteroide.
  1. Toda la data proporcionada por minorplanetcenter en la cual presentan los parametros del 1 al 6 y el 7 parametro lo desarrollamoremos por la formula p=a(1-e).
  1. La población inicial se almacenara en un Json (recomendado) o en una matriz (no muy efectivo) en la cual contendran el id del asteroide y los 7 parametros con la data correspondiente al mismo.
  1. El fitness proporcionado por el profesor, la cual esta en proceso de analisis ahora mismo.
  1. El optimo o modelo es un valor desconocido, la cual nosotros no la podemos determinar.
  1. La poblacion debe ser de 10 millones tengo entendido.
Algo mas que este pasando por alto? Esto es para poder determinar la solucion, asi que debemos tener todo anotado.
efrain s Pienso que estos son los puntos principales.
...

Contact Support



Please check out our How-to Guide and FAQ first to see if your question is already answered! :)

If you have a feature request, please add it to this pad. Thanks!


Log in