py4design.pyoptimise.analyse_xml module¶
-
py4design.pyoptimise.analyse_xml.
get_childnode_values
(node_name, parent_node)¶ This function gets the node value.
Parameters: node_name : str
The name of the node to be retrieved.
parent_node : xml minidom Node
The parent node.
Returns: values : list of str
The values of the node.
-
py4design.pyoptimise.analyse_xml.
get_childnode_attributes
(node_name, parent_node, attribute_name)¶ This function gets the node attributes.
Parameters: node_name : str
The name of the node to be retrieved.
parent_node : xml minidom Node
The parent node.
attribute_name : str
The name of the attributes to retrieve.
Returns: values : list of str
The values of the attributes of the node.
-
py4design.pyoptimise.analyse_xml.
get_childnode_value
(node_name, parent_node)¶ This function gets the node value.
Parameters: node_name : str
The name of the node to be retrieved.
parent_node : xml minidom Node
The parent node.
Returns: value : str
The value of the node.
-
py4design.pyoptimise.analyse_xml.
edit_nodevalue
(node_name, parent_node, change_value)¶ This function gets the node value.
Parameters: node_name : str
The name of the node to be retrieved.
parent_node : xml minidom Node
The parent node.
change_value : str
The new value of the node.
-
py4design.pyoptimise.analyse_xml.
create_childnode
(node_name, parent_node, value, doc)¶ This function creates a node.
Parameters: node_name : str
The name of the node to be created.
parent_node : xml minidom Node
The parent node.
value : str
The value of the node.
doc : xml minidom Document
The document to append the created node into.
-
py4design.pyoptimise.analyse_xml.
create_xml_file
(doc, ind, status)¶ This function creates a invidual node in the xml document.
Parameters: doc : xml minidom Document
The document to append the created node into.
ind : nsga2.Individual class instance
The individual object from the optimisation.
status : bool
True or False, if True the individual is alived, if False it is not.
Returns: doc : xml minidom Document
The document to append the created node into.
-
py4design.pyoptimise.analyse_xml.
create_xml_individual
(doc, identity, generation, status, genotype, ind_derivedparams, ind_scores)¶ This function creates a invidual node in the xml document.
Parameters: doc : xml minidom Document
The document to append the created node into.
identity : int
The unique id of an individual.
generation : int
The generation of the individual.
status : bool
True or False, if True the individual is alived, if False it is not.
genotype : Genotype class instance
The genotype of the individual.
ind_derivedparams : DerivedParams class instance
The derived parameters of the individual.
ind_scores : list of floats
The scores of the individual.
Returns: doc : xml minidom Document
The document to append the created node into.
-
py4design.pyoptimise.analyse_xml.
get_score
(ind)¶ This function gets the scores of an invidual.
Parameters: ind : xml minidom Node
The individual node.
Returns: scores : list of floats
The scores of the individual
-
py4design.pyoptimise.analyse_xml.
get_inputparam
(ind)¶ This function gets the input parameters (genotype) of an invidual.
Parameters: ind : xml minidom Node
The individual node.
Returns: input parameters : list of floats
The input parameters of the individual
-
py4design.pyoptimise.analyse_xml.
get_derivedparam
(ind)¶ This function gets the derived parameters of an invidual.
Parameters: ind : xml minidom Node
The individual node.
Returns: derived parameters : list of floats
The derived parameters of the individual
-
py4design.pyoptimise.analyse_xml.
get_id
(ind)¶ This function gets the unique id of an invidual.
Parameters: ind : xml minidom Node
The individual node.
Returns: id : str
The id of the individual
-
py4design.pyoptimise.analyse_xml.
get_inds_frm_xml
(xml_filepath)¶ This function gets the individuals minidom Node from an XML file.
Parameters: xml_filepath : str
The file path of the XML file.
Returns: individuals : list of xml minidom Node
All the individuals in the xml file.
-
py4design.pyoptimise.analyse_xml.
write_inds_2_xml
(inds, res_path)¶ This function writes the individuals minidom Node into an XML file.
Parameters: inds : list of xml minidom Node
All the individuals to be written to the xml file.
res_path : str
The file path of the XML file.
-
py4design.pyoptimise.analyse_xml.
combine_xml_files
(xmlfile1, xmlfile2, resxml_file)¶ This function combines two xml file into a single xml file.
Parameters: xmlfile1 : str
The file path of the first XML file.
xmlfile2 : str
The file path of the second XML file.
resxml_file : str
The file path of the resultant XML file.
-
py4design.pyoptimise.analyse_xml.
rmv_unevaluated_inds
(xmlfile)¶ This function removes all the individuals that are unevaluated from the xml file.
Parameters: xmlfile : str
The file path of the XML file.
-
py4design.pyoptimise.analyse_xml.
dominates
(result_list1, result_list2, min_max_list)¶ This function determines if result_list1 dominates result_list2.
Parameters: result_list1 : list of floats
The performance objectives of an individual.
result_list2 : list of floats
The performance objectives of an individual.
min_max_list : list of ints
The min max list is in this format, [0,1]. 0 = minimise, 1 = maximise. The min max list must correspond to the two result lists.
Returns: dominates : bool
True or False, if True result_list1 dominates result_list2, if false result_list1 does not dominate result_list2.
-
py4design.pyoptimise.analyse_xml.
on_pareto_front
(score_list, score_2dlist, min_max_list)¶ This function determines if the score_list is on the pareto front.
Parameters: result_list1 : list of floats
The performance objectives of an individual.
score_2dlist : 2dlist of floats
The performance objectives of a population of individuals.
min_max_list : list of ints
The min max list is in this format, [0,1]. 0 = minimise, 1 = maximise. The min max list must correspond to the two result lists.
Returns: on pareto : bool
True or False, if True score_list is on the Pareto front, if False score_list is not on the Pareto front.
-
py4design.pyoptimise.analyse_xml.
extract_pareto_front
(score_2dlist, min_max_list)¶ This function extract the Pareto front from the list of score_2dlist.
Parameters: score_2dlist : 2dlist of floats
The performance objectives of a population of individuals.
min_max_list : list of ints
The min max list is in this format, [0,1]. 0 = minimise, 1 = maximise. The min max list must correspond to the two result lists.
Returns: pareto front : 2dlist of floats
The performance objectives of a population of individuals.
non pareto front : 2dlist of floats
The performance objectives of a population of individuals.
-
py4design.pyoptimise.analyse_xml.
c_measures
(score_2dlist1, score_2dlist2, min_max_list)¶ This function calculates the c-measure btween two Pareto front.
Parameters: score_2dlist1 : 2dlist of floats
The performance objectives of a population of individuals on the Pareto front.
score_2dlist2 : 2dlist of floats
The performance objectives of a population of individuals on the Pareto front.
min_max_list : list of ints
The min max list is in this format, [0,1]. 0 = minimise, 1 = maximise.
Returns: c-measure : float
The c-measure. 1 means score_2dlist1 totally dominates score_2dlist2.
-
py4design.pyoptimise.analyse_xml.
minimise_score_4_hypervolume
(score_list, min_max_list)¶ This function converts maximuse scores to be minimise in preparation for the hypervolume calculation.
Parameters: score_list : list of floats
The performance objectives of an individual.
min_max_list : list of ints
The min max list is in this format, [0,1]. 0 = minimise, 1 = maximise.
Returns: converted score list : list of floats
The list of converted floats.
-
py4design.pyoptimise.analyse_xml.
prepare_front_4_hypervolume
(score_2dlist, min_max_list)¶ This function converts maximuse scores to be minimise in preparation for the hypervolume calculation.
Parameters: score_2dlist : 2dlist of floats
The performance objectives of a population of individuals on the Pareto front.
min_max_list : list of ints
The min max list is in this format, [0,1]. 0 = minimise, 1 = maximise.
Returns: converted score 2dlist : 2d list of floats
The 2d list of converted floats.
-
py4design.pyoptimise.analyse_xml.
hyper_volume
(score_2dlist, ref_pt, min_max_list)¶ This function performs the hypervolume calculation.
Parameters: score_2dlist : 2dlist of floats
The performance objectives of a population of individuals on the Pareto front.
ref_pt : list of floats
The performance objectives that is coverted by every individual on the Pareto front.
min_max_list : list of ints
The min max list is in this format, [0,1]. 0 = minimise, 1 = maximise.
Returns: hyper volume : float
The hyper volume of the front.
-
py4design.pyoptimise.analyse_xml.
inds_2_score_2dlist
(inds)¶ This function converts xml minidom individual node into score 2dlist.
Parameters: inds : list of xml minidom Node
All the individuals to be converted.
Returns: score_2dlist : 2dlist of floats
The performance objectives of a population of individuals.
-
py4design.pyoptimise.analyse_xml.
extract_pareto_front_inds
(inds, min_max_list)¶ This function extract the Pareto front from the list of score_2dlist.
Parameters: inds : list of xml minidom Node
The individuals to extract the Pareto front from.
min_max_list : list of ints
The min max list is in this format, [0,1]. 0 = minimise, 1 = maximise. The min max list must correspond to the two result lists.
Returns: pareto front : list of xml minidom Node
The population of individuals on the front.
non pareto front : list of xml minidom Node
The population of individuals not on the front.
-
py4design.pyoptimise.analyse_xml.
calc_min_max_range
(data_2dlist)¶ This function calculates the minimum and maximum range of the 2d data.
Parameters: data_2dlist : 2dlist of floats
The 2d list of floats.
Returns: min max range : 2dlist of floats
The range of the 2d data.
-
py4design.pyoptimise.analyse_xml.
normalise
(data_2dlist)¶ This function normalise all the data into 0.0-1.0.
Parameters: data_2dlist : 2dlist of floats
The 2d list of floats.
Returns: normalised 2d list : 2dlist of floats
The normalised 2d data.
-
py4design.pyoptimise.analyse_xml.
denormalise
(data_2dlist, orig_data_2dlist)¶ This function converts a 2d data list back into its original range based on the orig_data_2dlist.
Parameters: data_2dlist : 2dlist of floats
The normalised list of floats.
orig_data_2dlist : 2dlist of floats
The 2d list of floats.
Returns: denormalised 2d list : 2dlist of floats
The denormalised 2d data.
-
py4design.pyoptimise.analyse_xml.
kmeans_inds
(inds, attribs_2_cluster, n_clusters=None)¶ This function performs k-means clustering on the specified attributes of the individuals.
Parameters: inds : list of xml minidom Node
All the individuals to be clustered.
attribs_2_cluster : str
Options: “score”, “inputparam”, “derivedparam”.
n_clusters : int, optional
The number of clusters to generate, Default = None. If None the elbow test is used to automatically decide the number of clusters.
Returns: result dictionary : dictionary
The dictionary is in this format. {“cluster_list”: [[cluster1-ind1, cluster1-ind2, cluster1-indx],[cluster2-ind1, cluster2-ind2, cluster2-indx],[cluster3-ind1, cluster3-ind2, cluster3-indx]] “centroids”: [cluster1-centroid, cluster2-centroid, cluster3-centroid}, centroid = [x,y,z]
-
py4design.pyoptimise.analyse_xml.
kmeans
(np_array, n_clusters)¶ This function performs k-means clustering.
Parameters: np_array : numpy array
2d list of floats.
n_clusters : int
The number of clusters to generate.
Returns: result dictionary : dictionary
The dictionary is in this format. {“cluster_list”: [[cluster1-array1, cluster1-array2, cluster1-arrayx],[cluster2-array1, cluster2-array2, cluster2-arrayx],[cluster3-array1, cluster3-array2, cluster3-arrayx]] “centroids”: [cluster1-centroid, cluster2-centroid, cluster3-centroid}, centroid = [x,y,z]
-
py4design.pyoptimise.analyse_xml.
elbow_test
(X, max_cluster)¶ This function performs the elbow test to determine the number of clusters for k-means clustering.
Parameters: X : numpy array
2d list of floats.
max_cluster : int
The maximum number of clusters to desirable.
Returns: number of clusters : int
The number of clusters for kmeans clustering
-
py4design.pyoptimise.analyse_xml.
archetypal_analysis_inds
(inds, attribs_2_cluster, max_archetypes, niter=200)¶ This function performs archetypal analysis on the specified attributes of the individuals.
Parameters: inds : list of xml minidom Node
All the individuals to be analysed.
attribs_2_cluster : str
Options: “score”, “inputparam”, “derivedparam”.
max_archetypes : int
The maximum permissible number of archetypes to generate.
niter : int, optional
The number of iterations of the analysis, Default = 200.
Returns: archetypes : 2dlist of floats
The 2d list of floats is in this format: [archetype1,archetype2,archetype3], archetype = [x,y,z]
-
py4design.pyoptimise.analyse_xml.
archetypal_analysis
(np_array, max_archetypes, niter=200)¶ This function performs archetypal analysis.
Parameters: np_array : numpy array
2d list of floats.
max_archetypes : int
The maximum permissible number of archetypes to generate.
niter : int, optional
The number of iterations of the analysis, Default = 200.
Returns: archetypes : 2dlist of floats
The 2d list of floats is in this format: [archetype1,archetype2,archetype3], archetype = [x,y,z]
-
py4design.pyoptimise.analyse_xml.
crowd_distance_assignment
(score_2dlist)¶ This function calculates and assigns the crowding distance.
Parameters: score_2dlist : 2dlist of floats
The performance objectives of a population of individuals.
Returns: assigned individuals : list of floats
Each individual is assigned a crowding distance the list is in the order of the score_2dlist.
-
py4design.pyoptimise.analyse_xml.
sort_objectives
(score_2dlist, obj_idx)¶ This function arranges the individuals in ascending orders according to a chosen performance objective.
Parameters: score_2dlist : 2dlist of floats
The performance objectives of a population of individuals.
obj_idx : int
The index of the chosen objective for arranging the individuals.
Returns: sorted individuals : 2d list of floats
The sorted list of individuals in ascending orders according to the chosen objective.