Как сделать более компактной приоритетную очередь?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как сделать более компактной приоритетную очередь?

Сообщение Anonymous »

Я реализую поиск A* с использованием очереди с приоритетом. Каждый элемент в моей приоритетной очереди имеет три целых числа и строку длиной до 16. Размер графа, на котором я могу выполнить поиск, в настоящее время ограничен объемом памяти, занимаемым моей приоритетной очередью. В Python каждое целое число занимает 32 байта, а строка — 64 байта.
Минимально возможное пространство составляет 8 байтов на целое число (они никогда не превышают 64 бита) + 16 байтов, что составляет 40 байтов. в целом.
Можно ли уменьшить пространство почти до 40 байт на кортеж?
Вот MWE, который создает фальшивые случайные значения данные.

Код: Выделить всё

from pympler import asizeof
from random import randint, choice
from string import printable
from heapq import heappush
ascii =  printable[:-5]
pq = []
for _ in range(10000):
heappush(pq, (randint(0, 31), randint(0, 31),randint(0,31),''.join(choice(ascii) for _ in range(16))))
print(asizeof.asizeof(pq))
Это дает 1 446 200 байт. (Это немного меньше, чем (32*3 + 64) * 10 000, что сбивает с толку.)
Можно ли уменьшить его почти до 400 000 байт?

Подробнее здесь: https://stackoverflow.com/questions/792 ... rity-queue
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как сделать более компактной приоритетную очередь?
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Как сделать более компактной приоритетную очередь?
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Ошибка при отправке потока строк в приоритетную очередь
    Гость » » в форуме C++
    0 Ответы
    11 Просмотры
    Последнее сообщение Гость
  • Как добавить приоритетную задачу в очередь сельдерея без отключения
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Обрезать приоритетную очередь NGenerics
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»