ElfPSP_ParallelABC
Protein Structure Prediction using Parallel Artificial Bee Colony Optimization
Macros | Typedefs | Functions
solution.h File Reference

Routines for manipulating Solution objects, such as creation, randomization, perturbation etc. More...

#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <fitness/fitness.h>
#include <movelem.h>
#include <random.h>
#include "solution_structure_private.h"

Go to the source code of this file.

Macros

#define FITNESS_MIN   -1E9
 
#define SOLUTION_INLINE   inline
 

Typedefs

typedef struct Solution_ Solution
 

Functions

SOLUTION_INLINE Solution Solution_blank (int hpSize)
 Returns a Solution whose fields are all uninitialized, but with due memory allocated. More...
 
SOLUTION_INLINE Solution Solution_copy (Solution sol, int hpSize)
 Returns a deep copy (all memory recursively duplicated) of the given solution. More...
 
SOLUTION_INLINE void Solution_free (Solution sol)
 Frees memory allocated for given solution.
 
SOLUTION_INLINE Solution Solution_random (int hpSize)
 Returns a Solution whose movement chain is uniformly random. More...
 
SOLUTION_INLINE Solution Solution_perturb_relative (Solution perturb, Solution other, int hpSize)
 Chooses a random element ELEM1 in 'perturb'. More...
 
SOLUTION_INLINE double Solution_fitness (Solution sol)
 Returns the fitness of the given solution, calculating it only if needed. More...
 
SOLUTION_INLINE void Solution_set_fitness (Solution *sol, double fitness)
 Sets the fitness of a solution.
 
SOLUTION_INLINE int Solution_idle_iterations (Solution sol)
 Returns the number of iterations through which the solution didn't improve. More...
 
SOLUTION_INLINE void Solution_inc_idle_iterations (Solution *sol)
 Increments the number of idle solutions of the given solution. More...
 
SOLUTION_INLINE const MovElemSolution_chain (Solution sol)
 Returns the MovChain of the given solution. More...
 

Detailed Description

Routines for manipulating Solution objects, such as creation, randomization, perturbation etc.

Function Documentation

◆ Solution_blank()

SOLUTION_INLINE Solution Solution_blank ( int  hpSize)

Returns a Solution whose fields are all uninitialized, but with due memory allocated.

◆ Solution_chain()

SOLUTION_INLINE const MovElem* Solution_chain ( Solution  sol)

Returns the MovChain of the given solution.

Returns
The MovChain of the given solution, which shouldn't be modified.

◆ Solution_copy()

SOLUTION_INLINE Solution Solution_copy ( Solution  sol,
int  hpSize 
)

Returns a deep copy (all memory recursively duplicated) of the given solution.

◆ Solution_fitness()

SOLUTION_INLINE double Solution_fitness ( Solution  sol)

Returns the fitness of the given solution, calculating it only if needed.

Returns
The fitness of sol.

◆ Solution_idle_iterations()

SOLUTION_INLINE int Solution_idle_iterations ( Solution  sol)

Returns the number of iterations through which the solution didn't improve.

Returns
The number of idle iterations of sol.

◆ Solution_inc_idle_iterations()

SOLUTION_INLINE void Solution_inc_idle_iterations ( Solution sol)

Increments the number of idle solutions of the given solution.

◆ Solution_perturb_relative()

SOLUTION_INLINE Solution Solution_perturb_relative ( Solution  perturb,
Solution  other,
int  hpSize 
)

Chooses a random element ELEM1 in 'perturb'.

Then chooses a random element ELEM2 in 'other'. Takes the distance DIST between ELEM1 and ELEM2 Changes 'perturb' so that its ELEM1 approaches ELEM2 by a random amount, from 0 to 100%. The solution 'perturb' is returned.

The returned Solution has its idle_iterations set to 0. The returned Solution won't have its fitness calculated.

◆ Solution_random()

SOLUTION_INLINE Solution Solution_random ( int  hpSize)

Returns a Solution whose movement chain is uniformly random.

The returned Solution has its idle_iterations set to 0. The returned Solution won't have its fitness calculated.