全國中小學科展

電腦科學與資訊工程

Automated Debugging System – Implementing Program Spectrum Analysis and Information Retrieval on Fault Localization

在程式專案開發中,偵測錯誤常為最耗時的環節,進而影響整個專案的開發時長。而現今雖有些許輔助開發者提升偵錯效能的工具,但這些工具也只能藉由提供編譯執行中的資訊讓開發者省去偵錯時的繁瑣步驟,仍須開發者自行評估每段程式碼的正確性。此研究透過程式段落分析與資訊檢索實現自動錯誤定位,在每個程式段落標記其成為臭蟲(bug)的可能性。在程式段落分析中,執行使用者之原始碼,並透過歸納最終結果為正確及錯誤之執行路徑差異分析出每個程式段落的可疑性。接著運用資訊檢索技術於資料庫中找尋相似之原始碼,並參考其偵錯結果優化現有之可疑性,形成最終之可疑性排名。此研究不只結合了上述兩種技術,更優化可疑程度之計算方法以及資訊檢索中的相似度比對機制,達到更完善的錯誤定位。(此指「臭蟲」非語法錯誤(Syntax Errors),而為邏輯錯誤(Logic Errors)。)

應用網路爬蟲於社交軟體實現群眾互動平臺之研究

現今的大型活動,如:校慶活動、新北耶誕城等,缺乏互動性與參與感,其中原因大多是觀眾時常埋沒於手機中的社交軟體當中所導致。而我們的研究將利用此特性,探討大眾對於活動的觀點,搭配網路爬蟲抓取使用者的貼文,觀眾只需在Instagram、Twitter等社交軟體中發布文章,系統就會即時推播至活動中的大螢幕上,並且結合圖像辨識快速審核貼文,設計出一套能改善互動性低落的解決方案。研究中我們探討不同的網路爬蟲演算法、圖像辨識技術,及問卷調查等來使作品更加精進,且搭配Line Bot、後臺管理,及常駐貼文等功能來為各類大型活動量身打造,也能夠運用於政令宣導或文宣廣告等用途上,大幅提升活動的互動性與精采程度。

摘要演算法和語句分析之關聯性

在這個資訊發達的時代,網路充滿著五花八門的資訊,導致我們在查詢資料時會因為這些雜亂且未經過濾的資料浪費許多時間,其中最為氾濫的便是點擊誘餌(clickbait),此種新聞常常有著吸引人的標題,而內容卻不會與主題相符,人們也常常在讀完整篇文章後才意識到自己浪費了許多時間在無意義的資訊上面。解決此問題很常用的方法之一便是運用摘要演算法來讓讀者先對新聞有一個大概的理解,不過,雖然摘要演算法越來越普及,但產生出來的摘要仍會和人為判斷的結果有所差距,進而造成閱讀理解上的錯誤以及偏差,所以我們想要藉由這次研究,從一個嶄新的角度切入,探討摘要演算法和句型分析之間的關係,融合原本向量建構的方式以及語句結構的分析來測試摘要的準確度,並且由結果研發出一個可以產生出更為精確的主旨之摘要演算法,除此之外,我們也會融合實地調查以及搜集意見的方式來更進一步探討人們思模式與產生出的摘要之關聯性。

Cross-lingual Information Retrieval

In this project, we evaluate the effectiveness of Random Shuffling in the Cross Lingual Information Retrieval (CLIR) process. We extended the monolingual Word2Vec model to a multilingual one via the random shuffling process. We then evaluate the cross-lingual word embeddings (CLE) in terms of retrieving parallel sentences, whereby the query sentence is in a source language and the parallel sentence is in some targeted language. Our experiments on three language pairs showed that models trained on a randomly shuffled dataset outperforms randomly initialized word embeddings substantially despite its simplicity. We also explored Smart Shuffling, a more sophisticated CLIR technique which makes use of word alignment and bilingual dictionaries to guide the shuffling process, making preliminary comparisons between the two. Due to the complexity of the implementation and unavailability of open source codes, we defer experimental comparisons to future work.

Cross-lingual Information Retrieval

In this project, we evaluate the effectiveness of Random Shuffling in the Cross Lingual Information Retrieval (CLIR) process. We extended the monolingual Word2Vec model to a multilingual one via the random shuffling process. We then evaluate the cross-lingual word embeddings (CLE) in terms of retrieving parallel sentences, whereby the query sentence is in a source language and the parallel sentence is in some targeted language. Our experiments on three language pairs showed that models trained on a randomly shuffled dataset outperforms randomly initialized word embeddings substantially despite its simplicity. We also explored Smart Shuffling, a more sophisticated CLIR technique which makes use of word alignment and bilingual dictionaries to guide the shuffling process, making preliminary comparisons between the two. Due to the complexity of the implementation and unavailability of open source codes, we defer experimental comparisons to future work.

Development of an Android Application for Triage Prediction in Hospital Emergency Departments

