I’d like some example sentences to show where one of them can’t be substituted by the other.
The American Heritage Dictionary, 4th Edition, defines ameliorate as: to make better; improve. Under their entry for improve, there is this note about synonyms:
Alleviate is defined by The American Heritage Dictionary as: to make (pain, for example) more bearable. Under their entry for relieve, there is this note about synonyms:
In medical writing, ameliorate is used when describing a patient's condition. Alleviate is used when lessening pain. So you could say, for example, "The patient's condition was ameliorated when we administered pain medicine to alleviate her headache." That is, you improved the situation by relieving the pain.
They aren't really that similar at all.
Alleviate is a word to use to say that something will fix or nearly fix (or at least somewhat help fix) a problem.
Ameliorate is a word to use to say that something won't really fix the problem, but will make the impact of it less bad. Sort of cushioning the blow.
You’re right that these are quite similar. Per the OED, alleviate is
While in (non-)contrast, ameliorate is
There is also an intransitive sense for ameliorate, where it means “to grow better” rather than “to make better”.
I may be wrong, but my instinct of contemporary usage is that one is more apt to employ alleviate when the problem is completely resolved, and ameliorate when it is improved but not necessarily removed altogether.
Since the two words can in fact, or at least in theory, be used interchangeable, it is probably best not to assume anything, and to spell out just what you mean if there is any question.
Here are some OED citations for ameliorate:
And here are some for alleviate:
If you are looking for a fine distinction, there is something “uplifting” about alleviate that does not quite occur in ameliorate, which is simply to improve.
Alleviate is most commonly used to describe pain reduction, whereas ameliorate seems to be used for more abstract 'pain', for example 'ameliorate the effects of recession.'
As @T.E.D. says - the first does something, whereas the second reduces the effects of something.
The term ameliorate derives from Latin, melior "better".
Alleviate also derives from Latin, ad- "to" (see ad-) + levis "light" in weight (see lever).
The root, lever means to raise.
There is a great deal of overlap in these closely related words. However, they are not identical in meaining. Ameliorate, in making better often focuses on the good aspects. Alleviate tends to focus on the bad things that have to be made lighter or lifted.
A search of Google for ameliorate examples provides
In none of these sentences would alleviate be appropriate. Needless to say, there are many other examples from that search where the terms wholly overlap and aleviate could be substituted.
It is my impression that, in the vast majority of cases, the obverse would not be true. Ameliorate can nearly always be substituted for alleviate.
It's really very simple. As all the wonderful examples posted clearly show:
Ameliorate: To improve or make better.
Alleviate is temporary, i.e. it removes the symptom but not the cause.
The game is not a symptom ergo alleviate would not fit.