It is critical to increasing the network throughput on the internet of things with short-range nodes. Nodes prevent to cooperate with other nodes in the network are known as selfish nodes. Previous studies have done on the selfish nodes detection that leads to increase throughput and reduce the end to end delay. The proposed method for discovering the selfish node is based on genetic algorithm and learning automata. It consists of three phases of setup and clustering, the best routing selection based on genetic algorithm, and finally, the learning and update phase. For appropriate network performance, the clustering algorithm implemented in the first phase. Nodes are working together to send the data packet to the destination in the second phase, and the neighbor node selected for forwarding the data packet in which that node has a high value of fitness function, among others. In the third phase, each node monitors the performance of its neighbor nodes in forwarding the data packet and uses the learning automata system to identify the selfish nodes. By preventing to cooperate selfish nodes and decreasing the probability selection of selfish nodes, it increases the throughput in the network. The results of the simulation show that the detection accuracy of selfish nodes in comparison with the existing methods average 12%, and the false positive rate has decreased by 5%.