pluto icon indicating copy to clipboard operation
pluto copied to clipboard

difference between cut_smart and cut_conservative

Open libing4752 opened this issue 3 years ago • 7 comments

Hello,

I'm just reading the code of pluto, and find that seems no difference between "cut_smart" and "cut_conservative", the code is as follows: image image

do somebody have some suggestion on some "smart" cut_smart strategys?

thanks very much

libing4752 avatar Mar 02 '21 03:03 libing4752

Sorry, this code is poorly documented. I'm going to commit a patch soon to clean this up. But most of these methods are different. Note the additional conditional inside the last nest in the case of cut_smart. There is an extra check for the transformations being "full" as well, but that's less important.

bondhugula avatar Mar 02 '21 07:03 bondhugula

Done - https://github.com/bondhugula/pluto/commit/dae26e77b94b2624a540c08ec7128f20cd7b7985

bondhugula avatar Mar 02 '21 07:03 bondhugula

ops, thanks very much, I just misreaded that. There exists a "return" in line 657 in "cut_conservative" functoin, but no "return" in the "cut_smart" function in the same place. I ju

libing4752 avatar Mar 02 '21 08:03 libing4752

btw, could you recommend have some other cut_smart strategies or related works to read?

libing4752 avatar Mar 02 '21 08:03 libing4752

btw, could you recommend have some other cut_smart strategies or related works to read?

cut_smart is really not a principled, but an adhoc approach. There are other fusion approaches in Pluto (typed_fuse) and a newer one that doesn't use such cutting or ILP: @aravindacharya can point you to the right cmdline options and branch.

bondhugula avatar Mar 02 '21 08:03 bondhugula

Pluto has two other heuristics namely typedfuse and hybridfuse. These heuristics require Pluto to be built with glpk (or gurobi) solver, as these heuristics use LP formulations instead of ILPs. This can be done by passing --enable-glpk flag to configure while building Pluto. Then, --typedfuse and --hybridfuse options enable typed fusion and hybrid fusion heuristics respectively. These options are available in the master branch. Details of these fusion heuristics are available in this paper. The right command line flags to use with hybridfuse or typed fuse is --lpcolor and --delayedcut. These flags should have been enabled by default with typed and hybrid fusion heuristics. Also the name lpcolor is poorly chosen. I should have renamed it to greedycolor in the first place. This option enables the greedy coloring huristic mentioned in the above paper.

aravindacharya avatar Mar 02 '21 22:03 aravindacharya

thanks so much for the patient answer, I will read the paper and try some test as the way you said.

libing4752 avatar Mar 03 '21 04:03 libing4752