Skip to main content
. 2021 Oct 14;23(10):1335. doi: 10.3390/e23101335
Algorithm A1 Estimating the Pareto Frontier
Parameters:num_generations, num_langs
Inputs: set of languages L, Pareto dominance method find_dominant, interpolate method
function genetic_estimate(num_generations, num_langs)
  languagesSAMPLE_RANDOM_LANGUAGES(num_langs)
  for i=1,,num_generations do
   dominant_languagesFIND_DOMINANT(languages)
   languagesSAMPLE_MUTATED(dominant_languages,num_langs)
  end for
  return languages
end function
function sample_mutated(languages, amount)
  amount_per_lang,amount_randomamount/|languages|
  mutated_languages[]
  for languagelanguages do
   for i=1,,amount_per_lang do
    Add MUTATE(language) to mutated_languages
   end for
  end for
  for i=1,,amount_random do
   languageRANDOM_CHOICE(languages)
   Add MUTATE(language) to mutated_languages
  end for
  return mutated_languages
end function
function mutate (language)
  mutated_languagelanguage
  num_mutationsRANDOM_CHOICE([1,2,3])
  for i=1,,num_mutations do
   mutationRANDOM_CHOICE(
               ADD_QUANTIFIER,REMOVE_QUANTIFIER,SWAP_QUANTIFIER)
   mutated_languageMUTATION(language)
  end for
  return mutated_language
end function
estimateGENETIC_ESTIMATE(num_generations,num_langs)
pareto_frontierFIND_DOMINANT(estimateL)
pareto_frontierINTERPOLATE(pareto_frontier)