code: func FindBestPlan(sctx sessionctx.Context, logical plannercore.LogicalPlan) (plannercore.Plan, error) {
  	rootGroup := convert2Group(logical)
  	err := onPhaseExploration(sctx, rootGroup)
  	if err != nil {
  		return nil, err
  	}
  	best, err := onPhaseImplementation(sctx, rootGroup)
  	return best, err
  }
docs: // FindBestPlan is the optimization entrance of the cascades planner. The
  // optimization is composed of 2 phases: exploration and implementation.