Skip to content
Snippets Groups Projects
  1. Jul 14, 2018
  2. Jul 10, 2018
    • Alexander Diewald's avatar
      DI: First "operational" decoding chain. · 0498c90c
      Alexander Diewald authored
      
      * Refactoring: Remove unneeded Generics from several encodings and
        adapters. It is not possible in Guice to bind arbitrary Generics
        without additional concepts and a lot of implementation work. Thus,
        reduce the use of generics where possible.
      * Modify the decoders to contain Provides methods that are resolved by
        the Guice injector to resolve the execution order.
      * Reduce a lot of boilerplate code from the Decoders that was required
        by the old JGraphT-based Decoding.
      * Only support FailSafeTaskMappingEntries for now: The genericification
        shall be discussed anyways.
      * Register the guicified decoders in the Service registration class
        ExplorationAlg.
      * Don't allow double registration of Guice Modules in the
        ExplorationModule service.
      * Add a ThreadLocalScope that may be required for parallelization to
        ensure using the correct genotypes in the decoders.
      
      Signed-off-by: default avatarAlexander Diewald <diewald@fortiss.org>
      0498c90c
  3. Jul 04, 2018
    • Alexander Diewald's avatar
      DI: Prototype for ExplorationModule service based decoding. · 7b045f36
      Alexander Diewald authored
      
      * YELLOW: ExplorationExceptions.
      * Add ExplorationServiceRuntimeExceptions for cases where no exceptions
        may be thrown (e.g., startup methods).
      * Modify the ExplorationModule service such that instances of them must
        be registered instead of their types (no-arg constructors).
      * Add the ExplorationModule service to the plugin startup class.
      * Register the FailSilentTaskMappingDecoder.
      * Adjust the FailSilent- and FaultTolerantTaskMappingDecoder such that
        they use the new Guice DI mechanism.
      * Remove the creation methods of the above decoders from the DSE
        factories.
      
      Signed-off-by: default avatarAlexander Diewald <diewald@fortiss.org>
      7b045f36
  4. Jul 03, 2018
  5. Jul 02, 2018
  6. Jun 27, 2018
    • Alexander Diewald's avatar
      Guice: Proof of concept impl for decoder dependencies. · 81a3cabc
      Alexander Diewald authored
      
      * Testwise implementation of a decoding mechanism that is intended to
        replace the current dependency declaration and resolution mechanism
        with the Guice framework. This step should allow to reduce a lot of
        boilerplate code and ease maintenance.
      * The mechanism is is based on the "Providers" and "@Provide"
        annotation in combination with "@Inject" fields that declare the
        input dependencies.
      * TODOs:
      ** Switch all decoders to the new mechanism.
      ** Reduce the mountain of abstraction code that is not really required
         to configure the DSE.
      ** Implement a service mechanism that binds the guice modules belonging
         to an exploration feature.
      
      Signed-off-by: default avatarAlexander Diewald <diewald@fortiss.org>
      81a3cabc
  7. Jun 26, 2018
    • Alexander Diewald's avatar
      DSE-DI: Cleanup for DI-based decoders (DI --> Guice). · 540c157b
      Alexander Diewald authored
      
      * Create a GuiceDecoder class that serves as a container at which
        Guice-based decoders can be registered. It calls the Decoder that
        provides the demanded output encoding (Provides annotation). The
        Guice injector will be responsible to resolve the dependencies between
        the decoders.
      * Simplify the Phenotype classes such that there exists only a single
        phenotype that can host sub-phenotypes.
      * Also remove the generic from the phenotype that declares it's primary
        input genotype: There is almost no gain in terms of safety/robustness
        versus a ton of code complications.
      
      Signed-off-by: default avatarAlexander Diewald <diewald@fortiss.org>
      540c157b
  8. Jun 08, 2018
  9. Apr 27, 2018
  10. Apr 17, 2018
  11. Mar 28, 2018
    • Alexander Diewald's avatar
      Exploration(.*): Fix containment relations. · a865d755
      Alexander Diewald authored
      When using a non-z3 backend (here: the unofficial MOEA backend) that makes a more extensive use of the ExplorationSolution, invalid models can be produced. The reason for this behavior are faulty containment relations since the produced model fragments of the DSE were not contained in any other EObject. Here, it shall be noted that the SuperSets themselves are not intended as containers as of now since they are also used to pass around references to the relevant elements of a DSE.
      
      Furthermore, one warning was produced due to an EAttribute not being set (noticeable on the console).
      
      Technical details:
      
      * getCastedType(...): Used to avoid ugly casting in client code. The DSE language is based on generic IModelElements, whereas the Sets/SuperSets are strict w.r.t. to the types to provide guarantess for the DSE I/O.
      * The ExplorationSpecification now contains the the map of input parameters passed to the DSE (Tracing), but not its elements (!).
      * ExplorationSolution: 
      * * Contains the returned SuperSetMap.
      * * Added a "pool" for SuperSets: They are accessible via the SuperSetMap.
      * * Added a element "pool" for the generated elements referenced by the returned SuperSets.
      * DSMLModelElementFactory: Creating Sets now requires a reference to the SuperSet (reduced code redundancy; can be used for robustness checking later).
      * Adapt to the meta-model changes when using SuperSets/Sets (esp in the smt plugin).
      refs 3353
      a865d755
    • Alexander Diewald's avatar
      9bec3c26
    • Alexander Diewald's avatar
      Exploration.alg: Exponential penalty funcion for NoEmptyPartitionConstraint. · 5f9e344c
      Alexander Diewald authored
      * Using exponential functions for the penalty calculation of constraints is common practice and favored over pure potential functions.
      refs 3257
      5f9e344c
  12. Mar 22, 2018
  13. Mar 19, 2018
  14. Mar 14, 2018
  15. Mar 08, 2018
  16. Mar 07, 2018
    • Alexander Diewald's avatar
      Exploration.alg: Add the partition model export. · 9f05e450
      Alexander Diewald authored
      * Add SuperSets to the transformation interface: The dependency handling is still missing.
      * Transformation for generated partitions.
      * Transformation for Partition to ExecutionUnit allocations.
      * transformation for Task to Partition Allocations.
      refs 3257
      9f05e450
  17. Feb 27, 2018
  18. Feb 21, 2018
    • Alexander Diewald's avatar
      Exploration: DSE project MM improvements & DSE Backend Unification · fbefcaea
      Alexander Diewald authored
      =================
      | Exploration
      
      exploration.ecore
      =================
      - ExplorationSpecification
        - targets: non-contained (Migrator!)
        - Add superSet reference to pass required SuperSets to the DSE backend.
      - Remove ExplorationSolution interface: No Migration needed.
      - Rename ExplorationSolutionSet --> ExplorationSolution
        - Deprecated inputModelAdapter: No migration needed, only used in MOEA.
        - Renaming: targetSpecification --> explorationSpec
          - targetSpecification marked @deprecated
          - No mirgator needed: Class was not used in previous stable releases.
      - Add EClass SuperSetMap: Relates types of elements to SuperSets
        - solution: EJavaClassToSuperSetMap (containment!)
      - Add EClass EJavaClassToSuperSetMap: internal map of "SuperSetMap"
        - key: Class
        - Value: SuperSet (NO containment!)
      - ExplorationSolution
        - Renamed solutionModelMap -> solutionSets
          (Type EJavaClassToEJavaObjectMap -> EJavaClassToSuperSetMap)
        - Adjust EOperations to modifications in backend map.
      - SingleExplorationSolution
        - Add the solution state for single solutions.
        - Adjust EOperations to modifications in backend map.
      - Removed EJavaClassToEJavaObjectMap
      
      dseproject.ecore
      ================
      - DSE:
        - Add EReference target: ExplorationTarget (containment)
        - Remove explorationSpecification (Migrator!)
      - Add an ExplorationTargetPool that contains all ExplorationTargets of a DSE
        project.
      - DSERun:
        - Add EReference explorationSolution (containment)
        - Remove EReference visualization (Migrator!)
        
      dsl_v2.ecore
      ============
      - Overwrite the accept method for the Sum expression: Do not return null if the
        associated set is empty, evaluate to Zero, instead.
      
      New Migrators
      =============
      - DSEExplorationTargetContainmentMigrator
        Migrates the set of explorationTargets to the DSE project
      - VisualizationToExpSolutionMigrator:
        Migrates the Visualization data to the ExplorationSolution representation that
        allows a better traceability.
        
      Other Business
      ==============
      - Adjust plugin.xml to account for recently removed Objective- and
        ConstraintExpression classes. Now, ExplorationObjective and
        ExplorationConstraint is used.
        
      =================
      | Exploration.alg
      
      - Adjust the Opt4JBackend to be comply to the new DSE Backend Specification
      - The output type detection in the base decoder is more robust.
      - The ITaskAdapter temporally references its corresponding component to ease
        the refactoring of the DSE backend interface. This shall not be needed when
        the transformation framework is integrated again.
      - Temporally transform the internal solutions to a superset of
        ComponentToExecutionUnitAllocations to create s solution model. Workaround
        until the transformation framework is integrated again.
      - Misc adjustment for backend changes.
      
      =================
      | Exploration.smt
      
      - Adjust the Z3Backend to be comply to the new DSE Backend Specification
      - Base the results of the DeploymentRun2 and SolverRun2 on the
        ExplorationSolution (see above).
      
      ================
      | Exploration.ui
      
      - Adjust the GUI logic to account for the changed containment relations.
      - Update the DSE project import wizard for the Meta-Model changes.
      - Move the ExplorationSolutionVisualizationUtils class to the UI plugin (here).
        It is used to transform ExplorationSolutions to a Visualization representation
        (i.e., DataSetCollection).
      - Use doubles instead of ints in the SpiderChartUtils. Although not a proper
        solution, this covers more cases... Instead the generic should be reflected.
      refs 3273
      fbefcaea
  19. Feb 13, 2018
    • Alexander Diewald's avatar
      Exploration(.*): Remove outdated EClasses. · 0ac78eeb
      Alexander Diewald authored
      * No migration needed due to the eClasses' abstract/interface nature.
      * Removed ObectiveExpression
      * Removed ConstraintExpression
      * Removed ExplorationTargetExpression
      * Removed GenericObjective
      * Removed GenericConstraint
      refs 3273
      0ac78eeb
  20. Feb 12, 2018
  21. Feb 09, 2018
  22. Feb 08, 2018
    • Alexander Diewald's avatar
      Exploration.alg: Remove the SystemModelAdapter from the inner DSE core [1/2]. · 8c3d3d3d
      Alexander Diewald authored
      * Remove the SystemModelAdapter from many inner constructor methods where it is not needed or can be substituded by other information/data sources.
      * Introduce the InitialEncodingProvider that provides encodings to inner DSE parts iff an encoding can be constructed from the input models and if no other Exploration Feature provides the required encoding.
      refs 2962
      8c3d3d3d
  23. Feb 06, 2018
Loading