This was a course project during my undergraduate studies and was published in a Chinese journal. The course paper can be downloaded here. The following is a translation of the paper.

Abstract:

The queuing problem in hospital is becoming more and more serious. This paper investigates the queuing system of registration window of a hospital in Nanjing. The data of arrival time interval and service time of each window are collected, and its distributions are fitted by Matalab. The model of the system is set up and simulated with FlexSim. According to the simulation results, the optimization scheme is put forward. By increasing the number of windows opened to patients from 3 to 4, the average waiting time is reduced by 430 seconds, and the queuing time is reduced by 69%.
Key words: hospital;registration window;queueing system;simulation;FlexSim


Introduction

Read more »

Introduction

The Rapidly Exploring Random Tree (RRT) is widely used in robot motion planning. The algorithm was developed by Steven M. LaValle and James J. Kuffner Jr.

For more information about RRT, please refer to the following papers:

The pseudocode of basic RRT is as follows:

Read more »

Installation

MQTT (Message Queuing Telemetry Transport), is a lightweight publish/subscribe messaging protocol.

More information about MQTT: https://en.wikipedia.org/wiki/MQTT

Install paho-mqtt library in Python:

1
pip install paho-mqtt
Read more »

Bug Description

  • Operating system: Windows 11
  • IDE: PyCharm 2023.2
  • Language: Python

I used PyQt5 in Python to develop a GUI for a simple program. After the development was completed, I packaged the program to generate an exe file. But when I run this exe file and click the button on the GUI, a new window will pop up. If I click the button repeatedly, new windows keep being generated. This problem does not occur when debugging and running the program in PyCharm.


Read more »

String.startsWith()

Used to detect whether a string starts with a specified prefix.

1
2
3
4
5
6
7
8
9
public class test {
public static void main(String[] args) {
String str = "Test string: hello world!";
boolean flag1 = str.startsWith("Test");
System.out.println("str starts with 'Test': " + flag1);
boolean flag2 = str.startsWith("hello");
System.out.println("str starts with 'hello': " + flag2);
}
}

The output of the code is as follows:

1
2
str starts with 'Test': true
str starts with 'hello': false
Read more »

Formula

Given vectors AB\vec{AB} and CD\vec{CD}, A=(x1,y1)A=(x_1,y_1), B=(x2,y2)B=(x_2,y_2), C=(x3,y3)C=(x_3,y_3), D=(x4,y4)D=(x_4,y_4), then:

AB=(x2x1,y2y1)CD=(x4x3,y4y3)\vec{AB}=(x_2-x_1, y_2-y_1)\\ \vec{CD}=(x_4-x_3, y_4-y_3)

Let the angle between the vectors AB\vec{AB} and CD\vec{CD} be θ\theta:

cos(θ)=ABCDABCDcos(\theta)=\frac{\vec{AB} \cdot \vec{CD}}{||\vec{AB}|| \cdot ||\vec{CD}||}

Read more »

For example, there is such a Text file, as shown in the figure below. We need to read the data and then save the data to different folders in different directories.

The Python code is as follows:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import os

# Read data in Text
students_data = []
with open('./data.txt', 'r') as f:
line = f.readline()
while line:
print(line)

line_data = line.split(',')

# Skip the first line
if line_data[0] == 'name':
line = f.readline()
continue

# Read the data of current row
curr_student_info = {}
curr_student_info["name"] = str(line_data[0])
curr_student_info["id"] = str(line_data[1])
curr_student_info["score"] = float(line_data[2])
curr_student_info["ranking"] = float(line_data[3])
students_data.append(curr_student_info)

# Continue reading the next line of data
line = f.readline()

# Save the data in different files
for curr_info in students_data:
path = "./student_data/" + str(curr_info["name"])
os.makedirs(path)

f_temp = open('./student_data/' + str(curr_info["name"]) + '/info.txt', 'w')
f_temp.write("id: " + str(curr_info["id"]) + "\n")
f_temp.write("score: " + str(curr_info["score"]) + "\n")
f_temp.write("ranking: " + str(curr_info["ranking"]) + "\n")
f_temp.close()

The data in Text can be read through the above code, as shown below:

Read more »
0%