Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Практическая работа по "Информационным технологиям в цифровой экономике"

Автор:   •  Январь 24, 2020  •  Практическая работа  •  1,158 Слов (5 Страниц)  •  720 Просмотры

Страница 1 из 5

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение высшего образования

«Сибирский государственный университет науки и технологий
имени академика М.Ф. Решетнева»

Практическая работа

По дисциплине: «Информационные технологии в цифровой экономике»

Выполнил:

студент группы

БИСЗ19-01, Гусева Ильи Аркадьевича

Проверил:

Лопатин Павел Константинович

Красноярск 2020

1. Задача:

Разработать программу на языке python 3.4.3 планирования пути робота среди точек сетки 360 на 360 из точки g0 в точку gt на основе алгоритма поиска в глубину. При запуске программы пользователь указывает координаты начальной точки робота (g0), целевой точки (gt) и запрещенных точек (точки по которым робот не может идти). Если пути нет, программа должна это обнаружить, если же путь существует, программа должна его показать.

2. Текст программы:

import numpy as np

from bisect import bisect_left

import matplotlib.pyplot as plt

def xy2number(xy, n):

    return xy[0]*n + xy[1]

def number2npxy(m, n):

    return np.array([m // n, m % n])

def binary_search(lst, elem):

    pos = bisect_left(lst, elem)

    return pos != len(lst) and lst[pos]==elem

def get_path(startxy, finishxy, blocks, n, savename='tmp'):

    start, finish = xy2number(startxy, n), xy2number(finishxy, n)

    grid, graph = get_grid_graph(blocks, n)

    visited = np.zeros(n * n)

    path = [start]

    time = [0]

    stack = [start]

    tstack= [0]

    ti = 0

    while len(stack) > 0:

        v = stack.pop()

        t = tstack.pop()

        while time and time[-1] >= t:

            time.pop()

            path.pop()

        path.append(v)

        time.append(t)

        ti += 1

        if not visited[v]:

            nodes = [e for e in graph[v] if not visited[e]]

            nodes = sorted(nodes, key=lambda e: np.inner(number2npxy(e, n),

                                                         number2npxy(finish, n)-number2npxy(v, n)))

            stack.extend(nodes)

            tstack.extend([ti] * len(nodes))

            visited[v] = 1

        if v == finish:

            break

    if len(stack)==0:

        print('No path')

        print('Image creating')

        draw(grid, startxy, finishxy, [], savename=savename)

        return None

    else:

        print('Path finded')

        print('Image creating')

        path = list(map(lambda x: number2npxy(x, n), path))

        draw(grid, startxy, finishxy, path, savename=savename)

        return path

...

Скачать:   txt (6.2 Kb)   pdf (624.8 Kb)   docx (510 Kb)  
Продолжить читать еще 4 страниц(ы) »
Доступно только на Essays.club