Q:

Why IBM Quantum Experience is giving different results under ibmq_qasm_simulator and ibmq_16_melbourne?

I am trying to run following 6 qubit quantum circuit and I am getting different results under ibmq_qasm_simulator and ibmq_16_melbourne (both involving 8192 shots). What is the reason?
ibmq_qasm_simulator ::

ibmq_16_melbourne ::

OPENQASM 2.0;
include "qelib1.inc";

qreg q[6];
creg c[6];

ry(1.57079631679) q[0];
ry(1.57079631679) q[1];
ry(1.57079631679) q[2];
ry(1.57079631679) q[3];
ry(1.57083295585) q[4];
ry(1.98263774407) q[5];
cx q[0],q[1];
ry(-0.00000001000) q[1];
cx q[0],q[1];
cx q[1],q[2];
ry(-0.00000001000) q[2];
cx q[0],q[2];
ry(-0.00000001000) q[2];
cx q[1],q[2];
ry(-0.00000001000) q[2];
cx q[0],q[2];
cx q[2],q[3];
ry(-0.00000001000) q[3];
cx q[1],q[3];
ry(-0.00000001000) q[3];
cx q[2],q[3];
ry(-0.00000001000) q[3];
cx q[0],q[3];
ry(-0.00000001000) q[3];
cx q[2],q[3];
ry(-0.00000001000) q[3];
cx q[1],q[3];
ry(-0.00000001000) q[3];
cx q[2],q[3];
ry(-0.00000001000) q[3];
cx q[0],q[3];
cx q[3],q[4];
ry(0.00003662905) q[4];
cx q[2],q[4];
ry(0.00003662905) q[4];
cx q[3],q[4];
ry(0.00003662905) q[4];
cx q[1],q[4];
ry(0.00003662905) q[4];
cx q[3],q[4];
ry(0.00003662905) q[4];
cx q[2],q[4];
ry(0.00003662905) q[4];
cx q[3],q[4];
ry(0.00003662905) q[4];
cx q[0],q[4];
ry(0.00003662905) q[4];
cx q[3],q[4];
ry(0.00003662905) q[4];
cx q[2],q[4];
ry(-0.78523504324) q[4];
cx q[3],q[4];
ry(-0.78523504324) q[4];
cx q[1],q[4];
ry(0.78530830134) q[4];
cx q[3],q[4];
ry(-0.78523504324) q[4];
cx q[2],q[4];
ry(0.00003662905) q[4];
cx q[3],q[4];
ry(0.00003662905) q[4];
cx q[0],q[4];
cx q[4],q[5];
ry(0.17720720528) q[5];
cx q[3],q[5];
ry(0.17720720528) q[5];
cx q[4],q[5];
ry(0.01914233557) q[5];
cx q[2],q[5];
ry(0.01914233557) q[5];
cx q[4],q[5];
ry(-0.21549187642) q[5];
cx q[3],q[5];
ry(0.17720720528) q[5];
cx q[4],q[5];
ry(0.01914233557) q[5];
cx q[1],q[5];
ry(0.01914233557) q[5];
cx q[4],q[5];
ry(0.17720720528) q[5];
cx q[3],q[5];
ry(-0.21549187642) q[5];
cx q[4],q[5];
ry(0.01914233557) q[5];
cx q[2],q[5];
ry(-0.76625582782) q[5];
cx q[4],q[5];
ry(0.17720720528) q[5];
cx q[3],q[5];
ry(0.17720720528) q[5];
cx q[4],q[5];
ry(-0.37355674613) q[5];
cx q[0],q[5];
ry(0.21549187642) q[5];
cx q[4],q[5];
ry(-0.01914233557) q[5];
cx q[3],q[5];
ry(-0.01914233557) q[5];
cx q[4],q[5];
ry(-0.17720720528) q[5];
cx q[2],q[5];
ry(-0.17720720528) q[5];
cx q[4],q[5];
ry(0.37355674613) q[5];
cx q[3],q[5];
ry(-0.80454049897) q[5];
cx q[4],q[5];
ry(-0.17720720528) q[5];
cx q[1],q[5];
ry(-0.17720720528) q[5];
cx q[4],q[5];
ry(-0.01914233557) q[5];
cx q[3],q[5];
ry(-0.41184141727) q[5];
cx q[4],q[5];
ry(-0.17720720528) q[5];
cx q[2],q[5];
ry(-0.17720720528) q[5];
cx q[4],q[5];
ry(-0.01914233557) q[5];
cx q[3],q[5];
ry(-0.01914233557) q[5];
cx q[4],q[5];
ry(0.21549187642) q[5];
cx q[0],q[5];
measure q[0] -> c[5];
measure q[1] -> c[4];
measure q[2] -> c[3];
measure q[3] -> c[2];
measure q[4] -> c[1];
measure q[5] -> c[0];

A:

The problem is caused by depth of the circuit. Current quantum hardware is not as developed as would be needed to run your algorihtm. Try to implement 2 or 3 qubits state preparation and you will se that results are more similar to the simulator ones. 
Moreover, qubits are not connected each other (this is not the case on the simulator), therefore, a transpiler have to apply qubit swaps (additional 3 CNOT gates) to implement the circuit on real hardware. This increases depth of the circuit as well and leads to further decoherence.

