"""Global parameters for layout optimization.""" # Optimization resolution stages OPT_RES_LIST = (1000,) # Reduced from (256, 512, 1000) for faster optimization # Augmented Lagrangian parameters OUTER_ROUNDS = 8 # augmented-lagrangian outer updates per stage (reduced from 5 for faster convergence) INNER_STEPS = 30 # gradient steps per outer round (reduced from 50 for faster convergence) RHO_INIT = 1e-4 # initial penalty parameter for constraint enforcement RHO_MULT = 5.0 # multiplier for penalty parameter # Optimizer parameters LEARNING_RATE = 0.02 SIZE_MIN = 20.0 # minimum element size in pixels # Penalty weights PEN_WEIGHT = 1000.0 # weight for penetration penalty PEN_ETA_PX = 1.0 # eta parameter for penetration penalty # Loss weights W_SIMILARITY = 0 # weight for position/size similarity loss W_READABILITY = 0 # weight for readability loss (size hierarchy) W_ALIGNMENT_CONSISTENCY = 10000.0 # weight for alignment consistency loss (hierarchical alignment) W_ALIGNMENT_SIMILARITY = 0 # weight for alignment similarity loss (based on JSON constraint) W_DATA_INK = 10 # weight for data ink loss (maximize union area, minimize white space) W_VISUAL_BALANCE = 0.0 # weight for visual balance loss (centroid to center distance) # Tau schedule for soft mask (controls boundary sharpness) TAU_SCHEDULE = (2.0, 1.5, 1.2, 1.0, 0.8, 0.6, 0.5, 0.4, 0.35, 0.3, 0.25, 0.2) # Pictogram dilation radius PICTOGRAM_DILATION_RADIUS = 5.0 # pixels # Readability threshold SIZE_RATIO_THRESHOLD = 1.5 # minimum ratio to consider size difference significant # Rules: if ratio >= 1.5 or ratio <= 1/1.5 (0.67), the size difference is significant # Min size constraints (default values) MIN_WIDTH_DEFAULT = 30.0 MIN_HEIGHT_DEFAULT = 30.0 # Proximity ratio loss parameters W_PROXIMITY = 0 # Weight for proximity ratio loss (default disabled, can be enabled when needed) PROXIMITY_EPSILON = 1e-6 # Small value to avoid division by zero