Почему это не работает? Питон, заказ, езда на велосипеде

У меня есть проблема. Мой код следующий:

algorythm--- solved

мой файл 'masiny.txt'

m1 dns mail 
m2 none dhcp 
m3 none firewall 
m4 firewall ftp 
m5 mail voice

первый столбец "ID", второй "зависит" и третий "обеспечить". Его о виртуальном машинке, который предоставляет такие сервисы или зависит от него.

Моя проблема, хм, когда я запускаю этот сценарий, он застыл, запустив машину "m7". Зачем? Я думаю, что логика хорошая, но ошибка meybe заключается в двух строках кода:

for j in running: # get running services
 if j==dep[i] and i in notstarted: # if important service is running and machnie is unopened

но почему этот цикл работает три раза, а затем замерз? Я использую python 3.3.3, пожалуйста, помогите, я сижу с этим весь день

Благодаря :)

ошибка следующая

1 ответ

Проблема в том, что вы не можете запустить все машины в соответствии с правилами. Первые могут начать:

none > dhcp, firewall
firewall > ftp
ftp > http
http > tele

В этот момент вы больше ничего не можете сделать, но следующие все еще не notstarted поэтому цикл цикла бесконечно:

m1 (mail, needs dns)
m5 (voice, needs mail)
m6 (chat, needs voice)
m7 (dns, needs chat)

Эти машины находятся в цикле dns > chat > voice > mail > dns, поэтому никогда не запускаться.

licensed under cc by-sa 3.0 with attribution.