Skip to content

Submission - 0.0000 Overlap, 0.2870 Wirelength#9

Closed
aedutta wants to merge 3 commits into
partcleda:mainfrom
aedutta:patch-1
Closed

Submission - 0.0000 Overlap, 0.2870 Wirelength#9
aedutta wants to merge 3 commits into
partcleda:mainfrom
aedutta:patch-1

Conversation

@aedutta
Copy link
Copy Markdown

@aedutta aedutta commented Oct 1, 2025

In this challenge, we had two parameters to optimize: overlap and wirelength. Initially, when I was testing my model, I found that my training would often run into a local minima. I could tell this because the overlap loss would stay stagnant, while the wirelength loss would keep increasing (meaning that the cell configuration is almost minimal except for one or two cells and moving them will increase the loss).

I struggled for a bit with this. I tried a lot of different approaches such as introducing some random noise when at a saddle poin, or changing the initial cell configuration (arrange the cells in a way that the overlap is already minimal) so there is less optimization needed to do and less randomness (still part of my implementation, used as a helper function).

The final way I decided to tackle this problem is to work it as a two-phase optimization problem. In the first half of training, I would do optimize only the wirelength loss with zero overlap penalty, allowing the model to find optimal wire routing without interference. In the second half, I implemented an aggressive overlap elimination with extreme penalties (up to 1,000,000x) while wirelength loss is kept at the same. During this optimization, I added many safeguards through a dynamic weighing system based on the current losses of both overlap and wirelength. For example, if the overlap loss is too big, we focus entirely on overlap before going back to minimizing wirelength. By adding constraint constants for each of these cases, as well as adaptive hyperparameters based on problem size, I was able to design a fully functioning ML system to optimize cells from overlapping.

More about my loss function: I decided to make my own custom loss function by adding a safety margin parameter to prevent cells from touching each other. I also implemented overlap constraint terms that are penalized more with more overlap. These terms were added to a weighted sum formula and then normalized over all pairs.

You can access all my code in the main branch of my forked repo here.

Ashmit Dutta added 3 commits October 1, 2025 06:31
Updated leaderboard with new entries and adjusted ranks.
Updated notes for Ashmit Dutta's entry in the leaderboard.
@vbtcl vbtcl closed this Oct 1, 2025
ashvin-verma added a commit to ashvin-verma/intern_challenge that referenced this pull request Mar 22, 2026
Full pipeline results (tests 1-10): 0.0000 overlap, 0.3540 WL.
Test 7: 0.3059, Test 10: 0.2292. Just 0.01 behind Del Monte (partcleda#9).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants