Suppose Alice wants to validate a transaction
suppose her has not downloaded all transaction history.
That's not possible. In order to validate a transaction you must have the entire state of the ledger before that point. Either you validated the entire history yourself, or you copied the result of that history (the chainstate, who owns which coins and how much are they worth) from someone you ultimately trust.
1) Alice will send a request to all her peer computer nodes and ask for the root the Merkel tree and hashes required to validate the transaction.
That's not what happens when validating a transaction, but what lightweight (non-validating) clients do in order to check the transaction exists. It relies on the fact that miners will not produce a block with invalid transaction, and thus implicitly trust that when it appears in a block, it is valid.
Also, the request is not really "give me all the data necessary to prove transaction X exists". The request is "give me all transactions that match criteria A, and include the proofs that they're real. See BIP37 for more information, but know that now it is known that this method has very bad privacy implications.
2) Some miners among her peer nodes will locate the block that includes the transaction
Miners only have a function in creating blocks, not looking things up in it. After a block is created, and propagated across the network, any node can look things up in it.
3) As block only stores Merkle tree root, not internal nodes, these miners will have to construct a Merkle tree from all transactions
Miners do that at the time they create a block, but every fully-validating node does that to when they receive a block. It's not done separately for each transaction.
4) The miners send block header and hashes (Merkle tree root and hashes on the authentication path) back to Alice.
Again, not miners. Any full node that Alice is connected to and supports BIP37 will do that.
Since the step 3 requires computational resources, my questions is why some nodes want to perform these computations for Alice? It seems that these nodes will not get paid for validating an old transaction.
Step 3 requires some resources, but they vanish compared to the work of actually validating transactions (validating signatures, checking that no coins are double spent). However, all of these steps are only done by nodes that fully validate.
Most of your question does not seem to be about validation, but about BIP37 as a means for a lightweight clients to obtain assurance that what their peers tell them about new transactions it is correct. That does have a cost, but the cost is mostly in scanning through the blockchain to find transactions Alice is interested in. This costs CPU and disk accesses, but only very little memory. In recent versions of Bitcoin Core, BIP37 support was made optional for that reason.