Exemplo n.º 1
0
int main(int argc, char* argv[]) {
	if (argc != 3){
		std::cout << "Uso: "<<argv[0]<< MSJ_USAGE << std::endl;
		return 1;
	}

	ModeloObservable modelo(argv[1],argv[2]);

	modelo.actualizarProductos();
	modelo.actualizarAreasDeVision();

	Gtk::Main kit(argc, argv);

	Glib::RefPtr<Gtk::Builder> refBuilder2 = Gtk::Builder::create();

	if (crearAPartirDeGlade(&refBuilder2, VISTA_PPAL)==1)
		return 1;

	VistaPrincipal* pPrincipal = 0;
	refBuilder2->get_widget_derived("VentanaPrincipal",pPrincipal);
	if( pPrincipal){
		//Start:
		pPrincipal->setModelo(&modelo);
		pPrincipal->show();
		Gtk::Main::run();
	}
	delete pPrincipal;
	return 0;
}
Exemplo n.º 2
0
void estadoInicial(float *a, float *b, float *c, float *d, float *l, float *yInicial,float *x_obs, float *y_obs, int n_puntos)
{
  srand48(time(NULL));
  a[0] = drand48();
  b[0] = drand48();
  c[0] = drand48();
  d[0] = drand48();

  yInicial = modelo(x_obs, yInicial,a[0],b[0],c[0],d[0],n_puntos);

  l[0] =  likelyhood(y_obs, yInicial, n_puntos);

}
Exemplo n.º 3
0
void *elCamino(float *x_obs, float *y_obs, float *yDelMomento,float *yCandidato, float *a, float *b, float *c, float *d,float *l, int n_puntos, int iteraciones, int burn)
{
  int i;
  float aPrima;
  float bPrima;
  float cPrima;
  float dPrima;
  float lPresente;
  float lCandidato;
  float gamma;
  float beta;
  float alpha;

  const gsl_rng_type * T;
  gsl_rng * r;
  gsl_rng_env_setup();
  T = gsl_rng_default;
  r = gsl_rng_alloc (T);

  for(i=0; i < (iteraciones-1) ; i++)
    {
      aPrima = gsl_ran_gaussian(r, 0.1)+a[i];
      //bPrima = gsl_ran_gaussian(r, 0.1)+b[i];
      //cPrima = gsl_ran_gaussian(r, 0.1)+c[i];
      //dPrima = gsl_ran_gaussian(r, 0.1)+d[i];

      yDelMomento = modelo(x_obs, yDelMomento ,a[i],b[i],c[i],d[i],n_puntos);
      yCandidato = modelo(x_obs, yCandidato ,aPrima,b[i],c[i],d[i],n_puntos);

      lPresente = likelyhood(y_obs, yDelMomento, n_puntos);
      lCandidato = likelyhood(y_obs, yCandidato , n_puntos);
 
      gamma = (lCandidato - lPresente);
      if(gamma>=0.00)
	{
	  a[i+1]=aPrima;
	}
      else
	{
	  beta = drand48();
	  alpha = exp(gamma);
	  if(beta<=alpha)
	    {
	      a[i+1]=aPrima;
	    }
	  else
	    {
	      a[i+1]=a[i];
	    }
	}
      //aPrima = gsl_ran_gaussian(r, 0.1)+a[i];
      bPrima = gsl_ran_gaussian(r, 0.1)+b[i];
      //cPrima = gsl_ran_gaussian(r, 0.1)+c[i];
      //dPrima = gsl_ran_gaussian(r, 0.1)+d[i];

      yDelMomento = modelo(x_obs, yDelMomento ,a[i],b[i],c[i],d[i],n_puntos);
      yCandidato = modelo(x_obs, yCandidato ,a[i],bPrima,c[i],d[i],n_puntos);

      lPresente = likelyhood(y_obs, yDelMomento, n_puntos);
      lCandidato = likelyhood(y_obs, yCandidato , n_puntos);

      gamma = (lCandidato - lPresente);
      if(gamma>=0.00)
	{
	  b[i+1]=bPrima;
	}
      else
	{
	  beta = drand48();
	  alpha = exp(gamma);
	  if(beta<=alpha)
	    {
	      b[i+1]=bPrima;
	    }
	  else
	    {
	      b[i+1]=b[i];
	    }
	}

      //aPrima = gsl_ran_gaussian(r, 0.1)+a[i];
      //bPrima = gsl_ran_gaussian(r, 0.1)+b[i];
      cPrima = gsl_ran_gaussian(r, 0.1)+c[i];
      //dPrima = gsl_ran_gaussian(r, 0.1)+d[i];

      yDelMomento = modelo(x_obs, yDelMomento ,a[i],b[i],c[i],d[i],n_puntos);
      yCandidato = modelo(x_obs, yCandidato ,a[i],b[i],cPrima,d[i],n_puntos);

      lPresente = likelyhood(y_obs, yDelMomento, n_puntos);
      lCandidato = likelyhood(y_obs, yCandidato , n_puntos);

      gamma = (lCandidato - lPresente);
      if(gamma>=0.00)
	{
	  c[i+1]=cPrima;
	}
      else
	{
	  beta = drand48();
	  alpha = exp(gamma);
	  if(beta<=alpha)
	    {
	      c[i+1]=cPrima;
	    }
	  else
	    {
	      c[i+1]=c[i];
	    }
	}
      //aPrima = gsl_ran_gaussian(r, 0.1)+a[i];
      //bPrima = gsl_ran_gaussian(r, 0.1)+b[i];
      //cPrima = gsl_ran_gaussian(r, 0.1)+c[i];
      dPrima = gsl_ran_gaussian(r, 0.1)+d[i];

      yDelMomento = modelo(x_obs, yDelMomento ,a[i],b[i],c[i],d[i],n_puntos);
      yCandidato = modelo(x_obs, yCandidato ,a[i],b[i],c[i],dPrima,n_puntos);

      lPresente = likelyhood(y_obs, yDelMomento, n_puntos);
      lCandidato = likelyhood(y_obs, yCandidato , n_puntos);

      gamma = (lCandidato - lPresente);
      if(gamma>=0.00)
	{
	  d[i+1]=dPrima;
	}
      else
	{
	  beta = drand48();
	  alpha = exp(gamma);
	  if(beta<=alpha)
	    {
	      d[i+1]=dPrima;
	    }
	  else
	    {
	      d[i+1]=d[i];
	    }
	}

      yCandidato = modelo(x_obs, yCandidato, a[i+1],b[i+1],c[i+1],d[i+1],n_puntos);

      l[i+1] = likelyhood(y_obs,yCandidato,n_puntos);

      if(i+1>burn)
	{
	  printf("%f %f %f %f %f\n", a[i+1],b[i+1],c[i+1],d[i+1], l[i+1]);
	}
    }
}