Tôi đang viết một mẩu nhỏ python làm bài tập về nhà và tôi không chạy nó! Tôi không có nhiều kinh nghiệm Python, nhưng tôi biết khá nhiều về Java. Tôi đang cố gắng để thực hiện một thuật toán tối ưu hóa hạt Swarm, và đây là những gì tôi có:Lỗi trình biên dịch Python, x không có đối số (1 đã cho)
class Particle:
def __init__(self,domain,ID):
self.ID = ID
self.gbest = None
self.velocity = []
self.current = []
self.pbest = []
for x in range(len(domain)):
self.current.append(random.randint(domain[x][0],domain[x][1]))
self.velocity.append(random.randint(domain[x][0],domain[x][1]))
self.pbestx = self.current
def updateVelocity():
for x in range(0,len(self.velocity)):
self.velocity[x] = 2*random.random()*(self.pbestx[x]-self.current[x]) + 2 * random.random()*(self.gbest[x]-self.current[x])
def updatePosition():
for x in range(0,len(self.current)):
self.current[x] = self.current[x] + self.velocity[x]
def updatePbest():
if costf(self.current) < costf(self.best):
self.best = self.current
def psoOptimize(domain,costf,noOfParticles=20, noOfRuns=30):
particles = []
for i in range(noOfParticles):
particle = Particle(domain,i)
particles.append(particle)
for i in range(noOfRuns):
Globalgbest = []
cost = 9999999999999999999
for i in particles:
if costf(i.pbest) < cost:
cost = costf(i.pbest)
Globalgbest = i.pbest
for particle in particles:
particle.updateVelocity()
particle.updatePosition()
particle.updatePbest(costf)
particle.gbest = Globalgbest
return determineGbest(particles,costf)
Bây giờ, tôi thấy không có lý do tại sao điều này không nên làm việc. Tuy nhiên, khi tôi chạy nó, tôi nhận được lỗi này:
"Lỗi Loại: updateVelocity() không có đối số (1 nhất định)"
Tôi không hiểu! Tôi không đưa ra bất kỳ lý lẽ nào!
Thanks for the help,
Linus
Vui lòng đánh dấu mã của bạn và nhấp vào nút "010101" để định dạng mã đúng cách. –
Không có dòng trống nào trong nguồn của tôi, đó chỉ là cách trang web này định dạng nó. – Linus
Câu hỏi chất lượng thấp: nhiều mã không liên quan với nhiều lỗi cú pháp do không gian và tab hỗn hợp. Bản sao câu hỏi hay hơn http://stackoverflow.com/q/6614123/448474 – hynekcer