Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/17/20 15:18:20 (4 years ago)
Author:
gkronber
Message:

#3075: Fix order of instances and add information on reference publication and description.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/3075_aifeynman_instances/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanInstanceProvider.cs

    r17649 r17670  
    77  public class FeynmanInstanceProvider : ArtificialRegressionInstanceProvider {
    88    public override string Name {
    9       get { return "Feynman Benchmark Problems"; }
     9      get { return "'AI Feynman' Benchmark Problems"; }
    1010    }
    1111
    1212    public override string Description {
    13       get { return ""; }
     13      get { return "Problem instances from \"AI Feynman\" paper (Feynman Symbolic Regression Database)"; }
    1414    }
    1515
     
    1919
    2020    public override string ReferencePublication {
    21       get { return "asdf"; }
     21      get { return "Udrescu, Silviu-Marian, and Max Tegmark. \"AI Feynman: A physics-inspired method for symbolic regression.\" Science Advances 6.16 (2020): eaay2631."; }
    2222    }
    2323
     
    3838      var samples    = new[] {100, 1000};
    3939
    40       foreach (var s in samples) {
    41         foreach (var n in noiseRatio) {
    42           descriptorList.Add(new Feynman1(rand.Next(), s, s, n));
    43           descriptorList.Add(new Feynman2(rand.Next(), s, s, n));
    44           descriptorList.Add(new Feynman3(rand.Next(), s, s, n));
    45           descriptorList.Add(new Feynman4(rand.Next(), s, s, n));
    46           descriptorList.Add(new Feynman5(rand.Next(), s, s, n));
    47           descriptorList.Add(new Feynman6(rand.Next(), s, s, n));
    48           descriptorList.Add(new Feynman7(rand.Next(), s, s, n));
    49           descriptorList.Add(new Feynman8(rand.Next(), s, s, n));
    50           descriptorList.Add(new Feynman9(rand.Next(), s, s, n));
    51           descriptorList.Add(new Feynman10(rand.Next(), s, s, n));
    52           descriptorList.Add(new Feynman11(rand.Next(), s, s, n));
    53           descriptorList.Add(new Feynman12(rand.Next(), s, s, n));
    54           descriptorList.Add(new Feynman13(rand.Next(), s, s, n));
    55           descriptorList.Add(new Feynman14(rand.Next(), s, s, n));
    56           descriptorList.Add(new Feynman15(rand.Next(), s, s, n));
    57           descriptorList.Add(new Feynman16(rand.Next(), s, s, n));
    58           descriptorList.Add(new Feynman17(rand.Next(), s, s, n));
    59           descriptorList.Add(new Feynman18(rand.Next(), s, s, n));
    60           descriptorList.Add(new Feynman19(rand.Next(), s, s, n));
    61           descriptorList.Add(new Feynman20(rand.Next(), s, s, n));
    62           descriptorList.Add(new Feynman21(rand.Next(), s, s, n));
    63           descriptorList.Add(new Feynman22(rand.Next(), s, s, n));
    64           descriptorList.Add(new Feynman23(rand.Next(), s, s, n));
    65           descriptorList.Add(new Feynman24(rand.Next(), s, s, n));
    66           descriptorList.Add(new Feynman25(rand.Next(), s, s, n));
    67           descriptorList.Add(new Feynman26(rand.Next(), s, s, n));
    68           descriptorList.Add(new Feynman27(rand.Next(), s, s, n));
    69           descriptorList.Add(new Feynman28(rand.Next(), s, s, n));
    70           descriptorList.Add(new Feynman29(rand.Next(), s, s, n));
    71           descriptorList.Add(new Feynman30(rand.Next(), s, s, n));
    72           descriptorList.Add(new Feynman31(rand.Next(), s, s, n));
    73           descriptorList.Add(new Feynman32(rand.Next(), s, s, n));
    74           descriptorList.Add(new Feynman33(rand.Next(), s, s, n));
    75           descriptorList.Add(new Feynman34(rand.Next(), s, s, n));
    76           descriptorList.Add(new Feynman35(rand.Next(), s, s, n));
    77           descriptorList.Add(new Feynman36(rand.Next(), s, s, n));
    78           descriptorList.Add(new Feynman37(rand.Next(), s, s, n));
    79           descriptorList.Add(new Feynman38(rand.Next(), s, s, n));
    80           descriptorList.Add(new Feynman39(rand.Next(), s, s, n));
    81           descriptorList.Add(new Feynman40(rand.Next(), s, s, n));
    82           descriptorList.Add(new Feynman41(rand.Next(), s, s, n));
    83           descriptorList.Add(new Feynman42(rand.Next(), s, s, n));
    84           descriptorList.Add(new Feynman43(rand.Next(), s, s, n));
    85           descriptorList.Add(new Feynman44(rand.Next(), s, s, n));
    86           descriptorList.Add(new Feynman45(rand.Next(), s, s, n));
    87           descriptorList.Add(new Feynman46(rand.Next(), s, s, n));
    88           descriptorList.Add(new Feynman47(rand.Next(), s, s, n));
    89           descriptorList.Add(new Feynman48(rand.Next(), s, s, n));
    90           descriptorList.Add(new Feynman49(rand.Next(), s, s, n));
    91           descriptorList.Add(new Feynman50(rand.Next(), s, s, n));
    92           descriptorList.Add(new Feynman51(rand.Next(), s, s, n));
    93           descriptorList.Add(new Feynman52(rand.Next(), s, s, n));
    94           descriptorList.Add(new Feynman53(rand.Next(), s, s, n));
    95           descriptorList.Add(new Feynman54(rand.Next(), s, s, n));
    96           descriptorList.Add(new Feynman55(rand.Next(), s, s, n));
    97           descriptorList.Add(new Feynman56(rand.Next(), s, s, n));
    98           descriptorList.Add(new Feynman57(rand.Next(), s, s, n));
    99           descriptorList.Add(new Feynman58(rand.Next(), s, s, n));
    100           descriptorList.Add(new Feynman59(rand.Next(), s, s, n));
    101           descriptorList.Add(new Feynman60(rand.Next(), s, s, n));
    102           descriptorList.Add(new Feynman61(rand.Next(), s, s, n));
    103           descriptorList.Add(new Feynman62(rand.Next(), s, s, n));
    104           descriptorList.Add(new Feynman63(rand.Next(), s, s, n));
    105           descriptorList.Add(new Feynman64(rand.Next(), s, s, n));
    106           descriptorList.Add(new Feynman65(rand.Next(), s, s, n));
    107           descriptorList.Add(new Feynman66(rand.Next(), s, s, n));
    108           descriptorList.Add(new Feynman67(rand.Next(), s, s, n));
    109           descriptorList.Add(new Feynman68(rand.Next(), s, s, n));
    110           descriptorList.Add(new Feynman69(rand.Next(), s, s, n));
    111           descriptorList.Add(new Feynman70(rand.Next(), s, s, n));
    112           descriptorList.Add(new Feynman71(rand.Next(), s, s, n));
    113           descriptorList.Add(new Feynman72(rand.Next(), s, s, n));
    114           descriptorList.Add(new Feynman73(rand.Next(), s, s, n));
    115           descriptorList.Add(new Feynman74(rand.Next(), s, s, n));
    116           descriptorList.Add(new Feynman75(rand.Next(), s, s, n));
    117           descriptorList.Add(new Feynman76(rand.Next(), s, s, n));
    118           descriptorList.Add(new Feynman77(rand.Next(), s, s, n));
    119           descriptorList.Add(new Feynman78(rand.Next(), s, s, n));
    120           descriptorList.Add(new Feynman79(rand.Next(), s, s, n));
    121           descriptorList.Add(new Feynman80(rand.Next(), s, s, n));
    122           descriptorList.Add(new Feynman81(rand.Next(), s, s, n));
    123           descriptorList.Add(new Feynman82(rand.Next(), s, s, n));
    124           descriptorList.Add(new Feynman83(rand.Next(), s, s, n));
    125           descriptorList.Add(new Feynman84(rand.Next(), s, s, n));
    126           descriptorList.Add(new Feynman85(rand.Next(), s, s, n));
    127           descriptorList.Add(new Feynman86(rand.Next(), s, s, n));
    128           descriptorList.Add(new Feynman87(rand.Next(), s, s, n));
    129           descriptorList.Add(new Feynman88(rand.Next(), s, s, n));
    130           descriptorList.Add(new Feynman89(rand.Next(), s, s, n));
    131           descriptorList.Add(new Feynman90(rand.Next(), s, s, n));
    132           descriptorList.Add(new Feynman91(rand.Next(), s, s, n));
    133           descriptorList.Add(new Feynman92(rand.Next(), s, s, n));
    134           descriptorList.Add(new Feynman93(rand.Next(), s, s, n));
    135           descriptorList.Add(new Feynman94(rand.Next(), s, s, n));
    136           descriptorList.Add(new Feynman95(rand.Next(), s, s, n));
    137           descriptorList.Add(new Feynman96(rand.Next(), s, s, n));
    138           descriptorList.Add(new Feynman97(rand.Next(), s, s, n));
    139           descriptorList.Add(new Feynman98(rand.Next(), s, s, n));
    140           descriptorList.Add(new Feynman99(rand.Next(), s, s, n));
    141           descriptorList.Add(new Feynman100(rand.Next(), s, s, n));
    142           descriptorList.Add(new FeynmanBonus1(rand.Next(), s, s, n));
    143           descriptorList.Add(new FeynmanBonus2(rand.Next(), s, s, n));
    144           descriptorList.Add(new FeynmanBonus3(rand.Next(), s, s, n));
    145           descriptorList.Add(new FeynmanBonus4(rand.Next(), s, s, n));
    146           descriptorList.Add(new FeynmanBonus5(rand.Next(), s, s, n));
    147           descriptorList.Add(new FeynmanBonus6(rand.Next(), s, s, n));
    148           descriptorList.Add(new FeynmanBonus7(rand.Next(), s, s, n));
    149           descriptorList.Add(new FeynmanBonus8(rand.Next(), s, s, n));
    150           descriptorList.Add(new FeynmanBonus9(rand.Next(), s, s, n));
    151           descriptorList.Add(new FeynmanBonus10(rand.Next(), s, s, n));
    152           descriptorList.Add(new FeynmanBonus11(rand.Next(), s, s, n));
    153           descriptorList.Add(new FeynmanBonus12(rand.Next(), s, s, n));
    154           descriptorList.Add(new FeynmanBonus13(rand.Next(), s, s, n));
    155           descriptorList.Add(new FeynmanBonus14(rand.Next(), s, s, n));
    156           descriptorList.Add(new FeynmanBonus15(rand.Next(), s, s, n));
    157           descriptorList.Add(new FeynmanBonus16(rand.Next(), s, s, n));
    158           descriptorList.Add(new FeynmanBonus17(rand.Next(), s, s, n));
    159           descriptorList.Add(new FeynmanBonus18(rand.Next(), s, s, n));
    160           descriptorList.Add(new FeynmanBonus19(rand.Next(), s, s, n));
    161           descriptorList.Add(new FeynmanBonus20(rand.Next(), s, s, n));
     40      #region types
     41      var descriptorTypes = new Type[] {
     42        typeof(Feynman1),
     43        typeof(Feynman2),
     44        typeof(Feynman3),
     45        typeof(Feynman4),
     46        typeof(Feynman5),
     47        typeof(Feynman6),
     48        typeof(Feynman7),
     49        typeof(Feynman8),
     50        typeof(Feynman9),
     51        typeof(Feynman10),
     52        typeof(Feynman11),
     53        typeof(Feynman12),
     54        typeof(Feynman13),
     55        typeof(Feynman14),
     56        typeof(Feynman15),
     57        typeof(Feynman16),
     58        typeof(Feynman17),
     59        typeof(Feynman18),
     60        typeof(Feynman19),
     61        typeof(Feynman20),
     62        typeof(Feynman21),
     63        typeof(Feynman22),
     64        typeof(Feynman23),
     65        typeof(Feynman24),
     66        typeof(Feynman25),
     67        typeof(Feynman26),
     68        typeof(Feynman27),
     69        typeof(Feynman28),
     70        typeof(Feynman29),
     71        typeof(Feynman30),
     72        typeof(Feynman31),
     73        typeof(Feynman32),
     74        typeof(Feynman33),
     75        typeof(Feynman34),
     76        typeof(Feynman35),
     77        typeof(Feynman36),
     78        typeof(Feynman37),
     79        typeof(Feynman38),
     80        typeof(Feynman39),
     81        typeof(Feynman40),
     82        typeof(Feynman41),
     83        typeof(Feynman42),
     84        typeof(Feynman43),
     85        typeof(Feynman44),
     86        typeof(Feynman45),
     87        typeof(Feynman46),
     88        typeof(Feynman47),
     89        typeof(Feynman48),
     90        typeof(Feynman49),
     91        typeof(Feynman50),
     92        typeof(Feynman51),
     93        typeof(Feynman52),
     94        typeof(Feynman53),
     95        typeof(Feynman54),
     96        typeof(Feynman55),
     97        typeof(Feynman56),
     98        typeof(Feynman57),
     99        typeof(Feynman58),
     100        typeof(Feynman59),
     101        typeof(Feynman60),
     102        typeof(Feynman61),
     103        typeof(Feynman62),
     104        typeof(Feynman63),
     105        typeof(Feynman64),
     106        typeof(Feynman65),
     107        typeof(Feynman66),
     108        typeof(Feynman67),
     109        typeof(Feynman68),
     110        typeof(Feynman69),
     111        typeof(Feynman70),
     112        typeof(Feynman71),
     113        typeof(Feynman72),
     114        typeof(Feynman73),
     115        typeof(Feynman74),
     116        typeof(Feynman75),
     117        typeof(Feynman76),
     118        typeof(Feynman77),
     119        typeof(Feynman78),
     120        typeof(Feynman79),
     121        typeof(Feynman80),
     122        typeof(Feynman81),
     123        typeof(Feynman82),
     124        typeof(Feynman83),
     125        typeof(Feynman84),
     126        typeof(Feynman85),
     127        typeof(Feynman86),
     128        typeof(Feynman87),
     129        typeof(Feynman88),
     130        typeof(Feynman89),
     131        typeof(Feynman90),
     132        typeof(Feynman91),
     133        typeof(Feynman92),
     134        typeof(Feynman93),
     135        typeof(Feynman94),
     136        typeof(Feynman95),
     137        typeof(Feynman96),
     138        typeof(Feynman97),
     139        typeof(Feynman98),
     140        typeof(Feynman99),
     141        typeof(Feynman100),
     142        typeof(FeynmanBonus1),
     143        typeof(FeynmanBonus2),
     144        typeof(FeynmanBonus3),
     145        typeof(FeynmanBonus4),
     146        typeof(FeynmanBonus5),
     147        typeof(FeynmanBonus6),
     148        typeof(FeynmanBonus7),
     149        typeof(FeynmanBonus8),
     150        typeof(FeynmanBonus9),
     151        typeof(FeynmanBonus10),
     152        typeof(FeynmanBonus11),
     153        typeof(FeynmanBonus12),
     154        typeof(FeynmanBonus13),
     155        typeof(FeynmanBonus14),
     156        typeof(FeynmanBonus15),
     157        typeof(FeynmanBonus16),
     158        typeof(FeynmanBonus17),
     159        typeof(FeynmanBonus18),
     160        typeof(FeynmanBonus19),
     161        typeof(FeynmanBonus20)
     162   };
     163      #endregion
     164
     165
     166      foreach (var type in descriptorTypes) {
     167        foreach (var s in samples) {
     168          foreach (var n in noiseRatio) {
     169            descriptorList.Add((IDataDescriptor)Activator.CreateInstance(type, rand.Next(), s, s, n));
     170          }
    162171        }
    163172      }
    164       return descriptorList.OrderBy(x => x.Name).ToList();
     173      return descriptorList.ToList();
    165174    }
    166175  }
Note: See TracChangeset for help on using the changeset viewer.