Maybe if people sort the root cause of Homelessness and help the most valuable in our society. we might live longer and more prosper lives as humans.
There's lots of reasons why someone could be homeless, each and every single case is different. Some of the people that are homeless are homeless through their own fault, some are not. As these people in the western world are mostly adults it's up to them to sort their own life out, why should it be someone else problem to help them or pay for them if they don't want to?
If some junkie type is a thief and doesn't want to work or is a pain in the arse as a neighbour - nobody is going to want to help them, yet again if someone was in an abusive relationship, had a job and get kicked out of their partners house - then I would tend to want to help them as they are homeless through no fault of their own.
So as for your post - there is NO ROOT cause, there are many variables and each and every case is different. Maybe if USA stopped paying for and sending weapons and troops to other countries and stopped wasting billions of your workers tax dollars through corruption, back handers and the same families didn't keep becoming presidents or politicians, then your country would have a better solution to deal with stuff there wouldn't be as many social issues. However your borders are open, drugs are rife, you have politicians pitting people against each other based on race/sexual preferences etc.
I don't see USA or the west getting better anytime soon, greed and corruption are at the highest levels and it seems to be each man for themselves now. Your own homeless veterans are now second place citizens and are being thrown out of their temporary accomodation to make space for illegals, the same thing is happening in the UK and elsewhere in the west.