The main reason the Ferguson situation has gotten so far out of hand is a lack of solid leadership, and political correctness.
Every speech, and brief given by political leaders,organizers, police officials, and media. Has one common thread, Politically Correct overtones.
Attempts to appease the rioters instead of taking the opportunity to gain control of the situation and stop the violence. This never works.
There are several things the police department can do in advance of the protests, to head off most of the violent acts.
One they already know most of they trouble makers are from out of the area. There are many things that can be probable cause for traffic stops to check out the occupants, identify possible suspects, do a routine check of criminal background and warrants, give warnings, and advise against participating in unlawful acts. If they fail to follow warnings, and advice, they can have a stronger case if they get arrested. If they already have a history of criminal behavior, they can be held for up to twenty four, or some cases forty eight hours to get them off the street.
Two, they already know the troublemakers try to hide their identity early into the protest marches and rallies. They should be grabbed as soon as they try to hide their face, and identified, and checked for warrants, and parole violations. I will be willing to bet most of them will have warrants, and can be held in custody and possibly jailed on those warrants.
It may take a lot of time, and manpower, but the message will be clear.
The Mayor should make a public statement that if business owners wish to protect their establishment with armed security, or arm themselves it would be ok. That would stop about ninety eight percent of the problem.