이전 pm4py로 alpha miner, inductive miner를 활용하여 페트리 넷을 도출하는 포스팅에서는 아무것도 표시되지 않은 페트리 넷을 도출했다. 이번 포스팅에서는 pm4py로 페트리 넷 위에 frequency, performance 정보를 어떻게 표시하는지에 대해 알아보겠다.
* 이번 포스팅은 pm4py로 아무 표시가 없는 페트리 넷을 도출하는 방법을 안다는 가정하에 진행된다. 모른다면 아래 포스팅을 참고하도록 하자.
2019/07/28 - [Tools/pm4py] - PM4Py로 프로세스 모델 도출하기 (알파 알고리즘)
아무 정보가 표시되지 않은 페트리 넷을 도출할 때에는 다음과 같은 코드로 페트리 넷을 도출할 수 있다.
import os
from pm4py.objects.log.importer.xes import factory as xes_importer
from pm4py.algo.discovery.alpha import factory as alpha_miner
from pm4py.visualization.petrinet import factory as vis_factory
log = xes_importer.import_log(os.path.join("tests","input_data","running-example.xes")) #괄호 안에 원하는 파일의 경로를 쓴다.
net, initial_marking, final_marking = alpha_miner.apply(log) #log로부터 페트리 넷을 도출한다.
gviz = vis_factory.apply(net, initial_marking, final_marking)
vis_factory.view(gviz) #페트리 넷을 visualization
페트리 넷에 정보를 표시하고 싶다면, 아래 코드와 같이 vis_factory.apply 안에 log 인수와 variant 인수를 추가해주어야 한다. variant에는 두 종류가 있다. Frequency와 Performance가 그것이다. Frequency는 빈도 정보를 표시하고 싶을 때, Performance는 수행 시간 정보를 표시하고 싶을 때 선택한다.
import os
from pm4py.objects.log.importer.xes import factory as xes_importer
from pm4py.algo.discovery.alpha import factory as alpha_miner
from pm4py.visualization.petrinet import factory as vis_factory
log = xes_importer.import_log(os.path.join("tests","input_data","running-example.xes")) #괄호 안에 원하는 파일의 경로를 쓴다.
net, initial_marking, final_marking = alpha_miner.apply(log)
gviz = vis_factory.apply(net, initial_marking, final_marking, log = log, variant ="frequency") #or variant = "performance"
vis_factory.view(gviz)
위 코드를 수행하면 frequency가 표시된 페트리 넷이 도출된다.
위에서도 언급했듯이, 수행 시간 정보를 표시하고 싶으면 아래 코드와 같이 variant를 performance로 바꿔주면 된다.
import os
from pm4py.objects.log.importer.xes import factory as xes_importer
from pm4py.algo.discovery.alpha import factory as alpha_miner
from pm4py.visualization.petrinet import factory as vis_factory
log = xes_importer.import_log(os.path.join("tests","input_data","running-example.xes")) #괄호 안에 원하는 파일의 경로를 쓴다.
net, initial_marking, final_marking = alpha_miner.apply(log)
gviz = vis_factory.apply(net, initial_marking, final_marking, variant ='performance', log = log)
vis_factory.view(gviz)
그 결과는 다음과 같다.
PM4py를 이용해서 단순한 페트리 넷 뿐만 아니라 빈도 정보, 수행 시간 정보가 표시된 페트리 넷도 도출할 수 있다.
최근댓글