def updateFlipNode(root, rectangles, dictionary): newRoot = deepcopy(root) #newRoot = root r = random.randint(0, 1) if r == 0 and newRoot.left is not None: utils.flipNode(newRoot.left) elif newRoot.right is not None: utils.flipNode(newRoot.right) # Adjust parent node dimensions if newRoot.type == '|': newRoot.w = newRoot.left.w + newRoot.right.w newRoot.h = max(newRoot.left.h, newRoot.right.h) else: newRoot.h = newRoot.left.h + newRoot.right.h newRoot.w = max(newRoot.left.w, newRoot.right.w) rectangles = utils.getRectanglesFromRoot(newRoot) utils.resetRectangles(rectangles) utils.updateTreeDimensions(newRoot) return newRoot
def updateFlipNode(root,rectangles,dictionary): newRoot = deepcopy(root) #newRoot = root r = random.randint(0,1) if r==0 and newRoot.left is not None: utils.flipNode(newRoot.left) elif newRoot.right is not None: utils.flipNode(newRoot.right) # Adjust parent node dimensions if newRoot.type == '|': newRoot.w = newRoot.left.w + newRoot.right.w newRoot.h = max(newRoot.left.h,newRoot.right.h) else: newRoot.h = newRoot.left.h + newRoot.right.h newRoot.w = max(newRoot.left.w,newRoot.right.w) rectangles = utils.getRectanglesFromRoot(newRoot) utils.resetRectangles(rectangles) utils.updateTreeDimensions(newRoot) return newRoot
def costWithLamdasFromRoot(root, costParameters): # construct new rectangles rectangles = utils.getRectanglesFromRoot(root) #print("Length of rectangles = " + str(len(rectangles))) return costWithLamdas(rectangles, costParameters)