There appear to be techniques to reduce the number of states in the automaton. * The [Lane Table algorithm](http://smallcultfollowing.com/babysteps/blog/2017/03/17/the-lane-table-algorithm/) shows how to augment an LR(0) automaton to use an LR(1) lookahead only where necessary * [Practical LR(k) Parser Construction](http://david.tribble.com/text/lrk_parsing.html) shows how to reduce the number of states in an LR(1) automaton where possible (calls this the "Honalee algorithm")
There appear to be techniques to reduce the number of states in the automaton.
The Lane Table algorithm shows how to augment an LR(0) automaton to use an LR(1) lookahead only where necessary
Practical LR(k) Parser Construction shows how to reduce the number of states in an LR(1) automaton where possible (calls this the "Honalee algorithm")