示例#1
0
 /// <summary>
 /// Constructor for a tree node
 /// </summary>
 /// <param name="inductiveMiner"></param>
 /// <param name="operation">node operation</param>
 /// <param name="associatedEvent"></param>
 /// <param name="right"></param>
 /// <param name="left"></param>
 /// <author>Thomas Meents, Bernd Nottbeck</author>
 public InductiveMinerTreeNode(InductiveMiner inductiveMiner, OperationsEnum operation, Event associatedEvent = null, InductiveMinerTreeNode right = null, InductiveMinerTreeNode left = null)
 {
     Operation = operation;
     LeftLeaf  = left;
     RightLeaf = right;
     Event     = associatedEvent;
     petriNet  = inductiveMiner.IMPetriNet;
 }
 /// <summary>
 /// Constructor for a tree node
 /// </summary>
 /// <param name="inductiveMiner"></param>
 /// <param name="operation">node operation</param>
 /// <param name="associatedEvent"></param>
 /// <param name="right"></param>
 /// <param name="left"></param>
 /// <author>Thomas Meents, Bernd Nottbeck</author>
 public InductiveMinerTreeNode(InductiveMiner inductiveMiner, OperationsEnum operation, Event associatedEvent = null, InductiveMinerTreeNode right = null, InductiveMinerTreeNode left = null)
 {
     Operation = operation;
     LeftLeaf = left;
     RightLeaf = right;
     Event = associatedEvent;
     petriNet = inductiveMiner.IMPetriNet;
 }
        public static InductiveMinerTreeNode CreateExampleSequence(InductiveMiner miner)
        {
            InductiveMinerTreeNode ExampleTree = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isSequence);
            InductiveMinerTreeNode one = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isSequence);
            ExampleTree.LeftLeaf = one;
            InductiveMinerTreeNode two = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isLeaf) { Event = new Event("A") };
            one.LeftLeaf = two;
            InductiveMinerTreeNode three = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isLeaf) { Event = new Event("B") };
            one.RightLeaf = three;
            InductiveMinerTreeNode four = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isLeaf) { Event = new Event("C") };
            ExampleTree.RightLeaf = four;

            return ExampleTree;
        }
        public static InductiveMinerTreeNode CreateExampleParallelXOR(InductiveMiner miner)
        {
            InductiveMinerTreeNode ExampleTree = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isSequence);

            InductiveMinerTreeNode one = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isLeaf) {Event =  new Event("A")};
            ExampleTree.LeftLeaf = one;
            InductiveMinerTreeNode two = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isParallel);
            ExampleTree.RightLeaf = two;
            InductiveMinerTreeNode three = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isLeaf) { Event = new Event("B") };
            two.LeftLeaf = three;
            InductiveMinerTreeNode four = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isXOR);
            two.RightLeaf = four;
            InductiveMinerTreeNode five = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isLeaf) { Event = new Event("C") };
            four.LeftLeaf = five;
            InductiveMinerTreeNode six = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isLeaf) { Event = new Event("D") };
            four.RightLeaf = six;

            return ExampleTree;
        }
        public static InductiveMinerTreeNode CreateExampleKnochenbruch(InductiveMiner miner)
        {
            InductiveMinerTreeNode ExampleTree = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isSequence);

            InductiveMinerTreeNode one = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isSequence);
            ExampleTree.LeftLeaf = one;
            InductiveMinerTreeNode two = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isLeaf) { Event = new Event("Befundung") };
            one.RightLeaf = two;
            InductiveMinerTreeNode three = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isSequence);
            one.LeftLeaf = three;
            InductiveMinerTreeNode four = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isParallel);
            three.RightLeaf = four;
            InductiveMinerTreeNode five = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isLeaf) { Event = new Event("Blutentnahme") };
            four.LeftLeaf = five;
            InductiveMinerTreeNode six = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isXOR);
            four.RightLeaf = six;
            InductiveMinerTreeNode seven = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isLeaf) { Event = new Event("Röntgen") };
            six.LeftLeaf = seven;
            InductiveMinerTreeNode eight = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isLeaf) { Event = new Event("MRT") };
            six.RightLeaf = eight;
            InductiveMinerTreeNode nine = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isSequence);
            three.LeftLeaf = nine;
            InductiveMinerTreeNode ten = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isLeaf) { Event = new Event("Aufnahme") };
            nine.LeftLeaf = ten;
            InductiveMinerTreeNode eleven = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isLeaf) { Event = new Event("Anamnese") };
            nine.RightLeaf = eleven;
            InductiveMinerTreeNode twelve = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isSequence);
            ExampleTree.RightLeaf = twelve;
            InductiveMinerTreeNode thirteen = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isLeaf) { Event = new Event("Operation") };
            twelve.LeftLeaf = thirteen;
            InductiveMinerTreeNode fourteen = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isSequence);
            twelve.RightLeaf = fourteen;
            InductiveMinerTreeNode fiveteen = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isLoop);
            fourteen.LeftLeaf = fiveteen;
            InductiveMinerTreeNode sixteen = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isLeaf) { Event = new Event("Entlassen") };
            fourteen.RightLeaf = sixteen;
            InductiveMinerTreeNode seventeen = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isLeaf) { Event = new Event("Verband anlegen") };
            fiveteen.LeftLeaf = seventeen;
            InductiveMinerTreeNode eigthteen = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isLeaf) { Event = new Event("Verband entfernen") };
            fiveteen.RightLeaf = eigthteen;

            return ExampleTree;
        }
        /// <summary>
        /// 
        /// </summary>
        /// <returns></returns>
        public static InductiveMinerTreeNode CreateExampleTree(InductiveMiner miner)
        {
            InductiveMinerTreeNode ExampleTree = new InductiveMinerTreeNode(miner,operation: OperationsEnum.isSequence);

            //linker Teil
            InductiveMinerTreeNode one = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isXOR);
            ExampleTree.LeftLeaf = one;
            InductiveMinerTreeNode two = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isLeaf) { Event = new Event("D") };
            one.RightLeaf = two;
            InductiveMinerTreeNode three = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isLoop);
            one.LeftLeaf = three;
            InductiveMinerTreeNode four = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isLeaf) { Event = new Event("C") };
            three.RightLeaf = four;
            InductiveMinerTreeNode five = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isSequence);
            three.LeftLeaf = five;

            InductiveMinerTreeNode six = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isLeaf) { Event = new Event("A") };
            five.LeftLeaf = six;
            InductiveMinerTreeNode seven = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isLeaf) { Event = new Event("B") };
            five.RightLeaf = seven;

            //rechter Teil
            InductiveMinerTreeNode eight = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isParallel);
            ExampleTree.RightLeaf = eight;
            InductiveMinerTreeNode nine = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isLeaf) { Event = new Event("E") };
            eight.LeftLeaf = nine;
            InductiveMinerTreeNode ten = new InductiveMinerTreeNode(miner, operation: OperationsEnum.isLeaf) { Event = new Event("F") };
            eight.RightLeaf = ten;

            return ExampleTree;
        }