<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Using Qiskit Aqua algorithms, a how to guide
This notebook demonstrates how to use the Qiskit Aqua library to invoke a specific algorithm and process the result.
Further information is available for the algorithms in the github repo aqua/readme.md
Step1:  Here an Operator instance is created for our Hamiltonian. In this case the paulis are from a previously computed Hamiltonian for simplicity
Step2:  We can now use the Operator without regard to how it was created. First we need to prepare the configuration params to invoke the algorithm. Here we will use the ExactEigensolver first to return the smallest eigenvalue. Backend is not required since this is computed classically not using quantum computation. We then add in the qubitOp Operator in dictionary format. Now the complete params can be passed to the algorithm and run. The result is a dictionary.
Step3:  Now we want VQE and so change it and add its other configuration parameters. VQE also needs and optimizer and variational form. While we can omit them from the dictionary, such that defaults are used, here we specify them explicitly so we can set their parameters as we desire.
<ASSISTANT_TASK:>
Python Code:
from qiskit_aqua import Operator, run_algorithm
from qiskit_aqua.input import get_input_instance
Explanation: Using Qiskit Aqua algorithms, a how to guide
This notebook demonstrates how to use the Qiskit Aqua library to invoke a specific algorithm and process the result.
Further information is available for the algorithms in the github repo aqua/readme.md
End of explanation
pauli_dict = {
    'paulis': [{"coeff": {"imag": 0.0, "real": -1.052373245772859}, "label": "II"},
              {"coeff": {"imag": 0.0, "real": 0.39793742484318045}, "label": "ZI"},
              {"coeff": {"imag": 0.0, "real": -0.39793742484318045}, "label": "IZ"},
              {"coeff": {"imag": 0.0, "real": -0.01128010425623538}, "label": "ZZ"},
              {"coeff": {"imag": 0.0, "real": 0.18093119978423156}, "label": "XX"}
              ]
}
qubitOp = Operator.load_from_dict(pauli_dict)
Explanation: Here an Operator instance is created for our Hamiltonian. In this case the paulis are from a previously computed Hamiltonian for simplicity
End of explanation
algorithm_cfg = {
    'name': 'ExactEigensolver',
}
params = {
    'algorithm': algorithm_cfg
}
algo_input = get_input_instance('EnergyInput')
algo_input.qubit_op = qubitOp
result = run_algorithm(params,algo_input)
print(result)
Explanation: We can now use the Operator without regard to how it was created. First we need to prepare the configuration params to invoke the algorithm. Here we will use the ExactEigensolver first to return the smallest eigenvalue. Backend is not required since this is computed classically not using quantum computation. We then add in the qubitOp Operator in dictionary format. Now the complete params can be passed to the algorithm and run. The result is a dictionary.
End of explanation
algorithm_cfg = {
    'name': 'VQE',
    'operator_mode': 'matrix'
}
optimizer_cfg = {
    'name': 'L_BFGS_B',
    'maxfun': 1000
}
var_form_cfg = {
    'name': 'RYRZ',
    'depth': 3,
    'entanglement': 'linear'
}
params = {
    'algorithm': algorithm_cfg,
    'optimizer': optimizer_cfg,
    'variational_form': var_form_cfg,
    'backend': {'name': 'statevector_simulator'}
}
result = run_algorithm(params,algo_input)
print(result)
Explanation: Now we want VQE and so change it and add its other configuration parameters. VQE also needs and optimizer and variational form. While we can omit them from the dictionary, such that defaults are used, here we specify them explicitly so we can set their parameters as we desire.
End of explanation
<END_TASK>