padres: vector de longitud dos con índice de papa e índice de mama
mat_padres: matriz de kx2 la cual contiene en sus renglones las parejas de padres
cp: vector cromosoma que se va a poner a prueba
prob_volado: probabilidad de quitar un tiempo de cambio existente utilizado por mata_k_tau_volado para quitar elementos de más. Se recomienda dejar el valor de 0.5 ya que así al juntar los pc del padre y madre se eliminará la mitad de estos
probs_nuevos_muta0N: probabilidades de mutar 0,1,2,...,l hasta cierto numero l; eg si vale c(.5,.2,.2,.1) se tiene una probabilidad 0.5 de mutar 0 (de no mutar), probabilidad 0.2 de mutar 1,, probabilidad 0.2 de mutar 2, y, probabilidad 0.1 de mutar 3.
dist_extremos: distancia entre el primer los puntos de cambio v_0 y v_1 al igual que entre v_m y v_{m+1}; distancia minima que debe de haber de un punto de cambio y los valores 1 y T, donde T es la longitud total de la serie
min_num_cpts: es la cota inferior del número de puntos de cambio que puede tener un cromosoma
mutation_possibilities: vector con mutaciones posibles; eg si mutaciones=c(-1,0,1) entonces un punto de cambio puede ser movido una unidad a la izquierda, puede quedarse igual, o moverse una unidad a la derecha
mutation_probs: probabilidades de mutación. Las longitudes de este vector y mutaciones tienen que ser iguales; eg si mutaciones=c(-1,0,1) y probs_muta = c(.2, .6, .2) entonces se tiene una probabilidad .2 de que el punto de cambio se desplace a la izquierda, probabilidad .6 de quedar igual, y probabilidad . 2 de ser movido a la derecha
max_num_cp: el máximo número de rebases. Este parámetro se ocupa en particular para que todos los cromosomas quepan en una matriz.
prob_inicial: probabilidad de que en la primera generación un punto cualquiera sea punto de cambio. Se recomienda =.5 ya que con esto se distribuyen relativamente uniformes los puntos de cambio
generation_size: tamaño de las generaciones
vec_MDL: vector con valores MDL
OBSERVACIÓN: Esto regresa numeros negativos, los cuales mientras más negativo mejor, ya que dará que es un mejor vector de tiempos de cambio. Es decir, un MDL de -6000 es mejor que -4000
probs_rank0_MDL1: para medir obtener la probabilidad de los padres se pueden tomar o las probabilidades con respecto a los rangos (como en el artículo) o se pueden tomar las probabilidades con respecto a el MDL. La diferencia radica en que si se toma con respecto al MDL se tendrá que un cromosoma con un gran MDL este tendrá una gran ventaja de ocurrir, en cambio cuando solo se tiene rank esta ventaja gran ventaja se reduce
vec_probs: vector de probabilidades de selección de cada uno de los cromosomas
chromo: Chromosome, from a row of the matrix mat_cp
Returns
regresa una matriz de las mismas dimensiones que mat_cp, pero con los nuevos cromosomas
el mismo cromosoma sin algunos de sus puntos de cambio
regresa una matriz a la cual se le quitaron a sus cromosomas algunos puntos de cambio
regresa un vector mutado
regreas una mat_cp mutada
regresa una matriz de k por max_num_cp+3, la cual en cada renglón tiene una simulación de un vector de tiempos de cambio
regresa un vector de probabilidades
Details
regresa un vector de tamaño max_num_cp+3 donde la primera entrada es m, la segunda v0=1,....,vm+1=N,0,...,0
por ejemplo: c(4,1,3,8,11,15,20,0,0,0,0) para m=4, max_num_cp=8, N=20. Se tienen m puntos de cambio, los cuales τ0=1 y τm+1=N+1, pero en nuestro caso tenemos que los vectores cp tienen c(m,τ0=1,τ1,...,τm−1,τm=N,0,0,0)
por lo cual se nosotros:
empieza con el número de puntos de cambio;
la segunda entrada es un uno;
la tercera entrada es el primer punto de cambio;
las siguientes son otros puntos de cambio;
la siguiente entrada después de punto de cambio tiene el valor N; y
los siguientes son númores cero hasta llenarlo para que sea de tamaño max_num_cp