Implemented basic stuff

This commit is contained in:
Pünkösd Marcell 2020-09-24 16:14:42 +02:00
parent 88eb6129e0
commit e8adbeb401

View File

@ -1,9 +1,54 @@
import multiprocessing
import os
import requests
def worker(outqueue, id):
print(f"Process {id} is preparing...")
import numpy as np
import networkx as nx
with open("/dkebab/GBA1000.txt") as f:
n = int(f.readline()) # pontok száma
m = int(f.readline()) # élek száma
A = [[0] * n for _ in range(n)] # táblázat, ahol az élek helyén 1 van, ammeg 0
for _ in range(m):
[u, v] = map(int, f.readline().split())
A[u][v] = 1
A[v][u] = 1
input_graph = nx.Graph(np.array(A))
def max_comp_size(G):
return max([len(c) for c in nx.connected_components(G)])
print(f"Process {id} is working...")
while True:
del_list = []
G = input_graph.copy()
target = len(G.nodes) / 2
while max_comp_size(G) > target:
u = np.random.choice(G.nodes)
if u not in del_list:
del_list.append(u)
G.remove_node(u)
outqueue.put(del_list)
def main():
for i in range(os.cpu_count()):
print(i)
target_url = os.environ['TARGET_URL']
multiprocessing.set_start_method('spawn')
outqueue = multiprocessing.Queue()
processes = []
for id in range(os.cpu_count()):
p = multiprocessing.Process(target=worker, args=(outqueue, id))
p.start()
processes.append(p)
while True:
result = outqueue.get()
requests.post(target_url, json=result)
if __name__ == '__main__':