Курсовая работа по «Техническому контролю и диагностике систем ЛА»

Автор работы: Пользователь скрыл имя, 06 Марта 2013 в 12:46, курсовая работа

Краткое описание

Для программного решения задачи оптимизации процесса контроля в условиях частичной упорядоченности используется интерпретатор высокоуровневого языка программирования Python.
В данной курсовой работе для решения задачи использовался алгоритм метода ветвей и границ, а так же определение количества повторных измерений контролируемых параметров.

Содержание

Программное обеспечение……………………………………………………………………………………………………3
Алгоритм метода ветвей и границ для решения одномерных задач целочисленного программирования …4
Теоретическая часть……………………………………………………………………………………………………..4
Практическая часть……………………………………………………………………………………………………….9
Выводы……………………………………………………………………………………………………………………….24
Алгоритм метода динамического программирования………………………………………………….25
Теоретическая часть……………………………………………………………………………………………………25
Практическая часть…………………………………………………………………………………………………….27
Выводы……………………………………………………………………………………………………………………….34
Список используемой литературы………………………………………………………………………………………35
Приложение 1……………………………………………………………………………………………………………………….36
Приложение 2……………………………………………………………………………………………………………………….53

Вложенные файлы: 1 файл

Kursach.docx

— 312.21 Кб (Скачать файл)

        temp.append(temp_table[a][b])

        count += 1

        temp_table[a][b] = 0

        max_table[-1][b] += 1

        max_table.append(copy.copy(max_table[-1]))

        P.append(P[-1] * p[b][a] / p[b][a - 1])

        T.append(T[-1] + t[b])

    while P[-1] < 0.992 and T[-1] < 600:

        a = get_max_value(temp_table)[0]

        b = get_max_value(temp_table)[1]

        if temp_table[a][b] == -1:

            continue

        sys.stdout.write(

            "%d\t%d\t%d\t%2.8f\n" % (count, a + 1, b + 1, temp_table[a][b]))

        temp.append(temp_table[a][b])

        count += 1

        temp_table[a][b] = 0

        max_table[-1][b] += 1

        max_table.append(copy.copy(max_table[-1]))

        P.append(P[-1] * p[b][a] / p[b][a - 1])

        T.append(T[-1] + t[b])

    sys.stdout.write("\n")

    sys.stdout.write("N\tn1\tn2\tn3\tn4\tn5\tP(N)\t\tT(N)\n")

    for i in range(len(max_table) - 1):

        sys.stdout.write("%d\t%s%4.5f\t\t%d мин %dсек\n" % (

            i + 1, list_to_str(max_table[i]), P[i + 1], T[i + 1] / 60, T[i + 1] % 60))

    sys.stdout.write("\n")

    sys.stdout.write('n\tΨ1(ni)\t\tΨ2(ni)\t\tΨ3(ni)\t\tΨ4(ni)\t\tΨ5(ni)\n')

    for i in range(len(p[0])):

        sys.stdout.write("%d\t" % (i + 1))

        for j in range(len(t)):

            if psi[i][j] == -1 or psi[i][j] not in temp:

                sys.stdout.write('---------\t')

            else:

                sys.stdout.write('%4.7f\t' % psi[i][j])

        sys.stdout.write("\n")

 

def main():

    sigma = [0.3, 0.2, 0.4, 0.1, 0.5]

    t = [30, 5, 15, 20, 50]

    p = get_p(sigma)

    psi = get_table_psi(p, t)

    get_max_table(p, t, psi)

 

if __name__ == '__main__':

    main()

 


Информация о работе Курсовая работа по «Техническому контролю и диагностике систем ЛА»