Hello @PowerMaxZ, I was checking the code to see which ConcurrencyOracle were you using (I needed for a paper) and I saw something that I think could improve the performance.
In this line, you are computing the concurrency relations. Then, in the next one you compute, for each activity instance, its source activity. After some refactors that I did in the enabling time computation, you can specify a flag to the function to get also the enabling activity (this one would be your source activity).
In case you are interested, what you would need to do is:
The second change should add to the event log both the enable_time and the enabling_activity of each activity instance (each row), and you don't have to compute it again at the end of the program. The computational addition of this should be almost nothing, because I am already computing that information, the difference is that by default I was just adding the enable_time and not the activity name.
Hello @PowerMaxZ, I was checking the code to see which ConcurrencyOracle were you using (I needed for a paper) and I saw something that I think could improve the performance.
In this line, you are computing the concurrency relations. Then, in the next one you compute, for each activity instance, its source activity. After some refactors that I did in the enabling time computation, you can specify a flag to the function to get also the enabling activity (this one would be your source activity).
In case you are interested, what you would need to do is:
oracle.add_enabled_times(log, include_enabling_activity=True).The second change should add to the event log both the
enable_timeand theenabling_activityof each activity instance (each row), and you don't have to compute it again at the end of the program. The computational addition of this should be almost nothing, because I am already computing that information, the difference is that by default I was just adding theenable_timeand not the activity name.