Triage is the process by which nurses manage hospital emergency departments by assigning patients varying degrees of urgency. While triage algorithms such as the Emergency Severity Index (ESI) have been standardized worldwide, many of them are highly inconsistent, which could endanger the lives of thousands of patients. One way to improve on nurses’ accuracy is to use machine learning models (ML), which can learn from past data to make predictions. We tested six ML models: random forest, XGBoost, logistic regression, support vector machines, k-nearest neighbors, and multilayer perceptron. These models were tasked with predicting whether a patient would be admitted to the intensive care unit (ICU), another unit in the hospital, or be discharged. After training on data from more than 30,000 patients and testing using 10-fold cross-validation, we found that all six models outperformed ESI. Of the six, the random forest model achieved the highest average accuracy in predicting both ICU admission (81% vs. 69% using ESI; p<0.001) and hospitalization (75% vs. 57%; p<0.001). These models were then added to an Android application, which would accept patient data, predict their triage, and then add them to a priority-ordered waiting list. This approach may offer significant advantages over conventional triage: mainly, it has a higher accuracy than nurses and returns predictions instantaneously. It could also stand-in for triage nurses entirely in disasters, where medical personnel must deal with a large influx of patients in a short amount of time.

Development of an autonomous Search and Rescue Drone

The number of natural disasters has risen significantly in recent years, and with climate change there is no end in sight. Consequently, the demands on rescue forces around the world are increasing. For this reason, I asked myself what I can do to improve the work of rescue teams. Advances in artificial intelligence and drone technology enable new possibilities for problem solving. Based on the technological advances mentioned above, an autonomous Search and Rescue drone was developed as part of this project. The system assists rescue workers in searching for survivors of natural disasters or missing people. This paper also suggests a method for prioritizing survivors based on their vitality. The system was implemented using a commercial Parrot ANAFI drone and Python. The software was tested on a simulated drone. To simplify the development, the whole system was divided into the following subsystems: Navigation System, Search System and Mission Abort System. These subsystems were tested independently. The testing of solutions and new concepts were performed using smaller test programs on the simulated drone and finally on the physical drone. The Search and Rescue system was successfully developed. The person detection system can detect humans and distinguish them from the environment. Furthermore, based on the movements of a person, the system can distinguish whether the person is a rescuer or a victim. In addition, an area to be flown over can be defined. If something goes wrong during the mission, the mission can be aborted by the Mission Abort System. In the simulation, the predefined area can successfully be flown over. Unfortunately, controlling the physical drone does not work. It stops in the air after takeoff due to the firmware of the drone. It does not change the flight state of the drone, which results in all subsequent commands from the system being ignored. This paper shows that artificial intelligence and drone technologies can be combined to deliver better rescue services. The same system can be applied to other applications.

Development of an autonomous Search and Rescue Drone

The number of natural disasters has risen significantly in recent years, and with climate change there is no end in sight. Consequently, the demands on rescue forces around the world are increasing. For this reason, I asked myself what I can do to improve the work of rescue teams. Advances in artificial intelligence and drone technology enable new possibilities for problem solving. Based on the technological advances mentioned above, an autonomous Search and Rescue drone was developed as part of this project. The system assists rescue workers in searching for survivors of natural disasters or missing people. This paper also suggests a method for prioritizing survivors based on their vitality. The system was implemented using a commercial Parrot ANAFI drone and Python. The software was tested on a simulated drone. To simplify the development, the whole system was divided into the following subsystems: Navigation System, Search System and Mission Abort System. These subsystems were tested independently. The testing of solutions and new concepts were performed using smaller test programs on the simulated drone and finally on the physical drone. The Search and Rescue system was successfully developed. The person detection system can detect humans and distinguish them from the environment. Furthermore, based on the movements of a person, the system can distinguish whether the person is a rescuer or a victim. In addition, an area to be flown over can be defined. If something goes wrong during the mission, the mission can be aborted by the Mission Abort System. In the simulation, the predefined area can successfully be flown over. Unfortunately, controlling the physical drone does not work. It stops in the air after takeoff due to the firmware of the drone. It does not change the flight state of the drone, which results in all subsequent commands from the system being ignored. This paper shows that artificial intelligence and drone technologies can be combined to deliver better rescue services. The same system can be applied to other applications.

一種新的複音音樂片段相似性度量

平常聽音樂時經常有種似曾相識的感覺。為了描述這種感覺,我們展開了複音音樂片段相似性度量的研究。因為曾經使用過最長公共子序列實作卻效果不如預期,我們將音樂片段正規化後,視為座標平面上的時間、音高點對的集合,使用點對應與二分圖匹配的方法,定義兩個複音音樂片段的相似度為最大權重匹配的平均邊權。我們計算了資料集(JKUPDD)中相同、相異的音樂片段的相似性,調整算法中的參數,找出最適合的參數組合,並且透過音符之間的權重,畫出自相似度矩陣,發現樂曲中的重複片段。

圖論演算法學習用之繪圖程式

本研究針對學習圖論演算法的需求,設計一套使用者友善的繪圖軟體Graphene。Graphene繪圖程式除了提供高可讀性的繪製結果,作為輔助繪圖的工具外,也可直接輸入競賽題目的文字格式測試資料產生繪圖結果,並結合現有繪圖演算法,改善、優化樹與類樹圖的繪製結果。此外,也加入時間軸、自訂外觀、參數調整、匯出圖片等功能,幫助學習者理解圖論演算法,亦可幫助教師製作教材,有助於圖論演算法教學。 Graphene採用的繪圖演算法以force-directed graph drawing演算法為基礎,實作節點的分布。然而初始的節點分布會影響繪圖結果,因此我們利用biconnected component、block-cut tree等圖論結構對圖的繪製進行優化。首先找出圖的biconnected component及關節點,重新定義block-cut tree裡的block,接著利用radial tree的布局方式配置每個block,再套用force-directed graph drawing演算法,得到最後的布局結果。如此可以減少不同block之間的交錯,得到較佳的結果。