Dynamic AGV Task Allocation in Intelligent Warehouses