Search in sources :

Example 11 with BehaviorModel

use of org.iobserve.analysis.behavior.models.extended.BehaviorModel in project iobserve-analysis by research-iobserve.

the class VectorizationStage method execute.

@Override
protected void execute() {
    final BehaviorModel model = this.modelInputPort.receive();
    final Long timestamp = this.timerInputPort.receive();
    if (model != null) {
        this.vectorizeModel(model);
        this.models.add(model);
    }
    if (timestamp != null && this.models.size() > 1) {
        /**
         * Convert vectors from List<List<Double>> to Double[][]
         */
        final Double[][] vectorArray = new Double[this.distanceVectors.size()][];
        int i = 0;
        for (final List<Double> v : this.distanceVectors) {
            vectorArray[i++] = v.toArray(new Double[v.size()]);
        }
        /**
         * Convert models from list to array
         */
        final BehaviorModel[] modelsArray = this.models.toArray(new BehaviorModel[this.models.size()]);
        /**
         * Send both
         */
        VectorizationStage.LOGGER.debug(this.vectorsAsJSON());
        VectorizationStage.LOGGER.debug("Sending vectors and models to next stage (max. parameter radius: {}, max structure radius: {}", this.maximumParameterDistance, this.maximumStructureDistance);
        this.vectorsOutputPort.send(vectorArray);
        this.modelsOutputPort.send(modelsArray);
        /**
         * Clear state to prepare for arrival of new sessions
         */
        this.clearModels();
    }
}
Also used : BehaviorModel(org.iobserve.analysis.behavior.models.extended.BehaviorModel)

Example 12 with BehaviorModel

use of org.iobserve.analysis.behavior.models.extended.BehaviorModel in project iobserve-analysis by research-iobserve.

the class BehaviorModelCreationStage method execute.

@Override
protected void execute(final Instances instances) {
    final int size = instances.numInstances();
    for (int i = 0; i < size; i++) {
        final Instance instance = instances.instance(i);
        final Optional<BehaviorModel> behaviorModel = this.createBehaviorModel(instances, instance);
        final String modelName = this.namePrefix + i;
        behaviorModel.ifPresent(model -> model.setName(modelName));
        behaviorModel.ifPresent(this.outputPort::send);
    }
}
Also used : Instance(weka.core.Instance) BehaviorModel(org.iobserve.analysis.behavior.models.extended.BehaviorModel)

Example 13 with BehaviorModel

use of org.iobserve.analysis.behavior.models.extended.BehaviorModel in project iobserve-analysis by research-iobserve.

the class ModelComparisonStageTest method createReferenceModel.

private BehaviorModel createReferenceModel() {
    final BehaviorModel model = new BehaviorModel();
    model.addNode(this.nodeA, false);
    model.addNode(this.nodeB, false);
    model.addNode(this.nodeC, false);
    final EntryCallEdge edgeAB = new EntryCallEdge(this.nodeA, this.nodeB);
    edgeAB.addCalls(4);
    model.addEdge(edgeAB, false);
    final EntryCallEdge edgeBA = new EntryCallEdge(this.nodeB, this.nodeA);
    edgeBA.addCalls(3);
    model.addEdge(edgeBA, false);
    final EntryCallEdge edgeBC = new EntryCallEdge(this.nodeB, this.nodeC);
    edgeBA.addCalls(1);
    model.addEdge(edgeBC, false);
    return model;
}
Also used : EntryCallEdge(org.iobserve.analysis.behavior.models.extended.EntryCallEdge) BehaviorModel(org.iobserve.analysis.behavior.models.extended.BehaviorModel)

Aggregations

BehaviorModel (org.iobserve.analysis.behavior.models.extended.BehaviorModel)13 EntryCallEdge (org.iobserve.analysis.behavior.models.extended.EntryCallEdge)9 EntryCallNode (org.iobserve.analysis.behavior.models.extended.EntryCallNode)6 List (java.util.List)3 Optional (java.util.Optional)3 HashMap (java.util.HashMap)2 Map (java.util.Map)2 SingleOrNoneCollector (org.iobserve.analysis.behavior.SingleOrNoneCollector)2 CallInformation (org.iobserve.analysis.behavior.models.extended.CallInformation)2 AbstractUserAction (org.palladiosimulator.pcm.usagemodel.AbstractUserAction)2 Branch (org.palladiosimulator.pcm.usagemodel.Branch)2 BranchTransition (org.palladiosimulator.pcm.usagemodel.BranchTransition)2 EntryLevelSystemCall (org.palladiosimulator.pcm.usagemodel.EntryLevelSystemCall)2 Loop (org.palladiosimulator.pcm.usagemodel.Loop)2 ScenarioBehaviour (org.palladiosimulator.pcm.usagemodel.ScenarioBehaviour)2 Start (org.palladiosimulator.pcm.usagemodel.Start)2 Stop (org.palladiosimulator.pcm.usagemodel.Stop)2 UsageModel (org.palladiosimulator.pcm.usagemodel.UsageModel)2 UsageScenario (org.palladiosimulator.pcm.usagemodel.UsageScenario)2 AbstractConsumerStage (teetime.framework.AbstractConsumerStage)2