コード例 #1
0
ファイル: GCoptimization.cpp プロジェクト: 151706061/kslice
GCoptimization::EnergyType GCoptimization::swap(int max_num_iterations )
{
	
	int curr_cycle = 1;
	EnergyType new_energy,old_energy;
	

	new_energy = compute_energy();

	old_energy = new_energy+1;

	while ( old_energy > new_energy  && curr_cycle <= max_num_iterations)
	{
		old_energy = new_energy;
		new_energy = oneSwapIteration();
		
		curr_cycle++;	
	}

	return(new_energy);
}
コード例 #2
0
GCoptimization::EnergyType Swap::start_swap(int max_num_iterations )
{

    int curr_cycle = 1;
    EnergyType new_energy,old_energy;


    new_energy = dataEnergy()+smoothnessEnergy();

    //old_energy = new_energy+1; // this doesn't work for large float energies
    old_energy = -1;

    while (old_energy < 0 || (old_energy > new_energy  && curr_cycle <= max_num_iterations))
    {
        old_energy = new_energy;
        new_energy = oneSwapIteration();

        curr_cycle++;
    }
    //printf(" swap energy %d",new_energy);
    return(new_energy);
}