For example, greedy algorithms, hill-climbing heuristics, genetic algorithms, randomized algorithms, and simulated annealing, are well known approaches to NP-Hard problems. Linear programming (with randomized rounding) or integer linear programming are also well known.
In my work, I've extended the Iterative Deletion approach, allowing it to be more effective on difficult problems. It has a bit in common with greedy algorithms, but allows a more global view of the problem. I've applied this to routing problems, and have had good results; I suspect that it can be applied to a more general class of problems, and that's what I'm looking into now.
Most of the work I've been doing at UCLA is related to standard cell global routing, with the development of the DECIMATE standard cell global router.
The user interface of the global router is implemented with Tcl/Tk, while the back end is written in C. I parse TimberWolf version 6.0 and 7.0 (which is called 1.0 in the commercial version) format input files, and produce version 7.0 output.
I've also been interested in placement, and circuit testing.
If you're doing research in this area, my MCNC benchmark page might be of use to you. I've put up the MCNC place and route benchmarks in TW7.0/1.0 format, and have the placed and routed solutions available as well.
To reduce some of the burden of software development, I've written an editor that was suited to my needs. Check out EDGE, and my released software pages.
My startup company, IKM, is where I play around with some of the ideas I've had. After graduation, we may pursue this direction more aggressively.