The issue of no-shows has always been a big challenge for the industry.
A non-refundable deposit
I recently read about a restaurant in Edinburgh that decided to charge a small deposit to parties of 6 or more, which is non-refundable, even if customers cancel. This seemed to be quite divisive amongst the public, but I very much agree with it. The costs related to no-shows are incredibly high, and I don't feel they are appreciated by those outside of the sector. A small charge would ensure customers feel committed to their booking and would allow there to be some sort of small payment to the restaurant if the party were to cancel.
I also believe in only holding a table for a maximum of 30 minutes, as I know that holding onto tables for bookings which may never show can cause many restaurateurs to turn away passing trade. As long as the restaurant is open and concise about their terms and they are able to provide exceptional quality service and food, I see no issues with implementing these terms.