A K-means Grasshopper Algorithm Applied to the Knapsack Problem