Having lived in Seattle for a long time until moving a few years ago, I paid a bit of attention to homelessness and a number of approaches taken over the years to diagnose and treat the problem. What I concluded was there is no single cause that can be addressed to come to a comprehensive "fix". There are many where there is a root and chronic mental health issue. In a country where only the rich get focused and comprehensive and effective mental health treatment. There are those that are free spirits who choose to live "rough" as the English say. They don't want the 9 to 5, hone to a company line and are willing to live meagerly on the edge for that freedom. There are those that tried to play the game and were bad at it or never got enough foundation under themselves financially that one lost job or giant medical or even car repair bill got them evicted and on the street. Easy in a country where supposedly 60% of folks are living paycheck to paycheck. And all of the above gets exacerbated by a country awash in cheap potent drugs and alcohol. The City of Seattle and a host of charities, churches and other non-profits were endlessly cobbling together strategies and approaches and I am sure many were helped, only to be replaced by the next person falling out onto the street.
I believe short of some national level initiative that is designed to help house, care, treat, uplift and enable these folks over years and help them regain a foothold economically, mentally and socially this problem will at best stay the same and likely worsen in the next economic downturn. I think something like the Depression era Civilian Conservation Corps, WPA, etc. that does public good works the taxpayer can see and appreciate while also lifting folks and giving them skills and wherewithal to better themselves is a viable. although admittedly probably a pie in the sky, option.