Submission - 0.0000 Overlap, 0.2870 Wirelength#9
Closed
aedutta wants to merge 3 commits into
Closed
Conversation
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.
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.